查看: 1696|回复: 1

[教程] 野火MINIRT1052_FreeRTOS移植

[复制链接]
  • TA的每日心情
    奋斗
    2021-7-30 15:17
  • 签到天数: 576 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2019-3-12 10:41:37 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 df_flying 于 2019-3-12 10:41 编辑

    三、FreeRTOS移植:
        官方的BSP包里已经包含了FreeRTOS的例程,这里简单的将其移植到LEDdemo的程序里,方便后期独立使用。
            首先将BSP安装包的rtos里的freertos文件夹复制到LEDdemo程序中,这里先添加了Middleware文件夹用于放第三方固件以及驱动中间件,具体放哪,看个人喜好。其次将在工程里添加相应的.c .h文件,并且添加相应的路径,这里需要注意的是keil应选择RVDS文件夹里的相应poart文件,官方同时将systick一同给了相应的文件fsl_tickss_systick.c,一同加入工程。加入好的工程及路径如下:

    3-捕获2.PNG
        这里还缺少一个FreeRTOSconfig文件,直接复制
    SDK_2.3.0_EVK-MIMXRT1050\boards\evkmimxrt1050\rtos_examples\freertos_hello里面的FreeRTOSConfig.h作为基础,修改即可,最后还差个宏定义FSL_RTOS_FREE_RTOS,放到OptionsC/C++Define里。简单修改下这个宏定义,将任务调度频率提高到1K
    #define configTICK_RATE_HZ                      ((TickType_t)1000)
             编译发现如下ERR:“This portcan only be used when the project options are configured to enable hardwarefloating point support”这里需要更改下对硬件浮点的支持。
           3-捕获1.PNG.png
    这里使用了个简单的任务,代码如下:
    static  void  led_task(void *pvParameters)
    {
              (void) pvParameters;
              TickType_t xTime = xTaskGetTickCount();
        for (;;)
        {
                                RGB_GREEN_LED_TOGGLE;

                                vTaskDelayUntil(&xTime,portTICK_PERIOD_MS * 1000);
                                PRINTF("LED!systemTicks is %d\r\n",xTaskGetTickCount());
        }

    }
        执行后发现有点奇怪,时钟跟实际的时间有区别。
           3-捕获3.PNG
    分析是时钟基数不对导致的问题,分析了下时钟的初始化函数,发现野火LEDdemo 程序中对SystemCoreClock 全局变量直接在BOARD_BootClockRUN()函数中使用了下面的宏定义:
    SystemCoreClock =BOARD_BOOTCLOCKRUN_CORE_CLOCK;

    #define BOARD_BOOTCLOCKRUN_CORE_CLOCK             600000000U  /*!< Core clock frequency: 600000000Hz */
        但是系统实际配置的是528MHz,所以这里需要改成528000000U,官方代码调用了SystemCoreClockUpdate()函数重新读取了实际配置值,这里也可以使用读取值更新。

    SystemCoreClock = (freq / (((CCM->CBCDR& CCM_CBCDR_AHB_PODF_MASK) >> CCM_CBCDR_AHB_PODF_SHIFT) + 1U));
        修正后如测试下:
             3-捕获4.PNG
    测试代码见附件。

    RT1052_FreeRTOS.zip

    1.86 MB, 下载次数: 11

    评分

    参与人数 1与非币 +60 收起 理由
    satoll + 60

    查看全部评分

    回复

    使用道具 举报

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

    本版积分规则

    关闭

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



    手机版|小黑屋|与非网

    GMT+8, 2024-4-16 21:37 , Processed in 0.139638 second(s), 22 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.