px4::init_once();和px4::init(argc, argv, "px4");函数学习

px4::init_once();
  1. void init_once()
  2. {
  3.     _shell_task_id = pthread_self();                                                            //获取自生PID
  4.     //printf("[init] shell id: %lu\n", (unsigned long)_shell_task_id);
  5.     work_queues_init();                                                                         //工作队列初始化?   创建了一个高优先级和一个低优先级工作线程
  6.     hrt_work_queue_init();                                                                      //创建了一个最高优先级的工作队列?
  7.     hrt_init();                                                                                 //初始化了hrt信号量?
  8.     param_init();                                                                               //初始化了param_sem和reader_lock_holders_lock信号量

  9. #ifdef CONFIG_SHMEM
  10.     PX4_DEBUG("Syncing params to shared memory\n");
  11.     init_params();
  12. #endif
  13. }
px4::init(argc, argv, "px4");
画了一个px4。
  1. void init(int argc, char *argv[], const char *app_name)
  2. {
  3.     printf("\n");
  4.     printf("______ __ __ ___ \n");
  5.     printf("| ___ \\ \\ \\ / / / |\n");
  6.     printf("| |_/ / \\ V / / /| |\n");
  7.     printf("| __/ / \\ / /_| |\n");
  8.     printf("| | / /^\\ \\ \\___ |\n");
  9.     printf("\\_| \\/ \\/ |_/\n");
  10.     printf("\n");
  11.     printf("%s starting.\n", app_name);
  12.     printf("\n");

  13.     // set the threads name
  14. #ifdef __PX4_DARWIN
  15.     (void)pthread_setname_np(app_name);
  16. #else
  17.     (void)pthread_setname_np(pthread_self(), app_name);
  18. #endif
  19. }

posted @ 2017-08-15 09:12  习惯就好233  阅读(198)  评论(0编辑  收藏  举报