STM32CubeMX | STM32使用HAL库手动移植RTThread-Nano实时操作系统
1、基础工程建立
首先通过STM32CubeMX建立基础工程,首先开启RCC并将时钟配置到72M主频:
配置串口1用于调试打印:
在配置个LED灯的IO:
将HAL用到的系统滴答定时器切换成定时器7,因为SysTick定时器我们要给rtthread使用:
中断分组设置为4:
取消掉这三个函数的生成,因为rtthread已经把这三个函数生成好了: 最后输出工程:
2、移植rtthread-nano
从rtthread官网下载解压rtthread-nano源码并解压,我们移植需要以下文件:
将上图文件拷贝到工程目录,如下图所示: 需要将rtthread添加进工程的文件有:
- libcpu\arm\cortex-m3\cpuport.c
- libcpu\arm\cortex-m3\context_rvds.S
- src目录下的所有文件
- board.c
如下图所示:
然后添加头文件包含:
尝试初次编译,直接编译通过:
接下来还需要修改一下源码,适配HAL库。
首先检查一下rtconfig.h 配置文件的各项,在keil中打开可以切换为图像化配置,基本默认配置即可: 首先在main.c文件中写一个外设初始化的函数,将main函数中的外设初始化函数放到该函数内,并将原本的main函数屏蔽掉或改个名,在新写一个main函数:
打开board.c 文件,找到rt_hw_board_init 函数,改为以下:
重定向rt_kprintf函数到串口1:
然后编译运行就可以了。
ends…
|