FreeRTOS移植到STM32F103步骤与注意事项.docxVIP

FreeRTOS移植到STM32F103步骤与注意事项.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
FreeRTOS移植到STM32F103步骤与注意事项 转载?2017年05月29日 11:16:36 1496 原文地址:/thread-77593-1-1.html 前言: 由于之前听过太多人抱怨移植FreeRTOS到STM32有各种各样的问题,小灯经过一年多对FreeRTOS的研究并在公司产品中应用,多少有些心得,接下来就由小灯以最新版的FreeRTOS为例一步一步移植到 STM32F103上,并提醒大家某些需要注意的事项。本文档为非正式技术文档,故排版会有些凌乱,希望大家能提供宝贵意见以供小灯参考改进。 下面先以IAR移植为例,说明移植过程中的诸多注意事项,最后再以MDK移植时不再重复说明,所以还是建议大家先花些时间看IAR的移植过程,哪怕你不使用IAR,最好也注意下那一大堆注意事项! 一、从官网下载最新版的FreeRTOS源码 下面的网址是官方最新源码的下载地址: /projects/freertos/files/latest/download?source=files 目前官方提供的最新版本是v9.0.0, FreeRTOS源码在解压目录下的路径为 FreeRTOS_V9.0.0rc2\FreeRTOS\Source FreeRTOS组织为了抢用户也是拼了命的,不信你打开Demo文件夹看看,里面提供了FreeRTOS在各种单片机上已经移植好的工程,如果建工程时遇到什么问题,可以参考下这些Demo。 不过小灯现在着重于自己动手移植FreeRTOS,考虑到原子哥@ 正点原子的用户比较多,绝大多数习惯了使用MDK来开发STM32,因此小灯分别以IAR和MDK两种使用比较广泛的开发环境来移植FreeRTOS。说到IAR和MDK,不得不提的是小灯自从用了IAR之后就果断放弃了MDK,相信很多人有这个经历,哈哈! ? 在开始移植FreeRTOS之前,先介绍下FreeRTOS的源码: ? FreeRTOS的源码比较少,源文件也远没有UCOS多,不过麻雀虽小五脏俱全,FreeRTOS的短小精悍也是最令小灯着迷的,虽然缺少了很多组成部分,例如GUI、网络协议栈、文件系统等,不过这些统统都不是问题,因为完全可以移植第三方的组件! 一不小心牛逼又吹大了,哈哈!回归正题,FreeRTOS的源码核心部分是tasks.c和list.c,其余的几个文件功能都是可选的,例如软件定时器、队列、协程等等,小灯就不介绍了,有兴趣的话可以到官网上看介绍。include文件夹里面的文件是操作系统相关的头文件,而portable这个文件夹有些奇葩,先看看里面有啥: ? 这里的文件几乎都是与平台相关的,如果你要删掉这里的文件时就必须小心了,因为不是所有文件都能删除的。 注意文件夹MemMang,里面存放的是FreeRTOS自带的内存管理方案的源文件: ? 关于内存管理方案的选择,小灯以后再跟大家讨论,现在只需要知道这些文件不能删就好。 接下来看看IAR文件夹的内容,里面都是跟单片机底层相关的,由于我们以STM32F103为例,因此只需要保留ARM_CM3文件夹即可,其余可选择性删除。ARM_CM3文件夹里只有几个文件,这几个文件是操作系统最最底层的部分: ? 接下来再看看Keil文件夹的内容,里面只有一个文件,文件提示See-also-the-RVDS-directory,意思是让我们参照RVDS目录下的文件。其实我们以MDK建工程时,就是拿RVDS目录下的文件来替代的,因此我们应该把RVDS目录下的文件拷贝到Keil目录下,跟上面IAR文件夹一样我们只拷贝ARM_CM3文件夹即可: ? 到这里我们可以把其他无用的文件统统删掉了,portable目录下只保留下面几个文件夹的文件即可: ? 现在已经把源码整理好了,接下来就开始移植工作吧! 二、IAR下移植FreeRTOS 事先说明下,小灯使用的IAR版本是 ? 关于IAR下如何创建STM32基础工程,小灯就偷下懒不介绍了,这入门级的知识还是交给卖 开发板的人来传播吧,小灯就以自己平常用的简单工程为例: ? 工程当中只有一个LED.c是小灯额外添加的,小灯一直停留在跑灯的水平,习惯用LED来观察现象,希望各位大神莫怪。工程源码结构如下: ? 其中FreeRTOS文件夹下就是FreeRTOS的源码: ? 接下来在工程里面添加FreeRTOS文件: ? 文件清单如下: FreeRTOS\tasks.c FreeRTOS\list.c FreeRTOS\portable\IAR\ARM_CM3\port.c FreeRTOS\portable\IAR\ARM_CM3\portasm.s FreeRTOS\portable\MemMang\heap_4.c 这时有人可要问为何没有把

文档评论(0)

151****0104 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档