pixhawk多线程编程

[金错刀]pixhawk多线程程序编写

pixhawk源码多线程程序的编写

主要是针对pixhawk源码进行第二次开发的学习笔记,记录下以便日后查阅。

期望达到的目标

添加一个app应用,在nsh的后台中运行该应用,能够正常运行和关闭,而且在运行过程中不会影响运行其他的app。
添加的应用功能为:禁用telem2串口的mavlink消息,通过telem2读写数据。
参考examples/fixedwing_control/main.cpp

实现过程

主要使用的函数是

px4_task_t px4_task_spawn_cmd(const char *name, int scheduler, int priority, int stack_size, px4_main_t entry, char *const argv[])

具体使用情况可以参考main.cpp中的例子

deamon_task = px4_task_spawn_cmd("ex_fixedwing_control",
				 SCHED_DEFAULT,
				 SCHED_PRIORITY_MAX - 20,
				 2048,
				 fixedwing_control_thread_main,
				 (argv) ? (char *const *)&argv[2] : (char *const *)nullptr);

第一个参数是:运行的线程名字
stack_size是给的堆栈大小,给的打大了的话会出现堆栈崩溃的现象(暂未解决)
px4_main_t entry 是线程中要运行的程序名字,这里的程序入口参数必须是

fixedwing_control_thread_main(int argc, char *argv[])

你可能感兴趣的:(pixhawk)