最近拿到了一块万利的EK-STM32F的学习板,打算先用它来熟悉下STM32的编程环境,不过在这过程中和一个同事聊的时候觉得如果只调用STM32的库写程序,可能在芯片资源的利用上面可能就会差一点,在这么高的主频下,一些硬延时的函数对资源会造成比较大的损失,所以一般的编程方式还是有不少局限性的,所以我就觉得有必要去使用小型的嵌入式RTOS来实现系统的资源管理。

以前看过一些RTT的资料,可是感觉比较复杂,如果直接使用的话可能要花的时间比较长,虽然一直什么都做了,可是还是有点复杂的感觉,uCos吗商业使用限制比较大,虽然资源比较多,可是很多组件都是暂时用不到的。最后找到了Free RTOS,一个商用免费的系统,占用的ROM/RAM资源比较小,且对stm32都有现成的例子支持,对于一般的使用还是够用了。

下面要看如何移到EK-STM32F板子上使用了,我看了下里面自带的例子,发现其STM32使用的库还是最老的版本库,现在都出到lib v3.5了,那么我用肯定要使用最新的。刚开始直接在例子里替换了最新的库,结果报了几百个警报错误,直接让我奔溃,那么只能不这么弄了,不再使用原来的例子直接改了,那就一步步来。

  我开始自己建了一个项目,先将新库的结构给搭建好:
  建好之后试了一个简单的例子,确定该库能正常使用,之后在开始添加Free Rtos文件并对一些文件进行修改,以确保能正常运行FREE RTOS:
   其实FREE RTOS很多文件都是系统无关的,这了我只修改了几个中断文件的入口以确保系统正式运行,下面三个中断函数就是RTOS带的函数,修改就好了,刚开始我是修改启动文件里的跳转函数,结果发现报了HardFault错误,现在这个才是正确的:

    DCD     SVC_Handler               ; SVCall Handler
DCD PendSV_Handler ; PendSV Handler
DCD SysTick_Handler ; SysTick Handler
   我找了下官方对这几个函数的解释,就能看出这几个中断就是给OS使用的,看来Cortex-M3是对OS有优化的:

   SVCall  A supervisor call (SVC) is an exception that is triggered by the SVC instruction. In an OS environment, applications can use SVC instructions to access OS kernel functions and device drivers.

   PendSV  PendSV is an interrupt-driven request for system-level service. In an OS environment, use PendSV for context switching when no other exception is active.

    SysTick  A SysTick exception is an exception the system timer generates when it reaches zero. Software can also generate a SysTick exception. In an OS environment, the processor can use this exception as system tick
   改完之后我试了一个简单的LED任务,延时1s亮灭,下载,发现没什么问题,说明功能暂时OK了,下面就学习具体的RTOS操作和芯片功能设置了。

最新文章

  1. 在SharePoint 2013 之中使用JS从Add-in程序中读取用户配置文件的属性
  2. IDEA 中 显示 *.properties 为中文
  3. [Aaronyang] 写给自己的WPF4.5 笔记19[Visual类图文并茂讲解]
  4. 用Intellij IDEA 创建第一个maven项目!
  5. Laravel5.1控制器小结
  6. Java NIO回炉
  7. Qt入门(10)——调试技术
  8. C#可以直接调用的Win32API(和VCL做的整理工作非常类似)
  9. 准备开发一个基于canvas的图表库,记录一些东西(一)
  10. 扫描局域网内的ip和主机名
  11. HTTP状态码理解
  12. JS 部分基础内容总结
  13. Shell 脚本实践
  14. 二、JAVA基础、语法
  15. 官网类原型模板分享——Apple
  16. APICloud APP前端框架——手机APP开发、APP制作、APP定制平台
  17. CSS3 transition过渡
  18. 敏捷转型中why与how的总结
  19. .Net C# 阿拉伯数字转为中文金额数字
  20. Django(基础篇)

热门文章

  1. Shell学习之Shift的用法
  2. HTML5 canvas 在线画笔绘图工具(三)
  3. fltk demo
  4. 分析BGARefreshLayout-master
  5. Window10安装TestLink,以及登录mysql数据库的错误处理
  6. OTCL的多继承
  7. Handler机制原理图、源码、使用!!!!!
  8. smb相关资料
  9. MapReduce工作机制
  10. jquery获取父窗口的元素[转]