RTX作为keil的亲儿子系统,无论是移植的简易的程度上,还是对m内核的支持上都是绝对的无敌。各个组件也是非常齐全。
而这一次的RTX5移植之旅,将会短的超出想象。
打开工程,启动RTE,勾选keil RTX5,点击ok。
恭喜你,你已经成功将RTX5移植到你的工程里面了。
是真的已经移植完毕了,这就是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(;;){}
}
运行正常,板子上的小灯也开始闪烁
整体工程结构如下,我们只需要关注RTX_Config.c与RTX_Config.h两个文件即可
RTX_Config.h文件使用keil配置向导编写,简直把饭喂到了嘴边
有人可能觉得,没有源码,心里不爽,RTX5本身是开源的,喜欢阅读源码的人,只需在部署的时候选择Source就能将原始代码加入工程,用库的话编译起来更快。
代码工程
4.az158_dapLink.zip (88.4 KB, 点击下方附件下载)
当前环境