落叶行健ywm的个人空间 https://bbs.21ic.com/?772247 [收藏] [复制] [RSS]

日志

如何移植FreeRTOS至M451

已有 2156 次阅读2015-10-22 13:21 |个人分类:NUVOTON|系统分类:嵌入式系统| FreeRTOS, M451

#开发环境
开发IDE:CoIDE_V2Beta
编译工具:GNU Tools for ARM Embedded Processors 4.7-Q2 2014


###第一步:搭建基本工程框架
这个步骤基本在安装CoIDE_V2Beta工具后安装上面的引导就可以顺序完成了。
选择的组件是:
        1:C_library     用于c库吧
        2:Retarget_printf   用于打印printf使用
        3:M451     M453的库函数组件,这个是CooCox官方优化过的,也可以自己根据新塘官方的库函数自己搭建

基本搭建完成后,你就可以再main函数里进行自己初始化,printf函数的功能实现等基本功能了。
printf函数功能需要修改Retarget_printf组件下的prinf.c这个文件的一个函数,如下添加相关串口信息就可以了。也要在IDE的配置选项中的“Link”中勾选“Don't usestandard system start files”和选择一个cLibrary.这样你就可以使用printf功能了。

  1. __attribute__ ((weak)) void PrintChar(char c)
  2.         {
  3.                 /* Send a char like: 
  4.                    while(Transfer not completed);
  5.                    Transmit a char;
  6.                 */        
  7.                 //记得要初始化化串口0哦
  8.                 while(UART0->FIFOSTS & UART_FIFOSTS_TXFULL_Msk);
  9.             
  10.             UART0->DAT = c;
  11.             if(c == '\n')
  12.             {
  13.                 while(UART0->FIFOSTS & UART_FIFOSTS_TXFULL_Msk);
  14.                 UART0->DAT = '\r';
  15.                 }
  16.         }
复制代码
工程目录图如下:
 


###第二步:将FreeRTOS工程文件加入
下载“FreeRTOSV8.2.1”源码,加入需要的部分
工程目录图如下:

 
###第三步:配置FreeRTOS,编写测试代码

配置信息参考新塘官方库函数里面的或者FreeRTOS代码里的CM4F的例子。
例子就随便参考官方例子自己测试吧。
对了,记得要配置IDE使能FPU这个功能,否则编译器报找不到-mthumb这个错误。我就被这个折腾了半天困难。

###附录一:我的工程源码下载地址
https://git.oschina.net/490054348/M451_FreeRTOS.git[/code]

路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)