移植FreeRTOS
大家好,今天我给大家带来了移植FreeRTOS到STM32G070开发板的实验。
说起移植,其实这里也不会过多说明原理性的东西,如果有需要请自行查看。我觉得弄明白了更好。如果没有弄明白倒也不影响下面继续的DIY实验。其实,会应用RTOS也很厉害了。
在移植的过程主要还是Copy官方的示例,将对应的文件引入工程即可。
我在这里使用了FreeRTOS的原生代码,尚未使用包裹在CMSIS-RTOS API的RTOS框架。
我从STCubeMX中拷贝port.c与portmacro.h文件,Memmang文件夹中的heap4.c文件。
#define LED_TASK_PRIORITY (tskIDLE_PRIORITY + 3)
static void ledTask(void *pvParameters);
int main(void){
bsp_init();
xTaskCreate(ledTask, "blank heartbeat", configMINIMAL_STACK_SIZE, (void *)NULL, LED_TASK_PRIORITY, NULL);
vTaskStartScheduler();
while (1) {
;
}
}
static void ledTask(void *pvParameters){
TickType_t xLastLedTime;
xLastLedTime = xTaskGetTickCount();
for (;;) {
vTaskDelayUntil(&xLastLedTime, 100);
bsp_led_blink();
}
}测试方法,我使用了新建一个task,该task仅每隔100ms切换一下LED灯的状态。
使用ST-Link v2将程序下载到开发板上,运行!可以看到LED开始快速闪烁了。
我要赚赏金
