首页 uCOS-III移植到stm32

uCOS-III移植到stm32

举报
开通vip

uCOS-III移植到stm32 编者序 很高兴终于完成了 uC/OS-III嵌入式系统的翻译并移植到 stm32 中,翻译从 2011年 10月 15日开始到 2011年 11月 3日为止,共 20 天时间,平均每天 5个小时。本想将 uC/OS-III函数的 API部分也翻 译的,但毕竟考研更甚于爱好,我得为 2013年 1月的考研做准备呀 ~~。 在此,我要感谢: 1、我的导师:乐光学教授。是您经常带我去公司拓展视野, 并让我坚定不移地往嵌入式方面发展。 2、我的师傅:张雪强博士。是您无偿提供给我一些开发板, 作为回报,...

uCOS-III移植到stm32
编者序 很高兴终于完成了 uC/OS-III嵌入式系统的翻译并移植到 stm32 中,翻译从 2011年 10月 15日开始到 2011年 11月 3日为止,共 20 天时间,平均每天 5个小时。本想将 uC/OS-III函数的 API部分也翻 译的,但毕竟考研更甚于爱好,我得为 2013年 1月的考研做准备呀 ~~。 在此,我要感谢: 1、我的导师:乐光学教授。是您经常带我去公司拓展视野, 并让我坚定不移地往嵌入式方面发展。 2、我的师傅:张雪强博士。是您无偿提供给我一些开发板, 作为回报,帮您的店铺宣传一下 http://as-robot.taobao.com/ 3、还有我的亲朋好友们。 今天晚上,我将移植的步骤也分享给大家。 我的 QQ号码是 522430192,我的邮箱是 522430192@qq.com,希 望大家多多联系我,共同学习,共同进步。 :屈环宇 :嘉兴学院 :2011年 11月 4日晚 本次移植使用的处理器为 stm32f103rbstm32f103rbstm32f103rbstm32f103rb,编译器为 KeilKeilKeilKeil uVision4uVision4uVision4uVision4。 1111、建立MDKMDKMDKMDK工程模板 保证编译成功才能进行下一步。 这是我自己编写的文件,其实就是库函数的调用,这样写起来后 使用就会方便很多(为了大家容易看懂,我把这文件中的其它函数都 删除了)。 2222、将 uC/OS-IIIuC/OS-IIIuC/OS-IIIuC/OS-III文件移植到工程文件夹中 原本有三个文件夹 Libraries 存放着 stm32的启动文件及库文件 User 存放着用户的文件 pri 存放着工程文件,链接文件,目标文件 新添移植相关的四个文件 BSP 存放开发板外设的初始化文件 uC-CPU 存放与 CPU相关的文件 uC-LIB 存放与一些通用文件 uCOS-III 存放 uC/OS-III的源文件 以下文件都可以在Micrium提供的压缩包中找到 首先介绍 BSP文件夹 uC/CPU文件夹中的文件 uC/LIB中的文件 uC/OS-III文件夹中的文件 至此 所有的文件都添加完毕,接下来将这些文件添加到工程 3333、工程 框架 财政支出绩效评价指标框架幼儿园园本课程框架学校德育工作框架世界古代史知识框架质量保证体系框架图 路径设置: 工程的框架搭好了,接下来就是修改文件了 4444、移植配置 编译之后,错误一大堆~~~ 不要怕,一个一个改~~ 首先,我们是负责Micrium提供的 BSP文件,但是这些 BSP文件 都是基于Micrium的评估板写的。为了大家看懂,我尽量让 BSP.c中 的文件越少越好。 bsp_int.c中直接为空 最后空一行是防止MDK的编译警告,至于为什么要添加这两个函数呢? 因为这两个是更软件定时器任务相关的函数,uC/OS-III内核中与软件定时器相关的代码需 要用户定义这两个函数,不然文件链接时会出错。 移植的难点,汇编文件的修改!! 将两个汇编文件 cpu_a.asm和 os_cpu_a.asm中的 PUBLIC关键字 全部改为 EXPORT。 因为Micrium是在 IAR环境中编译的,所以关键字是不一样的。如 下: 重新编译,错误是不是只有十几行了!!! 将上述两个汇编文件中如下两行代码(共两处) 改为 原因也是编译器不同所致 还是编译器不同导致的错误: 将所有函数名的冒号删除 修改完成后,再次编译,没有错误!!! 是不是很高兴呀 O(∩_∩)O哈哈~ 那么,接下来创建任务: 再次编译,还是没有错误,那么 是否 uC/OS-III真的能运行了呢?_? 答案 八年级地理上册填图题岩土工程勘察试题省略号的作用及举例应急救援安全知识车间5s试题及答案 是否定的╭∩╮(︶︿︶)╭∩╮ 不要忘记了,uC/OS-III的运行是需要时基中断的,也就是需要被提供时钟周期。在 stm32 中,是由 SysTick提供的。 新增两个函数: (中断服务函数不需要申明) 再次编译,没有错误 o(≧v≦)o~~好棒 但是,也别高兴地太早了 在任务 1处设置断点,软件调试,程序是否能运行到任务~~ 调式,并运行,过了好久、好久…… 还是没停下了,没办法,强制停止!! 发现程序指针始终在这里。 显然 PendSV_Handler 函数出问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 了!! 改为 改为 然后再编译,调试~~~~~ 结果发现 只有一次能进入任务! 这时,就需要考虑到 uC/OS-III内部机制了,这时,我们设置 uC/OS-III的配置文件 我们再加入这个目录,打开 os_cfg.h文件 设置关闭中断延迟提交方式(在我翻译 uC/OS-III中文资料中有介绍) 再编译,调试 第一次运行到断点: 第二次运行到断点: 第三次运行到断点: 第四次运行到断点: 注意到图片中的 Sec,间隔都十分接近 0.2秒的 至此 uC/OS-IIIuC/OS-IIIuC/OS-IIIuC/OS-III移植完成。 在 BSP中编写板子 LED灯的驱动程序,放在任务中开启,关闭。就能在硬件上测试 uC/OS-III 是否能成功运行了。 注意: hook函数应该定义为空(或者根据自己的开发板设置),或者修改 os_cfg.h中的 OS_CFG_APP_HOOKS_EN为 0(关闭 hook函数)。 注意:文件应该存放到对应的位置。文件名与文件的作用密切相关,函数名与函数的功能密 切相关,这对于大型项目、团队合作会很有好处的。 在此,仅创建了一个任务。多个任务,信号量、消息等内核对象的创建是简单的,相信大家 都能自己解决的,我就不多介绍了。 uC/OS-III的详细说明,见 uC/OS-III中文资料。我把它放到百度文库中了,只有百度搜索 "uC/OS-III中文资料"就能找到。 我当时移植的时候就是这种思想的,这样写出来可能更利于大家理解。 编者序 1、建立MDK工程模板 2、将uC/OS-III文件移植到工程文件夹中 3、工程框架 4、移植配置
本文档为【uCOS-III移植到stm32】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_418477
暂无简介~
格式:pdf
大小:646KB
软件:PDF阅读器
页数:18
分类:互联网
上传时间:2014-03-15
浏览量:35