[MCU] 【GD32E503评测】玩转GD32E503-uCOSIII操作系统移植附Demo

eew_YeKTCB   2021-1-19 09:34 楼主

  开发板下来,首先就可以把官方例程简单的跑一遍了。一般呢,我首先用的是:

01_GPIO_Running_LED 这个例程,用来查看开发板的好坏、开发环境是否正常。进一步的,我就用到04_USART_Printf 这个例程,GD官方提供的板子呢,自带一个USB串口,咱们接上就能直接使用这个例程。可真是相当配套!对于串口,我情有独钟,因为不论是在学习、或是软件的调试,一方面我们使用调试器进行调试、另一方面,我们还能用串口工具来打印消息,这样能让我们很直观的知道,自己的程序工作逻辑、状态。可谓是如虎添翼!

  一般,基本了解了上述的例程后,咱们就可以深入了,我本想移植个ucosII 的工程,可是上官网上看,发现还有个uCOSIII,心血来潮,要不就来移植uCOSIII吧。

 

目标:移植uCOSIII操作系统,并验证功能是否正常。

  1. 首先上网调研下,移植的可行性、准备工作

基于GD32E503V的开发板,GD32E503是个M33内核,其实呢,理解为M3的升级版即可。

移植uCOSIII当然要上Micrium 上面下些源码啦。(uCOSIII是付费的,但我们学习是免费的)PS:Micrium官网上其实就有很多移植的例程,比方ST的,热爱造轮子的朋友们可以自己去下个例程,对比来移植。

  1. 开始“冻手”

小弟坐标福建,动手前还是有点冻手的哈哈。如下图是官方提供的文件:

image-20210119093932-1.png

小弟框下所需要的文件,至于为啥我知道呢,,大家可以去下示例代码,看看示例代码里面有什么、没有什么不就能清楚啦,再一个,其实Micrium提供的文档还是相当详细的,热爱肯英文的小伙伴可以看看。(移植这个uCOSIII我也花了好几个小时看资料,目测用了一两天吧,简简单单的blog可能说不清,大家自己看书哈。看官方资料)我只能贡献下自己移植好的工程。

image-20210119093932-2.png

自己创建个uCOSIII的文件夹,将上述文件copy进来。如图:

image-20210119093932-3.png

另外呢,创建APP/BSP两个文件夹。

APP呢,就是Application,或者说,放main.c的地方。当然,官方提供的工程已经有main.c文件了,咱也可直接使用,没什么问题。

BSP呢,就是board support packet ,也就是放一些芯片外设初始化啥的。

 

image-20210119093932-4.png

  1. 开始将文件添加入工程、并编译。记得最好在keil中也用相同的文件结构,这样比较不会乱,如图:

image-20210119093932-5.png

接下去呢,就是编译了,按道理,能通过就有鬼了,出现了一些报错,比方缺少某某头文件,如果是uCOSIII的,就要去添加下,很简单,就缺啥补啥。我编译过程还算顺利,添加了头文件路径、头文件、基本就没啥啦。这里添加路径!

image-20210119093932-6.png

然后很快编译过啦。

接下去就是创建线程

参照示例代码,依样画葫芦即可:

image-20210119093932-7.png

image-20210119093932-8.png

按道理,我已经创建两个线程,即可debug,进行测试啦。

编译OK,debug OK ,然而,全速运行时,卡在某个位置,不走了,百思不得其解~,其实呢,操作系统,是需要有个心跳的,没错,就是SysTickHandler这个中断,mcu自己的启动代码文件,定义了SysTickHandler入口,uCOSIII同样也有个OS_CPU_SysTickHandler 入口,因此,我们需要替换下,记得全工程搜索下,进行替换。

image-20210119093932-9.png

进一步的,再次deBug,即可发现,有两个线程,友好的、手牵手的,一起行走了。

附上工程,

GD32E50x_Demo_Suites_V1.1.0_uCOSIII_Template.rar (4.34 MB)
(下载次数: 121, 2021-1-19 09:32 上传)

 

在这里要提个醒,此工程修改了hd.s的文件,因此,使用其他工程时,需要注意哦,所有例程共用一个.s文件。

本帖最后由 eew_YeKTCB 于 2021-1-19 09:39 编辑
  • image-20210119092238-1.png
  • image-20210119092238-3.png
  • image-20210119092238-5.png
  • image-20210119092238-4.png
  • image-20210119092238-2.png
  • image-20210119092238-6.png
  • image-20210119092238-7.png
  • image-20210119092238-9.png
  • image-20210119092238-8.png

回复评论 (2)

不错uscos起源早,应用也多,mark一下

点赞  2021-1-19 17:42

支持,我刚刚移植了一个FreeRTOS

gitee/casy
点赞  2021-1-19 22:01
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复