内容来自韦东山老师《嵌入式Linux应用开发完全手册》
欢迎关注我的微信公众号【万能的小江江】
1.开发板硬件功能测试
2.构建系统
3.更新部分系统
4.STM32MP157配套工具使用
ST工具介绍
STM32CubeMX
STM32CubeMX是ST意法半导体推出的STM32系列芯片图形可视化配置工具,可以为Cortex-M系列MCU生成初始化代码工程模板,以及为Cortex-A系列MPU生成用于Linux的部分设备树
对于STM32MP157
可以为整个系统配置GPIO和时钟,并以交互的方式把外围设备分配给Cortex-M4或Cortex-A7,并提供一些实用功能
STM32CubeMX特性
直观的STM32系列MCU和MPU的选型
易于使用的丰富图形化界面
-自动处理引脚冲突
-动态验证Cortex-M内核外围设备和中间件功能的参数约束
-动态验证配置的时钟树
-查看上电顺序、预测功耗
生成适合IAR、Keil和GCC编译器的Cortex-M4初始化C代码工程项目
生成适合Linux设备的Cortex-A部分设备树
支持Windows、Linux、Macos上独立运行,或者作为Eclipse(跨平台开源集成开发环境IDE)插件运行
STM32CubeIDE
常见的支持STM32开发的集成开发环境(IDE)有:Keil MDK-ARM、IAR EWAR。但是它们都是商业软件,免费的有很多限制
于是出现了免费的Eclipse+GNU GCC来搭建STM32开发环境,但搭建过程繁琐,版本差异大导致教程不统一,对新手很不友好
STM32CubeIDE是ST公司基于Eclipse/CDT框架和GNU GCC工具链制作的免费IDE,并且集成了STM32CubeMX。可以实现STM32系列芯片的外围设备配置、代码生成、代码编辑、代码编译、在线调试,支持数百个Eclipse现有插件
STM32CubeIDE特性
集成STM32CubeMX,可提供以下服务:
-STM32 MCU和MPU的选择(MCU和MPU的区别)
-引脚分配、时钟、外围设备、中间件配置
-项目创建和初始化代码的生成
基于Eclipse/CDT框架,并支持Eclipse插件,使用ARM GNU C/C++工具链和GDB调试器
其他高级调试功能:
-CPU核心、外设寄存器和内存视图
-实时变量观看视图
-系统分析和实施跟踪(SWV)
-CPU故障分析工具
支持ST-Link(STMicroelectronics)和J-Link(SEGGER)调试
支持从Atollic TrueSTUDIO和Systemm Workbench for STM32(SW4STM32)导入项目
多操作系统支持:Windows、Linux、MacOS(仅支持64位版本)
STM32Cube生态
STM32Cube生态系统就是面向STM32系列芯片的完整软件解决方案,软件解决方案包含软件工具套件和嵌入式软件
STM32CubeMX完成芯片配置和工程代码初始化;STM32CubeIDE完成代码编辑、功能实现;STM32CubeProgrammer完成代码烧写;STM32CubeMonitor完成监控、功能验证
STM32CubeMX配置设备树
软件安装
官网下载
https://www.st.com/zh/development-tools/stm32cubeide.html#get-software
网盘下载
路径:开发板/MX专题/ en.ststm32cubeide_1.4.0_7511_20200720_0928_x86_64_exe
注:安装文件不能放在中文路径,安装路径也不要包含中文
创建模板
- 选择工作空间
File->New->STM32 Project
- 搜索
STM32MP157D
,选TFBGA361
在Docs&Resources
标签栏,可以直接下到STM32MP157D的Datasheet、Reference manual、Programming manual等资料
Datasheet方便查找,Reference manual内容全,Programing manual包含一些编程用的指令
生成设备树信息
确定引脚标号
初始化HAL工程后,用STM32CubeMX来设置UART8引脚分配给A7处理器,并使用生成的设备树配置信息
如图,我们可以知道连接到CPU的引脚为PE1和PE0
生成设备信息
选中需要配置的UART8接口,点击Mode下面的引脚分配,A7NS表示分配给A7非安全模式,Cortex-M4表示分配给M4,选择好引脚分配的Mode后,选择UART模式,选择模式为Asynchronous异步模式
分配好引脚给A7NS用后,需要让其自动生成设备树信息,给Linux Kernel设备树使用
生成的代码在工程目录下,里面有kernel设备树配置,tfa设备树和uboot设备树配置,进入kernel目录可以看到dts文件
打开dts文件,里面包含了UART8引脚复用的定义信息和启用UART8设备节点信息
最后可以看到生成了UART8的引脚复用设备树参数,我们把它添加到内核源码的~/100ask_stm32mp157_pro-sdk/Linux-5.4/arch/arm/boot/dts
目录内的100ask-stm32mp157c-pro-lcd.dts
文件中,之后编译设备树,把新生成的100ask-stm32mp157c-pro-lcd.dtb
文件拷贝到开发板/boot
目录中,重启开发板就可以了