打印
[DemoCode下载]

如何移植FreeRTOS至M451

[复制链接]
4317|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
#开发环境
开发IDE:CoIDE_V2Beta
编译工具:GNU Tools for ARM Embedded Processors 4.7-Q2 2014


###第一步:搭建基本工程框架
这个步骤基本在安装CoIDE_V2Beta工具后安装上面的引导就可以顺序完成了。
选择的组件是:
        1:C_library     用于c库吧
        2:Retarget_printf   用于打印printf使用
        3:M451     M453的库函数组件,这个是CooCox官方优化过的,也可以自己根据新塘官方的库函数自己搭建

基本搭建完成后,你就可以再main函数里进行自己初始化,printf函数的功能实现等基本功能了。
printf函数功能需要修改Retarget_printf组件下的prinf.c这个文件的一个函数,如下添加相关串口信息就可以了。也要在IDE的配置选项中的“Link”中勾选“Don't usestandard system start files”和选择一个cLibrary.这样你就可以使用printf功能了。

__attribute__ ((weak)) void PrintChar(char c)
        {
                /* Send a char like:
                   while(Transfer not completed);
                   Transmit a char;
                */       
                //记得要初始化化串口0哦
                while(UART0->FIFOSTS & UART_FIFOSTS_TXFULL_Msk);
            
            UART0->DAT = c;
            if(c == '\n')
            {
                while(UART0->FIFOSTS & UART_FIFOSTS_TXFULL_Msk);
                UART0->DAT = '\r';
                }
        }
工程目录图如下:



###第二步:将FreeRTOS工程文件加入
下载“FreeRTOSV8.2.1”源码,加入需要的部分
工程目录图如下:


###第三步:配置FreeRTOS,编写测试代码

配置信息参考新塘官方库函数里面的或者FreeRTOS代码里的CM4F的例子。
例子就随便参考官方例子自己测试吧。
对了,记得要配置IDE使能FPU这个功能,否则编译器报找不到-mthumb这个错误。我就被这个折腾了半天困难。

###附录一:我的工程源码下载地址
https://git.oschina.net/490054348/M451_FreeRTOS.git
一份用markdown写的文件
如何移植FreeRTOS至M451.pdf (62.53 KB)
沙发
cowboy2014| | 2015-10-17 21:11 | 只看该作者
移植过ucos ii,不过我觉得是差不多的

使用特权

评论回复
板凳
ccw1986| | 2015-10-17 21:28 | 只看该作者
FreeRTOS是可剥夺型内核的操作系统吗

使用特权

评论回复
地板
598330983| | 2015-10-18 07:36 | 只看该作者
要配置IDE使能FPU这个功能,否则编译器报找不到-mthumb这个错误

使用特权

评论回复
5
奥德赛| | 2015-10-18 08:57 | 只看该作者
主要是那个汇编文件如何写吧

使用特权

评论回复
6
mintspring| | 2015-10-18 10:42 | 只看该作者
FreeOS怎么玩,移植后了,怎么应用自己的工程?

使用特权

评论回复
7
稳稳の幸福| | 2015-10-18 12:39 | 只看该作者
安装CoIDE_V2Beta工具后安装上面的引导就可以顺序完成了。
这个怎么还是beta版本啊,更新速度不给力

使用特权

评论回复
8
huangcunxiake| | 2015-10-18 15:40 | 只看该作者
我觉得这个COIED是很酷的,代码给的都挺好用的。

使用特权

评论回复
9
Messi1999| | 2015-10-18 20:50 | 只看该作者
printf函数功能需要修改Retarget_printf组件下的prinf.c这个文件的一个函数。

使用特权

评论回复
10
小猫爱吃鱼| | 2015-10-19 08:42 | 只看该作者
我看到在startup.s文件需要初始化堆栈,而在移植ucos ii的时候也需要初始化堆栈,不知道具体该怎么弄啊

使用特权

评论回复
11
落叶行健ywm|  楼主 | 2015-10-19 13:35 | 只看该作者
小猫爱吃鱼 发表于 2015-10-19 08:42
我看到在startup.s文件需要初始化堆栈,而在移植ucos ii的时候也需要初始化堆栈,不知道具体该怎么弄啊 ...

移植FreeRTOS时都自动搞定了,只要配置一个值就可以了。我感觉比uc2好移植多了

使用特权

评论回复
12
落叶行健ywm|  楼主 | 2015-10-19 13:35 | 只看该作者
huangcunxiake 发表于 2015-10-18 15:40
我觉得这个COIED是很酷的,代码给的都挺好用的。

是的,eclipse定制版的,很喜欢

使用特权

评论回复
13
落叶行健ywm|  楼主 | 2015-10-19 13:36 | 只看该作者
mintspring 发表于 2015-10-18 10:42
FreeOS怎么玩,移植后了,怎么应用自己的工程?

这个也很简单的,后续我会在代码里添加些。我现在的项目就在使用,感觉很爽

使用特权

评论回复
14
落叶行健ywm|  楼主 | 2015-10-19 13:37 | 只看该作者
ccw1986 发表于 2015-10-17 21:28
FreeRTOS是可剥夺型内核的操作系统吗

这个暂时我还没了解,我现在只是应用阶段,以后再研究吧。不过作为个全球用的一个种类,功能还是可以肯定的

使用特权

评论回复
15
落叶行健ywm|  楼主 | 2015-10-19 13:38 | 只看该作者
cowboy2014 发表于 2015-10-17 21:11
移植过ucos ii,不过我觉得是差不多的

我个人感觉比ucos ii好移植多了。

使用特权

评论回复
16
huangcunxiake| | 2015-10-19 21:50 | 只看该作者
回头我有什么不懂的,来这问楼主,先谢谢。

使用特权

评论回复
17
mintspring| | 2015-10-31 14:45 | 只看该作者
eclipse定制版的,很喜欢

使用特权

评论回复
18
cowboy2014| | 2015-11-2 20:31 | 只看该作者
有移植ucos ii例程的吗

使用特权

评论回复
19
yiyigirl2014| | 2016-8-7 14:16 | 只看该作者
移植过ucos ii,不过我觉得是差不多的,下载学习一下。

使用特权

评论回复
20
天灵灵地灵灵| | 2016-8-9 22:57 | 只看该作者
来学习一下系统移植,这个貌似高手都会

使用特权

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

本版积分规则

个人签名:爱这个世界!

34

主题

713

帖子

18

粉丝