基于ARM Cortex-M0的FreeRTOS移植步骤和任务创建

本文详细介绍了如何将FreeRTOS操作系统移植到ARM Cortex-M0平台上,包括加载内核源码、修改配置文件FreeRTOSConfig.h、portmacro.h以及startup文件,最后在Keil MDK编译环境中完成移植。此外,还阐述了如何创建并定义3个不同的任务,为初学者提供了一步一步的实践指导。
摘要由CSDN通过智能技术生成

前言:

FreeRTOS操作系统是完全免费的操作系统,具有源码公开、可移植、可裁减、调度策略灵活的特点,可以方便地移植到各种单片机上运行。

FreeRTOS功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等。

本期首先将FreeRTOS源码移植到ARM Cortex-M0,然后增加任务创建。

移植平台:ARM Cortex-M0

移植对象:FreeRTOS

编译环境:Keil MDK

移植准备: 下载FreeRTOS源码(官方网站下载:http://www.freertos.org)

一、基于ARM Cortex-M0的FreeRTOS移植步骤

步骤1:将FreeRTOS加载到M0软件工程中

  • 加载内核源文件,源文件路径:

    FreeRTOS\Source

  • 加载与处理器相关的硬件接口层源码,源文件路径:

    FreeRTOS\Source\portable\GCC\ARM_CM0

  • 加载各种类型的堆栈分配方案(只需要选1种)源码,源文件路径:

    FreeRTOS\Source\portable\MemMang

  • 加载内核源文件的头文件,源文件路径:

    FreeRTOS\Source\include

软件工程环境下,加载以上源码的截图如下:

图片

步骤2:修改FreeRTOSConfig.h

#if 0                                    //Designed by FDG#ifdef __ICCARM__  #include <stdint.h>  extern uint32_t SystemCoreClock;#endif#else  #include "STM32xxxxx.h"                  // 调用你的芯片底层定义头文件  #include <stdint.h>  extern uLONG SystemFrequency_SysClk;     // 声明系统时钟#endif
#define configUSE_PREEMPTION      1#define configUSE_IDLE_HOOK        0#define configUSE_TICK_HOOK        0                  //Designed by FDG#define configCPU_CLOCK_HZ        ( SystemFrequency_SysClk )      //Designed by FDG#define configTICK_RATE_HZ        ( ( TickType_t ) 1000 )#define configMAX_PRIORITIES      ( 4 )                //Designed by FDG#define configMINIMAL_STACK_SIZE    ( ( unsigned short ) 128)    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值