操作系统对于嵌入式的设计开发是个很好的平台,能给我们在应用上提供更好的设计体验。所以,这次也试着将一个RTOS移植到uFUN开发板上,方便后面对实际的应用进行综合的设计和开发。    这次试用的操作系统是FreeRTOS,它是一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满足较小系统的需要。在这篇文章里面不涉及原理的解析,不是不想而是暂时没有那个实力,望谅解。在这里只是起到一个抛砖引玉的作用,最终还是希望能够大家一起沟通,在技术上实现共同进步。


获取资源————网址:https://sourceforge.net/projects/freertos/
    在浏览器里面上搜索FreeRTOS能够找到比较多的资源,但是,我一直相信一句话,“大国手下出二国手,二国手下初三国手”,因而直接去的官网,找链接下载了最新的版本。文件下载以后,还需要找一下指导手册和API参考文档,进入到页面就能找到,不难,也不麻烦。只是,打开文档后有点麻烦:我下载的PDF文档,这个文档的说明是基于V8版本的。但是,暂时没有太大影响,咱们摸着石头过河,有问题慢慢解决。下图是下载链接的网页(可以参考使用):
freertos.JPG
  文件解压后,能够找到这样一个路径:....\FreeRTOS\FreeRTOSv10.2.1\FreeRTOS\Demo\CORTEX_STM32F103_Keil。在这个路径下有KEIL2的文件,打开。如果提示没有相关的包,可以使用keil安装,或者自己装都行。然后找到main函数,效果如下图: rtos_main.JPG
    已经有了一个可以用的工程了,接下来就是相关驱动的移植了。



整合资源————将我们的板子和RTOS进行整合

    打开FreeRTOS的工程,双击启动文件 startup_stm32f10x_hd.s ,
添加   
     IMPORT xPortPendSVHandler、IMPORT xPortSysTickHandler、IMPORT vPortSVCHandler;
修改
                DCD     vPortSVCHandler            ; SVCall Handler
                DCD     xPortPendSVHandler          ; PendSV Handler
                DCD     xPortSysTickHandler            ; SysTick Handler
效果如下图:
FreeRTOS_2.JPG
FreeRTOS_1.JPG

  在工程中添加相关*.c文件和*.h文件路径,如下图:
FreeRTOS_3.JPG
FreeRTOS_4.JPG
    修改main.c文件,添加*.h文件,修改main()内代码,如图:
freertos_5.JPG
freertos_6.JPG
编译通过后,使用ISP方式下载后,RGB点亮如图。
微信图片_20190526111622.jpg
附件,密码:uFun_Good
附件.zip (2.08 MB, 下载次数: 10)
全部回复 3
  • 47 主题
  • 661 帖子
  • 4123 积分
身份:LV5 资深技术员
E币:6255
  • 25 主题
  • 72 帖子
  • 1180 积分
身份:LV4 高级技术员
E币:792
  • 2 主题
  • 5 帖子
  • 359 积分
身份:LV2 初级技术员
E币:328
123
回复楼主
您需要登录后才可以评论 登录 立即注册