本文主要是介绍KEA128 移植/嵌入Free_RTOS,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
话不多说,直接上步骤:
1.准备一个KEA128的空工程,如LED闪烁工程
2.去除工程中的PendSV_Handler和SVC_Handler,以免报错重定义
3.将Free_RTOS相关文件复制入系统,这里我是从原子的工程里面复制来的
4.将RTOS系统文件加入工程,KEA128是CM0+内核的,所以port.c应该选择 portable\RVDS\ARM_CM0中的
5.修改FreeRTOSConfig.h中的各项宏定义:
1.configUSE_PORT_OPTIMISED_TASK_SELECTION 设置为0,CM0+内核不支持CLZ指令
2.configCPU_CLOCK_HZ 设置系统频率,我这里为40M
3.configTICK_RATE_HZ 设置时钟节拍,这里为1000
4.configMINIMAL_STACK_SIZE 设置空闲任务使用的堆栈大小,这里为128
5.configTOTAL_HEAP_SIZE 设置给系统使用的总内存大小,这里为8KB,即总内存的一半
6.configLIBRARY_LOWEST_INTERRUPT_PRIORITY 设置最低中断优先级,由于KEA128只有两位用于优先级配置,所以这里为3
7.configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 设置系统可管理的最高中断优先级,我这里设置为2,即优先级0、1 不被系统控制
8.configPRIO_BITS 设置NVIC使用几个位来配置中断优先级,这里上面说过了,为2
6.增加 SysTick_Handler 的处理
void SysTick_Handler(void)
{if(xTaskGetSchedulerState()!=taskSCHEDULER_NOT_STARTED)//ϵͳÒѾÔËÐÐ{xPortSysTickHandler();}
}
7.主函数中初始化任务前记得初始化SysTick,并把中断频率定为1000HZ
至此大功告成!需要源代码的可以在此下载:https://download.csdn.net/download/u011764302/12536057
这篇关于KEA128 移植/嵌入Free_RTOS的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!