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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章