Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kernel 内核启动后main()的线程上下文_Kernel_Main_Scheduler_Rtos - Fatal编程技术网

Kernel 内核启动后main()的线程上下文

Kernel 内核启动后main()的线程上下文,kernel,main,scheduler,rtos,Kernel,Main,Scheduler,Rtos,考虑一个有main()的代码库。在调用内核启动函数之后,我们让操作系统运行 现在,在内核启动函数调用运行后,代码段在哪个线程的上下文中运行 int main() { /* DO SOMETHING */ /* Start scheduler */ osKernelStart(); /* Infinite loop */ while (1) { /* USER CODE */ } } 在给定的代码片段中,“用户代码”的上下文是什么 提前感谢RTOS,

考虑一个有main()的代码库。在调用内核启动函数之后,我们让操作系统运行

现在,在内核启动函数调用运行后,代码段在哪个线程的上下文中运行

int main()
{
  /* DO SOMETHING */

  /* Start scheduler */
  osKernelStart();

  /* Infinite loop */
  while (1)
  {
    /* USER CODE  */

  }

}
在给定的代码片段中,“用户代码”的上下文是什么
提前感谢RTOS,除非发生错误,否则启动内核或调度程序的函数通常不会返回到main。对于FreeRTOS,除非RAM不足,否则不会返回。对于uC/OS-III,不返回。这只是两个例子

启动内核/调度器将使调度器处于控制状态。然后,调度程序将确定准备运行的最高优先级任务,并允许该任务的上下文运行,直到下一次上下文切换机会。对于嵌入式系统,调度器通常会永远重复此过程(即,直到断电)。因此,RTOS启动函数永远不会返回


main()函数不是任务,它只在RTOS启动之前运行。通常,main()应该在调用RTOS start函数之前创建一个或多个任务。调用RTOS启动函数后,main中的任何代码通常都不会执行,除非启动RTOS时出现错误。

对于RTOS,除非发生错误,否则启动内核或调度程序的函数通常不会返回main。对于FreeRTOS,除非RAM不足,否则不会返回。对于uC/OS-III,不返回。这只是两个例子

启动内核/调度器将使调度器处于控制状态。然后,调度程序将确定准备运行的最高优先级任务,并允许该任务的上下文运行,直到下一次上下文切换机会。对于嵌入式系统,调度器通常会永远重复此过程(即,直到断电)。因此,RTOS启动函数永远不会返回


main()函数不是任务,它只在RTOS启动之前运行。通常,main()应该在调用RTOS start函数之前创建一个或多个任务。调用RTOS start函数后,main中的任何代码通常都不会执行,除非启动RTOS时出现错误。

根据我对各种RTO的经验,osKernelStart()通常不会返回main()。之后main()中的代码只用于捕获某种错误条件。你问的是某个特定的RTOS吗?我会使用freeRTOS。。在我使用各种RTO的经验中,看到一个演示代码后产生了疑问,osKernelStart()通常不会返回main()。之后main()中的代码只用于捕获某种错误条件。你问的是某个特定的RTOS吗?我会使用freeRTOS。。看到一个演示代码就有疑问了