ucos 任务建立中的理解和不解

2019-10-16 02:04发布


之前一直在听大家说,STM32上操作系统,所说的就是指上的实时操作系统,以前还以为是Linux或者别的系统,原来有点偏差啊!也不知道这个理解是不是对的!?
另外,经过最近看ucos的历程我发现,这个就是把以前各个模块化的子函数,写成一个进程,在开始进程中去包括这些进程,在程序执行的过程中每一个时刻也是只有一个任务(一个进程)在运行,只不过优先级不同,,,。其中包含的那些文件还不明白各个的用意,现在看到的知识见到的以个输出任务,其他的(外部中断,定时器中断,串口中断,GPIO输入,,,)还不知道应该怎么用,还要明天据需学习。

对于这个建立任务的这句话有一个不明白的地方,还希望大家能给予指点:
        OSTaskCreate(start_task,(void *)0,(OS_STK *)&START_TASK_STK[START_STK_SIZE-1],START_TASK_PRIO );
        其中"start_task",这个是任务的名称,或者一个功能函数的函数名。
        "(void *)0",这里的是指使用这个功能函数建立的是第几个任务,如果在建立一个相同功能函数的任务,这里的"0",应该是"1"。是吧?
        "(OS_STK *)&START_TASK_STK[START_STK_SIZE-1]",这句话很不理解,其中START_STK_SIZE是指任务堆栈的大小,这个大小是怎么设定的,根“数据结构有关”吗?在整个系统中建立的所有任务,一提到堆栈不知道是否和地址有关,或者说在指针到这个任务的时候启示地址是多少???
        "START_TASK_PRIO ",这个是表示的是这个任务的优先级,按照他们的说法就是,开始的任务进程优先级是最小的“10”,那就是说整个系统中总共可以分成10个等级"1-10"?


   以上就是这两天对试试操作系统的认识,不知道偏差在哪里!?希望大家多多指导

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。