STM32固体库创建demo
下载相关文件
keil5下载地址:keil5
下载相关的pack包:Keil.STM32F1xx_DFP.2.1.0.pack
移植所需的freertos源码:FreeRTOSv9.0.0.exe
移植所需的STM32固件库:STM32F10x_StdPeriph_Lib_V3.5.0.rar
建立固体库项目
建立如下图所示的项目组:
BSP目录放相关的driver.
FreeRTOS目录将放置我们所需移植的东西
Libraries目录将防止我们固体库所需的代码如下:
USER放置main函数,并放置一些用户自己定制的一些文件
如何真的进行相关的操作可以参考STM32F1开发指南-库函数版本_V3.1 .pdf的第三章
差不多准备工作完成了,下面重点就是如何移植FreeRTOSv9.0.0
移植FreeRTOSv9.0.0到STM32F103中
1.1打开解压后点源码
1.2双击打开“FreeRTOS”文件夹,看到如下文件
图中圈圈的就是源码了,整个文件夹拷贝到新建工程的“FreeRTOS”文件夹中
1.3在源码文件夹中**FreeRTOSDemoCORTEX_STM32F103_Keil这个路径下,找到文件FreeRTOSConfig.h**,拷贝到工程文件夹FreeRTOS中
1.4打开keil,添加文件
添加文件如上如所示
“port.c”文件路径…FreeRTOSSourceportableRVDSARM_CM3
“heap_2.c”文件路径…FreeRTOSSourceportableMemMang
“list.c”、“queue.c”、“tasks.c”文件路径…FreeRTOSSource
1.5添加头文件
注意填入:STM32F10X_HD,USE_STDPERIPH_DRIVER
1.6修改main函数
#include "FreeRTOS.h"
#include "task.h"
#include "queue.h"
#include "misc.h"
#include "led.h"
void LED0_Task(void * pvParameters);
void LED1_Task(void * pvParameters);
int main(void)
{
LED_Init();
xTaskCreate(LED0_Task, (const char *)"LED0", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY + 3, NULL);
xTaskCreate(LED1_Task, (const char *)"LED1", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY + 4, NULL);
vTaskStartScheduler();
}
void LED0_Task(void * pvParameters)
{
while (1)
{
LED0 = !LED0;
vTaskDelay(800 / portTICK_RATE_MS);
}
}
void LED1_Task(void * pvParameters)
{
while (1)
{
LED1 = !LED1;
vTaskDelay(500 / portTICK_RATE_MS);
}
}
1.7修改启动文件
遇到问题
在移植过程中难免有错误。需要我们去解决
问题一 编译
…OBJFreeRTOS.axf: Error: L6218E: Undefined symbol vApplicationTickHook (referred from tasks.o).
可以选择在BSP目录下添加相关的程序代码。
void vApplicationTickHook(void)
{
}
关于项目
本项目在github上已经有了,可以从我的github上进行下载。
上一篇:FreeRTOS移植,基于STM32 HAL库
下一篇:用STM32Cube+FreeRTOS+Keil5对STM32F0编程之通过USART发送数据
推荐阅读最新更新时间:2024-11-09 23:25
设计资源 培训 开发板 精华推荐
- LT1076HVCT-5 5V 降压型开关稳压器的典型应用电路
- EVAL-AD5440EBZ,用于 AD5428、10 位并行输入、双通道、电流输出 DAC 的评估板
- 双路双向有刷电调
- #第五届立创电子设计大赛#基于蓝牙的二自由度炮塔
- AM1S-2415SH30Z 1W DC-DC转换器典型应用
- ADR421 超精密、低噪声、2.5V XFET 输出电压基准的典型应用
- 双向可控硅和交流开关绝缘控制评估板
- LT1370 演示板、6A 开关 2.7V 至 12V 输入、5V 或 12V 输出
- 使用 Diodes Incorporated 的 AP1512 的参考设计
- LT6656ACDC-2.5、2.5V 精密电流和升压电压基准的典型应用