打印
[资源分享]

AC781X 移植UCOSIII分享

[复制链接]
1183|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 JasonLee27 于 2019-9-5 14:43 编辑

环境准备:硬件: AC781X通用开发板
软件:Keil 5.2.3

1,UCOS-III源码下载
首先,从Micrium上下载一个移植好的UCOS-III例程。这里选择了Micrium_uC-Eval-STM32F107_uCOS-III,因为都是m3的内核,修改起来的工作量也比较小。
https://www.micrium.com/download/micrium_uc-eval-stm32f107_ucos-iii/附上下载链接,没有注册的可能要注册一下。

2,新建一个AC781X工程

准备好后就可以开始移植了~~

首先,从解压后的源码中,将/Micrium/Software目录下的uC-CPU,uC-LIB,uCOS-III三个文件夹copy到工程路径下。

讲下这三个文件夹,uCl-CPU中放的是内核相关的一些操作接口分装,像开关中断之类的就在这里面实现的。
uC-LIB是UCOS使用的函数库,里面有数学函数,字符串以及内存相关的库。
uCOS-III文件夹下放的是操作系统的核心代码,任务,信号量等等相关的操作系统实现都在这里面。

然后我们可以看到,三个文件夹下都有一个ARM-Cortex-M3文件夹(uCOS-III下在Ports文件夹下),这三个文件夹下放的都是各自对应底层的实现,在这个文件夹下又有三个文件夹
GNU,IAR,RealView。对应不同的编译器,我们使用的是keil开发环境,都选择RealView下的代码。

copy完这三个文件夹后,我们在工程下再新建一个uCOS-CONFIG文件夹,然后从源码中的Micrium->Software->EvalBoards->Micrium->uC-Eval-STM32F107->uCOS-III下将下面这些文件复制到uCOS-CONFIG文件夹下。这里的文件都是uCOS-III的一些配置文件以及钩子函数的实现。

最后,在工程目录下新建一个BSP文件夹,一个User文件夹。User文件夹放的是用户相关代码,BSP文件夹放的是驱动相关代码。整个工程的目录结构如下:

代码都copy完后,打开工程,将代码添加至工程,并添加头文件路径(这里我把uCOSIII下的PORT单独放一个group)。


添加头文件路径(注意前面说的,三个文件夹下内核相关的代码文件选择RealView的,所以头文件路径也一样):

到这一步,算是把uCOSIII的源码都移植过来了,剩下的就是适配自己的芯片了(这部分比较麻烦,总的来说就是该删的删,该改的改,该实现的底层,给他实现一下,最后能编译过就行。)。
这里还有一个很重要的一步,那就是两个中断handler需要添加到向量表中,打开startup_ac78xx.s文件,按如下修改。


至此就算搞掂了,我在app.c中增加了一个自己的按键任务,同时保留了例程中的start任务。测试两个任务都可以正常运行。
后面大多时间都在用Freertos,对UCOS的使用也不是那么熟悉,也就没有测试其他功能了,有大神路过可以指正一下还有哪些地方移植不到位的。或者坛友使用中发现有问题的也欢迎指出,有时间都会尽量回复。


UCOSIII_demo.rar (3.92 MB) 移植好的工程
Micrium_uC-Eval-STM32F107_uCOS-III.zip (1.28 MB) 官网下载的源码




使用特权

评论回复

相关帖子

沙发
NickyGrout| | 2019-9-12 16:55 | 只看该作者
官方评估板大赠送还没开始呀

使用特权

评论回复
板凳
JasonLee27|  楼主 | 2019-9-16 13:41 | 只看该作者
NickyGrout 发表于 2019-9-12 16:55
官方评估板大赠送还没开始呀

已经在筹备中了呢

使用特权

评论回复
地板
zlmin| | 2019-9-30 15:50 | 只看该作者
啥时候有中文编程就更好了

使用特权

评论回复
评论
JasonLee27 2019-10-9 11:13 回复TA
易语言不就是中文编程嘛 
5
zlmin| | 2019-10-3 10:18 | 只看该作者
谢谢分享!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

66

主题

415

帖子

11

粉丝