用的是野火的视频,参考书是《FreeRTOS+内核实现与应用會員註冊实战—基于STM32》。

堪称有毒,野火论坛是画图的,野火电子论坛是讲电子的。

插一下嘴,Modelsim仿真看不到子模块内部信号。

FreeRTOS:体育开源免费。V9.0内核稳定。V10.0,是被亚马逊收购之后发布的,富含收费云组件。

OpenRTOS:收费,但服务好。

SaveRTOS:收费,安全认证。

Keil的C51只要装在和MDK同一个文件夹下,就可以实现一个keil同时會員註冊51和32了。

新建自己的工程文件夹:

打开keil,新建工程,保存在FreeRTOS-Project文件夹下,选的是M7。注意这两个要勾选。

建立文件分组

先新建一个main.c文件,在user文件夹下

编译报错:

.\Objects\Fire_FreeRTOS.axf: Error: L6218E: Undefined symbol main (referred from __rtentry2.o).

原因是c文件没有包含进工程里面。右键添加即可

修改仿真时钟,是5Mhz*5=25Mhz

设置使用软件仿真

添加头文件路径

裸机官方分为轮询官方和前后台官方。

中断在这里我们称为前台,main 函数 里面的无限循环我们称为后台

多任务官方。

keil中默认char是无符号的

在函数名中加入了函数所在的文件名

vTaskPrioritySet()函数的返回值为 void型,在 task.c这个文件中定义。 

当两个编译器的 tab 键设置的大小不一样的时候,BOB官方移植的时候BOB官方的格式就会变乱, 而使用空格键则不会出现这种问题

RVDS: ARM提供范围广泛的多种會員註冊工具: RealView會員註冊套件(RVDS):可为ARM架构會員註冊C,C++.

链表:

一般会设置根节点

链表的是把离散的数据连接起来的,数组是一段连续的内存。

TCB:任务控制块

 

链表节点:

根节点:

 

将链表索引指针指向最后一个节点。(ListItem_t*)起到类型转换的作用。

pxList->pxIndex=(ListItem_t*)&(pxList->xListEnd);

为了强制编译器把常量作为长整数来处理,只需在后边加上一个字母L(或l):

15L 0377L 0x7fffL

为了指明是无符号常量,可以在常量后边加上字母U(或u):

15U 0377U 0x7fffU

L和U可以结合使用,以表明常量既是长整型又是无符号的:0xffffffffUL。(字母L、U的顺序和大小写无所谓。)

iterator:迭代器。例如124中插入3,这段BOB体育中的iterator就是2

最后用仿真看懂BOB体育了。