- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
从0开始移植FreeRTOS
从0 开始移植FreeRTOS
个人见解:我接触STM32 时间不长,当初学的时候没有跑过这些小的
系统,后来转而去学arm9 的linux系统下面的驱动,进而接触到linux
操作系统,觉得这些操作系统用起来确实很方便,比裸奔要好很多,
多线程,虽然需要内存空间会大几 K,基本不影响程序运行。学
FreeRTOS,主要是公司要求,要使用免费的,所有老板都是这样,免
费。
其实网上资料最多的是UCOS 的系统,UCOS 系统是很稳定,我也自己
移植成功了,不过呢也就多学点东西,UCOS-II 的移植,关键是不能
用在商业上,商业上使用收费,虽然源码在你手上,但是这个确实也
涉及到了侵权之类问题。UCOS-III 更坑,不给源码了,搞个球啊。
FreeRTOS 属于免费系统,开源,研究的人会越来越多,两者的移植
我都试过,其实也都是申请空间,申请优先级,可以说两者使用从大
的方面说没有太大区别。学会一种,另外一种也容易入手。FreeRTOS
关键就没有图形用户界面 (GUI),比较弱势一点。
我在网上找了半天也没有看到像样的移植手册,对于刚刚入手
FreeRTOS 的人来说没有像样的例子,学起来就很坑。所以自己写了
这个例程。
当然这里面可能也有些错误,那个各位发现了告诉我,联系我的QQ。
移植好的文件在最后有下载链接。
QQ :1984583545 县长家兔子
目标:移植LED 闪烁程序+AD 的8 路采集程序
第一步:准备工作
下载FreeRTOS 的操作系统源代码,可以在官网下(注册比较麻
烦),可以直接去我的CSDN(百度直接搜索:FreeRTOS 系统的源文件,
直接官网下载来的),这个版本是2011 年出来的,还算比较稳定。我
的基础程序模版参考了野火的STM32 的模版,自己修改了,野火资料
很多,支持开源。
我的模版 (STM32_Mr.J 的普通程序模版)里面已经包含了移植需要
的子程序。(ADC_8.c 与LED.c)
(直接百度搜索:STM32_Mr.J 的普通程序模版
新浪的文件共享也有)为了区别我自己的UCOS 与FreeRTOS 模版的。
源码和模版都要下载下来。
以我的普通程序模版为例一步一步完成FreeRTOS 的移植。
QQ :1984583545 县长家兔子
CMSIS,FWLib,Listing,Output,USER 文件夹是移植STM32 的一些系统
文件不用修改,里面为 STM32 的3.5 库.各个子程序都放在在OtherC
文件夹里面,加入的c 文件与h 文件都在这里。
第二步:开始移植
1)新建文件夹:在模版下新建文件夹 FreeRTOS 文件夹用来存放
FreeRTOS 的系统文件,再在FreeRTOS 的文件夹下新建include 文件
夹 用来存放一些h 文件,分开存放利于管理。
QQ :1984583545 县长家兔子
2)拷贝系统文件到指定文件夹 (FreeRTOS 文件夹)中:
1. 从 FreeRTOS7.0.2 的 源 文 件 中 找 到 croutine.c,
timers.c,list.c, queue.c, tasks.c 这五个源文件,位置为:
FreeRTOS7.0.2-Source;拷贝文件至FreeRTOS 文件夹。
2. 从 FreeRTOS7.0.2 的源文件中找到 port.c 文件,位置
FreeRTOS-Source-portable-RVDS-ARM_CM3-port.c, 拷贝至
QQ :1984583545 县长家兔子
FreeRTOS 文件夹。
3. 从 FreeRTOS7.0.2 的源文件中找到 heap_2.c 文件,位置
Source-portable-MemMang-heap_2.c,拷贝至FreeRTOS 文件夹。
完成移动的FreeRTOS 文件目录,就这几个文件.
QQ :1984583545 县长家兔子
3) 拷贝.h 文件到指定文件夹(../FreeRTOS/include 文件夹)中:
1. 拷贝FreeRTOS7.0.2 的源代码下的include 文件夹里的全部.h 文
件至新建立的 include 文件夹里,位置:
-FreeRTOSv7.0
文档评论(0)