请选择 进入手机版 | 继续访问电脑版
查看: 8975|回复: 10

[原创] [TRK-KEA128开发笔记]移植FreeRTOS到KEA128

[复制链接]
  • TA的每日心情

    2016-10-20 09:45
  • 签到天数: 1 天

    [LV.1]初来乍到

    80

    主题

    1038

    帖子

    5

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    2223
    最后登录
    2023-11-20
    发表于 2016-6-4 10:42:54 | 显示全部楼层 |阅读模式
    本帖最后由 花溪村长 于 2016-6-4 10:47 编辑

    通过对小恩GG的教程学习以及初步分析,直接动手移植FreeRTOS到TRK-KEA128上,并实现LED闪烁以及串口打印信息!

    一、准备工作
    1,  官网下载FreeRTOS源码包V9.0.0,解压到本地电脑上
    2,  KEIL平台
    3,  TRK-KEA128


    二、建立工程模板及系统移植
    1、模板就使用之前发布的程序作为模板,需要的自取
    KEA系列开发笔记汇总
    2、移植rtos
        需要移植的文件:
         1)内核5个文件: FreeRTOSV9.0.0rc1\FreeRTOS\Source目录下
          QQ截图20160604102145.png
       2)内存分配文件在\FreeRTOSV9.0.0rc1\FreeRTOS\Source\portable\MemMang中
       主要有5个,我们这里只需要heap_2.c就行了(至于为啥用第二个还没搞明白~~~)
      3) 移植M0的文件,这个分平台,这里用的Keil,所以选择
        FreeRTOSV9.0.0rc1\FreeRTOS\Source\portable\RVDS\ARM_CM0中的两个文件port.c和portmacro.h(IAR中多了portasm.s

      4)移植Include所有文件

      5)移植配置文件,我这里选择的是Demo中M0相关MCU的FreeRTOSConfig.h修改

    3、添加文件到Keil中
      添加刚刚移植所需的文件到工程,并设置工程包含.h路径
    QQ截图20160604102947.png

    4、主函数中添加以下几个函数(至于用来干哈的现在还不明白,参考列程中的.....)
    void vApplicationMallocFailedHook( void )
    void vApplicationIdleHook( void )
    void vApplicationStackOverflowHook( TaskHandle_t pxTask, char *pcTaskName )
    void vApplicationTickHook( void )   
    到此基本移植完成了,移植过程还是挺简单~

    5、创建Task
        1)新建两个任务方法,分别是LED和UART的

    1. static void vLEDTask( void *pvParameters )  
    2. {  
    3.   for( ;; )  
    4.   {  
    5.     GPIO_ToggleBit(PTC,GPIO_Pin_0);  
    6.     vTaskDelay( 200/portTICK_RATE_MS );  
    7.   }  
    8. }

    9. /*UART Task*/
    10. static void vUARTTask(void *pvParameters)
    11. {
    12.         for( ; ;)
    13.         {
    14.                 printf("FreeRTOS For KEA128\n");
    15.                 printf("www.nxpic.org.cn by »¨Ïª´å³¤£¡\n");
    16.                 vTaskDelay( 500/portTICK_RATE_MS );  
    17.         }
    18. }
    复制代码

        2)创建任务(源代码贴上来就乱了!)

    1. /*Creat Task*/
    2.         xTaskCreate(         vLEDTask,                                                                                /* Function that implements the task. */
    3.                                               "LED",                                                                                         /* Text name of the task. */
    4.                                               configMINIMAL_STACK_SIZE,                /* Stack allocated to the task. */
    5.                                               NULL,                                                     /* The task parameter is not used. */
    6.                                               tskIDLE_PRIORITY+3,                     /* The priority to assign to the task. */
    7.                                               NULL );                                                    /* Don't receive a handle back, it is not needed. */
    8.         
    9.         xTaskCreate(         vUARTTask,                                                                                /* Function that implements the task. */
    10.                                               "UART",                                                                                         /* Text name of the task. */
    11.                                               configMINIMAL_STACK_SIZE,                /* Stack allocated to the task. */
    12.                                               NULL,                                                     /* The task parameter is not used. */
    13.                                               tskIDLE_PRIORITY+2,                     /* The priority to assign to the task. */
    14.                                               NULL );                                                    /* Don't receive a handle back, it is not needed. */
    15.   
    16.         /*Start Task*/
    17.   vTaskStartScheduler();  
    复制代码

    最后启动任务
    QQ截图20160604103606.png


    最后Build->Download
    QQ截图20160604103747.png

    至此移植结束,关于OS相关知识还得恶补~(感谢小恩GG的教程~)

    最后附上工程及rtos源码
    TRK-KEA128 -rtos.rar (1.2 MB, 下载次数: 508)
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2018-4-17 08:39
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    33

    主题

    788

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2796
    最后登录
    1970-1-1
    发表于 2016-6-4 13:18:33 | 显示全部楼层
    这个NB,来个系列吧
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-2-9 14:16
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    25

    主题

    1785

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2240
    最后登录
    2024-3-16
    发表于 2016-6-6 10:43:03 | 显示全部楼层
    不错,谢谢楼主分享
    nxpic.org.png
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    9

    帖子

    0

    新手上路

    Rank: 1

    积分
    39
    最后登录
    1970-1-1
    发表于 2016-9-26 10:50:40 | 显示全部楼层
    支持支持支持
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    9

    帖子

    0

    新手上路

    Rank: 1

    积分
    39
    最后登录
    1970-1-1
    发表于 2016-9-26 10:54:23 | 显示全部楼层
    KEIL5是吗?
    回复

    使用道具 举报

  • TA的每日心情

    2017-1-4 08:05
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    85

    主题

    1629

    帖子

    1

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    2569

    优秀版主

    最后登录
    2019-3-28
    发表于 2016-9-26 10:57:29 | 显示全部楼层
    windows下有没有像Linux一样生成补丁的工具呀,要的话直接发布补丁就行了patch一下多好
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2021-3-10 19:44
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    126

    主题

    525

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2018
    最后登录
    2023-12-25
    发表于 2016-9-27 09:55:49 | 显示全部楼层
    牛逼啊兄弟!
    很开心
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-1-21 10:35
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    1

    主题

    27

    帖子

    0

    注册会员

    Rank: 2

    积分
    111
    最后登录
    2019-1-21
    发表于 2016-12-6 11:23:18 | 显示全部楼层
    谢谢分享!
    哈哈哈
    回复

    使用道具 举报

    该用户从未签到

    19

    主题

    78

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    308
    最后登录
    2017-12-4
    发表于 2017-5-14 22:05:29 | 显示全部楼层
    按着你的方法没有移植成功,系统滴答节拍咋设置的?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5

    主题

    43

    帖子

    0

    注册会员

    Rank: 2

    积分
    192
    最后登录
    2017-10-24
    发表于 2017-8-30 09:48:26 | 显示全部楼层
    非常感谢楼主分享
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-3-28 18:37 , Processed in 0.143554 second(s), 28 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表