STMCU小助手
发布时间:2022-4-10 17:17
(一)说明
(二)裸机工程创建 使用STM32CubeMX创建裸机工程: 这里我是用的芯片是STM32F103RBT6,时钟主频为72MHz,配置时钟树:
配置调试串口1:
配置两个LED灯:
由于LiteOS使用系统嘀嗒定时器当作心跳,HAL库也使用了这个定时器,所以我们将HAL库的定时器改为其他,这里我该为了定时器4:
配置中断,这里我选择了组4,也就是全部为抢占优先级:
取消掉以下两个中断服务函数的生成,因为ListOS已经实现了这两个函数:
最后输出工程即可! (三)移植LiteOS 下载解压LiteOS,文件目录如下:
文件目录说明: arch:这个文件夹与平台有关,我们这里的平台是ARM components:这是一些组件,例如fatfs文件系统、mqtt协议栈等 kernel:内核文件 osdepends:CMSIS的API接口,如果系统需要使用CMSIS接口,那么需要移植这里面的文件 targets:各个不同平台的示例工程 我们需要的文件有: LiteOS-develop\arch\arm\arm-m\cortex-m3\keil\los_dispatch_keil.S (注:因为我使用的是STM32F1系列是M3内核所以选择cortex-m3文件夹下的,如果是F4系列那么就是M4内核应该选择cortex-m4文件夹下的文件) LiteOS-develop\arch\arm\arm-m\src目录下全部源文件 LiteOS-develop\kernel\base\core目录下全部源文件 LiteOS-develop\kernel\base\ipc目录下全部源文件 LiteOS-develop\kernel\base\mem\bestfit_little目录下全部源文件 LiteOS-develop\kernel\base\mem\common目录下全部源文件 LiteOS-develop\kernel\base\mem\membox目录下全部源文件 LiteOS-develop\kernel\base\misc目录下全部源文件 LiteOS-develop\kernel\base\om目录下全部源文件 LiteOS\kernel\extended\tickless目录下全部源文件 LiteOS\kernel\los_init.c 拷贝示例工程下的OS_CONFIG目录下的头文件 (此目录是在示例工程LiteOS-develop\targets\STM32F103VET6_NB_GCC\OS_CONFIG中) 在Keil中添加源码,如下图所示:
添加头文件包含,如下图所示:
修改OS_CONFIG/target_config.h文件,找到BOARD_SRAM_SIZE_KB宏,此宏定义了SRAM(内存)的大小,STM32F103RB是20K,所以此处改为20。 修改宏LOSCFG_PLATFORM_HWI为NO。此宏控制着系统中断的管理方式,为NO表示系统中断不被系统管理,为YES表示系统接管中断。STM32的中断管理已经很好了不需要系统接管。 (四)系统运行测试 1、原始LiteOS-API测试 这里创建了三个任务: led1灯间隔1s反转电平 led2灯间隔300ms反转电平 print每隔2s串口打印任务
2、CMSIS-API测试 由于使用CMSIS接口,那么只需要包含头文件#include "cmsis_os.h"即可: 示例代码:
ends… |
【经验分享】STM32 HAL库移植FreeModbus详细步骤
【逢7发帖赢大礼】STM32开发之IC门禁卡UID读取方法!
实战经验 | Keil工程使用NEAI库的异常问题
经验分享 | FDCAN数据段波特率增加后发送失败的问题分析
STM32几种流行开发环境的优缺点
好用软件推荐-TouchGFX Designer
OpenSTLinux 6.1发布:M33-TD加持+安全升级,STM32MPU开发效率翻倍!
【经验分享】STM32CubeIDE汉化
手把手教你VSCode搭建STM32开发环境
RTOS在STM32中的应用
微信公众号
手机版