RTX作為keil的親兒子系統(tǒng),無論是移植的簡易的程度上,還是對m內(nèi)核的支持上都是絕對的無敵。各個組件也是非常齊全。
而這一次的RTX5移植之旅,將會短的超出想象。
打開工程,啟動RTE,勾選keil RTX5,點擊ok。
恭喜你,你已經(jīng)成功將RTX5移植到你的工程里面了。
是真的已經(jīng)移植完畢了,這就是RTE跟RTX5的魅力,極其方便的部署方式。
編個測試代碼體驗一下
#include "fsl_device_registers.h"
#include "fsl_debug_console.h"
#include "peripherals.h"
#include "pin_mux.h"
#include "clock_config.h"
#include "board.h"
#include "cmsis_os2.h"
__NO_RETURN void app1_Thread (void *argument)
{
(void)argument;
for (;;)
{
PRINTF("task1rn");
osDelay(1000);
}
}
__NO_RETURN void app2_Thread (void *argument)
{
(void)argument;
for (;;)
{
PRINTF("task2rn");
osDelay(2000);
}
}
__NO_RETURN void led_Thread (void *argument)
{
(void)argument;
for (;;)
{
GPIO_PinWrite(BOARD_INITPINS_LED_GPIO, BOARD_INITPINS_LED_GPIO_PIN, 1U);
osDelay(1000);
GPIO_PinWrite(BOARD_INITPINS_LED_GPIO, BOARD_INITPINS_LED_GPIO_PIN, 0U);
osDelay(1000);
}
}
int main(void)
{
BOARD_ConfigMPU();
BOARD_InitBootPins();
BOARD_InitBootClocks();
BOARD_InitDebugConsole();
/* Just enable the trace clock, leave coresight initialization to IDE debugger */
SystemCoreClockUpdate();
CLOCK_EnableClock(kCLOCK_Trace);
osKernelInitialize();
osThreadNew(app1_Thread, NULL, NULL);
osThreadNew(app2_Thread, NULL, NULL);
osThreadNew(led_Thread, NULL, NULL);
if (osKernelGetState() == osKernelReady)
{
osKernelStart();
}
for(;;){}
}
運行正常,板子上的小燈也開始閃爍
整體工程結(jié)構(gòu)如下,我們只需要關(guān)注RTX_Config.c與RTX_Config.h兩個文件即可
RTX_Config.h文件使用keil配置向?qū)Ь帉?,簡直把飯喂到了嘴?/p>
有人可能覺得,沒有源碼,心里不爽,RTX5本身是開源的,喜歡閱讀源碼的人,只需在部署的時候選擇Source就能將原始代碼加入工程,用庫的話編譯起來更快。
代碼工程
4.az158_dapLink.zip (88.4 KB, 點擊下方附件下載)
當前環(huán)境