STM32CubeIDE开发M4—点亮第一个LED灯
一、搭建开发环境并新建工程
见前一篇:STM32CubeIDE的安装与使用
二、编写代码,使LED闪烁
在main.c
的while
循环中加入如下LED闪烁代码
HAL_GPIO_WritePin(GPIOG, GPIO_PIN_8, GPIO_PIN_SET); //设置 GPIOG 8 引脚输出高电平
HAL_Delay(500); //延时 500 毫秒
HAL_GPIO_WritePin(GPIOG, GPIO_PIN_8, GPIO_PIN_RESET); //设置 GPIOG 8 引脚输出低电平
HAL_Delay(500); //延时 500 毫秒
然后点击保存
三、编译工程
选中工程,右击,选择【Build Project】,开始编译工程
编译成功后可以在控制台看到编译成功的信息
同时也可以看到其生成的目标二进制文件在【Debug】目录中
四、上传二进制文件到开发板
启动开发板,进入Linux系统,联网,并和电脑处于同一网段,然后进入/lib/firmware
目录,然后将之前生成的二级制文件放在该目录下,可有多种方式,例如:
方式一:使用【MobaXterm】可以直接拖拽进入,或者点击上传按钮上传
方式二:使用scp
命令,在二级制文件目录下打开命令行窗口,
scp STM32MP157D_Prj_CM4.elf root@192.168.31.101:/lib/firmware/
上传完成后即可在/lib/firmware
目录下看到该二进制文件
五、加载运行
使用如下命令启动运行M4的固件
echo STM32MP157D_Prj_CM4.elf > /sys/class/remoteproc/remoteproc0/firmware
echo start > /sys/class/remoteproc/remoteproc0/state
其中第一条命令为加载固件,第二条命令为启动M4,使用如下命令停止M4运行
echo stop > /sys/class/remoteproc/remoteproc0/state
启动M4后可以看到黄色LED灯闪烁,停止M4后黄色LED停止闪烁。
六、使用ST-Link调试
M4 的调试方式有两种:工程模式( Engineering Mode)和量产模式( Production Mode)。
- 工程模式:类似 STM32 单片机烧写到 RAM, M4 启动,无需 A7 加载。 因为烧写到 RAM 里, 掉电程序消失,一般用于调试。
- 量产模式:A7 启动后,通过 Remoteproc 服务启动 M4, 固件先被存放在 Flash,掉电不会消失,但需要 A7 先启动,引导 M4 启动,用于实际部署。
将STlink连接到开发板,然后将拨码开关从EMMC模式(010)设置为调试模式(001),然后开启电源开关
接下来在STM32CubeIDE菜单栏点击【Run】->【Debug Configurations】
首先点击【STM32 Cortex-M C/C++ Application】,然后新建调试“ New launch configuration” ,然后就会默认选择之前生成的二进制文件,
然后切到【调试器】标签页,在【Load Mode】单选框里选择【thru JTAG/SWD link(Engineering mode)】,
也就是工程模式, 调试探头选择默认的【ST-LINK(OpenOCD)】, 最后点击【Debug】开始调试, 如图所示。