STM32F746开发板移植指南
开发板介绍
NUCLEO-F746ZG是基于Arm® Cortex®-M7架构的开发板,主频216M,FLASH 1M,RAM320K,且内置ST-LINK调试器/编程器,具有高性能且方便使用的特点。
移植介绍
最新版Liteos和5.0版本的差异点:
- 串口和定时器硬件实现当前在对应的开发板目录下,外部通过统一的回调函数调用。
- 当前target目录下的Kconfig文件对厂家进行了分类,需要在对应厂家的Kconfig中配置对应的参数。
用户需要做以下准备:
- 移植的大概步骤是生成裸机代码、使用裸机代码和将裸机代码移入LiteOS。
- 硬件环境:ST STM32F746-Nucleo开发板。
- 软件环境:LiteOS Studio、STM32CubeMX和JLink烧录工具。
移植过程
生成裸机代码
- 使用STM32CubeMX软件选择STM32F746ZG芯片
- 配置时钟为216Mhz
- 配置串口(串口3)和LED灯
- 配置定时器
- 配置烧录调试方式为SWD接口
- 生成裸机代码
生成代码格式如下:
目录/文件 |
说明 |
Build |
该目录用于存放编译生成的文件(编译成功后生成) |
Core |
用户代码和开发板的基本配置文件 |
Drivers |
STM32 官方HAL 库 |
Makefile |
裸机工程的Makefile |
startup_stm32f746xx.s |
芯片启动文件,主要包含堆栈定义等 |
STM32F746ZGTx_FLASH.ld |
裸机工程的链接脚本文件 |
注:详细操作请参考《移植指南》,用户可以按照《移植指南》事先测试一下裸机代码运行。
开始移植
步骤如下:
- 增加新移植开发板的目录
- 适配新开发板的外设驱动和HAL库配置文件
- 配置系统时钟
- 适配串口初始化文件
- 适配定时器初始化文件
- 修改链接脚本
- 适配编译配置
增加新移植开发板的目录
参考target/ STM32F407_ATK_Explorer工程代码,新增STM32F746_Nucleo板载文件。
新增开发板的目录结构如下:
目录/文件 |
说明 |
Inc |
芯片外设配置的头文件 |
Include |
LiteOS系统相关配置头文件 |
os_adapt |
LiteOS适配的接口文件 |
Src |
芯片外设配置的源文件 |
liteos.ld |
当前开发板工程的链接脚本文件 |
los_startup_gcc.S |
芯片启动文件 |
Makefile |
当前开发板工程的Makefile |
适配新开发板的外设驱动和HAL库配置文件
• 将芯片外设驱动文件替换为对应芯片的文件。(system_stm32f7xx.c和stm32f746xx.h)
• 替换HAL库配置文件。(stm32f7xx_hal_conf.h)
配置系统时钟
在targets\STM32F746_Nucleo\Src\sys_init.c中参考裸机代码修改系统时钟配置函数SystemClock_Config()。
适配串口初始化文件
- 拷贝STM32F407_ATK_Explorer中的usart.c和usart.h到STM32F746_Nucleo/Src中。
- 参考裸机的usart.c替换MX_USART3_UART_Init、HAL_UART_MspInit和HAL_UART_MspDeInit函数。
- 修改usart.c中回调函数接口实现,修改为串口3:
UsartInit中修改接口为MX_USART3_UART_Init
UsartWrite,UsartRead,UsartHwi中串口改为huart3并在include\asm\interrupt_config.h
中修改NUM_HAL_INTERRUPT_UART定义中串口中断号
适配定时器文件
- 拷贝STM32F407_ATK_Explorer中的tim.c和tim.h到STM32F746_Nucleo/Src中。
- 参考裸机的tim.c替换MX_TIM3_Init、HAL_TIM_Base_MspInit、HAL_TIM_Base_MspDeInit、TIM3_IRQHandler 函数。
- 修改tim.c中回调函数接口实现,修改为定时器3:
TimInit中修改接口为MX_TIM3_Init
TimerHwiCreate和GetTimerCycles中定时器改为htim3并
在include\asm\interrupt_config.h中修改TIM_IRQ定义中定时器中断号
修改链接脚本
参考裸机工程链接脚本STM32F746ZGTx_FLASH.ld修改stack、flash、ram的值,并计算出_estack的值填入liteoe.ld文件中。
适配编译配置
- 修改开发板Makefile文件,将407开发板相关文件替换为746相关文件。
- 添加新开发板到系统配置中,参考407开发板在targets\bsp.mk、targets\ Kconfig.stm32、targets\bsp\Makefile中添加746相关内容,在tools\build\config中添加STM32F746_Nucleo.config配置文件。
至此已完成移植,烧录使用请参考《移植指南》。
移植指南:https://gitee.com/LiteOS/LiteOS/blob/master/doc/LiteOS_Porting_Guide.md 。
结语
未来我们还会持续新增更多组件、开发板、架构、特性等。
感谢您的阅读,有任何问题、建议,都可以留言给我们,让我们一起进步:https://gitee.com/LiteOS/LiteOS/issues
为了更容易找到“LiteOS”代码仓,建议访问https://gitee.com/LiteOS/LiteOS,关注“ Watch”、点赞“Star”、并“Fork”到自己账号下,如下图。
- end –
- 点赞
- 收藏
- 关注作者
评论(0)