一.准备工具/软件
- stm32mp157a-dk1开发板
- OLED IIC接口,4线(3V3,GND,SCL,SDA)
- STM32CubeMP1源码,github下载地址
https://github.com/STMicroelectronics/STM32CubeMP1
二.硬件连接
stm32mp157a-dk1开发板预留了CN2 2x20 排针,信号定义如下图,这里取PIN1,PIN3,PIN5,PIN39 与OLED模块连接。

三. STM32CubeMP1源码下载后,目录如下。这里使用GPIO源码工程为基础进行修改支持OLED, 主要是考虑方便,省去重新创建工程的时间。

四.工程代码
工程代码有移植了keil版本的和cube IDE版本两者。由于两者编译器类型不同。keil版本的代码通过仿真器直接下载代码到M4 核,利用了工程模式。工程模式设置B2:B1:B0状态为100;
而在cubeIDE中是编译linux系统中的可执行文件。A7核运行linux后,启动M4执行该文件。属于正常启动模式。

4.1 keil工程编译,由于使用Keil编译的二进制文件是axf格式的,设置STM32MP157A-DK1 为工程模式,下载仿真。
MDK-ARM调试stm32mp157具体请参考st官方文档,
这里提供了下载地址https://download.youkuaiyun.com/download/amd1217/12634117

4.2 使用STM32CubeIDE 1.3.0编译工程。STM32CubeIDE基于GCC编译器,可以直接生成elf格式的文件。在linux运行后,通过A7调用M4核运行elf文件。

五. 实验结果
linux下启动M4核,命令如下

OLED点亮。

359





