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 ", (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 ");
  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(" ");
  4.     printf("______ __ __ ___ ");
  5.     printf("| ___ \ \ \ / / / | ");
  6.     printf("| |_/ / \ V / / /| | ");
  7.     printf("| __/ / \ / /_| | ");
  8.     printf("| | / /^\ \ \___ | ");
  9.     printf("\_| \/ \/ |_/ ");
  10.     printf(" ");
  11.     printf("%s starting. ", app_name);
  12.     printf(" ");

  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. }

无欲速,无见小利。欲速,则不达;见小利,则大事不成。
原文地址:https://www.cnblogs.com/ch122633/p/7363241.html