AG32 下使用uC/OS 的参考 3 min read AG32其他文档 在SDK 下已经有移植好的uC/OS-III V3.08.01 版本,可供用户使用。源码位于:\AgRV_pio\packages\framework-agrv_ucos\用户使用时,不必关注该源码,只需关注API 使用即可。 一、简单验证: 使用时,从VSCODE 中直接打开工程:\AgRV_pio\platforms\AgRV\examples\uCOS打开工程后,可以先验证简单的运行情况。这个工程中,并没有ve 文件(而是使用了默认的ve 文件)。便于后续开发,可以先建立一份ve。步骤:1. 从example 路径下copy 一份example_board.ve 过来,重命名为uCOS_board.ve;2. 打开该uCOS_board.ve,删除掉里边除clk 和led 灯以外的其他引脚配置;3. 在platformio.ini 中添加对该ve 的引用:board_logic.ve = uCOS_board.ve接下来,编译ve 并烧录,然后编译code 并烧录。两项都烧录成功后,就可以看到led 灯的闪烁了。 二、使用样例: 打开main.c,可以看到例程中展示了几种元素的使用方法:Semaphore、Queue、Task、Timer。这里简化样例时,比如只保留一个Task:AppTaskTimer,则注掉其他task 的创建即可。uC/OS 的样例较为简单,自行尝试即可。 三、使用自建工程: 如果用户希望在自建工程中使用uC/OS,该如何把它添加进来?比如,在example 下要把uC/OS 加进来。步骤:1. 在platformio.ini 中增加对uC/OS 的引用: 注意,多个库之间用“逗号+空格”来隔开。2. 确认ve 文件里的配置正常(时钟+led 引脚);3. 将用到的几个头文件从uCOS 工程下copy 过来;4. 在example.c 中引入freertos 的头文件及用到的宏定义: 5. 在example.c 中新增几个函数(从uCOS 的例程中简化过来的): 6. 在main.c 中保留uCOS 的启动即可: 然后,编译ve 并烧录,再编译code 并烧录,就可以看到led 的闪烁了。 PREVIOUS ← AG32 下使用Segger RTT