一、STM32MP157 启动流程 两张图描述了STM32MP157启动的全过程,分为五个步骤: ROM Code:初始化基本时钟,从选定的启动介质中加载FSBL,鉴权、启动FSBL; FSBL: 二、ROM Code ROM Code是固件在STM32MP157内部的一段程序,是在复位后执行的第一段程序,复位后STM32MP157内部的两个A核执行相同的程序,由于ROM Code中进行了判断, Wake up from low power modes Exported secure services Secure Secrets Provisioning ROM Code支持的启动流程图如下: STM32MP157 三、冷启动(cold boot) ROM Code中确保STM32MP157安全启动的第一阶段是在 trusted boot chain中实现,也就是上图中的 cold boot 部分,将它提取出来如下图
注意:既然是在开发板和电脑之间测试网络,那双方需要有网络连接。两者之间需要有一个路由器,开发板通过网线与路由器连接。而电脑与路由器之间,可以使用网线连接,也可以使用 WIFI 连接。
请参考: 《第 1 篇 新学习路线、视频介绍、资料下载》 《第二章 资源下载方法》
前面 3 条 amixer 命令是打开板载咪头的开关,第 4 条命令是设置耳机的播放声音。 最后一条命令是录音命令,参数讲解如下:
注意:以下操作都是在开发板上操作,我们的教程涉及多款开发板,不同的 linux 版本,命令用法可能 稍有差异。
注意:LINE 接口只支持音频播放输出,需要专门支持 LINE 接口的设备才可以进行连接播放音频。
此节演示使用三段式耳机在 100ask_stm32mp157_pro 开发板上录制声音、播放音频。 注意: 需要准备一个带麦克风的三段式耳机,如下图所示:
注 意 : 此 章 节 测 试 需 要 外 接 LCD 屏 幕 才 可 以 进 行 测 试 验 证 , LCD 模 块 介 绍 请 参 考 页 面 http://download.100ask.org/modules/Lcd/100ask_imx6ull_7-inch_LCD/
本篇在上篇的基础上,继续搭建Qt的交叉编译环境,实现Qt程序在Ubuntu中编译,在STM32MP157板子中运行。 1 编译安装SDK 在上篇编译系统镜像的基础上,继续编译和安装SDK。 最终编译成功的结果如下: 对应的打印如下: xxpcb@xxpcb-ubuntu20:~/myTest/STM32MP157/STM32MPU-Ecosystem-v5.0.0/Distribution-Package bitbake st-example-image-qtwayland -c populate_sdk NOTE: Started PRServer with DBfile: /home/xxpcb/myTest/STM32MP157 -ostl-linux-gnueabi xxpcb@xxpcb-ubuntu20:~/myTest/STM32MP157/STM32MPU-Ecosystem-v5.0.0/Distribution-Package ~/myTest/STM32MP157/STM32MPU-Ecosystem-v5.0.0/Developer-Package/SDK/environment-setup-cortexa7t2hf-neon-vfpv4
具体芯片的I2C_Adapter驱动分析 参考资料: Linux内核真正的I2C控制器驱动程序 IMX6ULL: Linux-4.9.88\drivers\i2c\busses\i2c-imx.c STM32MP157 \drivers\i2c\busses\i2c-stm32f7.c 芯片手册 IMXX6ULL:IMX6ULLRM.pdf Chapter 31: I2C Controller (I2C) STM32MP157 I2C控制器内部结构 1.1 通用的简化结构 1.2 IMX6ULL的I2C控制器内部结构 1.3 STM32MP157的I2C控制器内部结构 2. IMX6ULL:函数i2c_imx_xfer分析: STM32MP157:函数stm32f7_i2c_xfer分析 这函数完全有驱动程序来驱动:启动传输后,就等待;在中断服务程序里传输下一个数据
确定中断号n 1.1 IMX6ULL 1.2 STM32MP157 2. 怎么触发中断 3. 上机实验 3.1 设置工具链 1. STM32MP157 2. STM32MP157 2. IMX6ULL 3.3 编译、安装驱动程序 参考资料: 1. 确定中断号n 查看芯片手册,选择一个保留的、未使用的GIC SPI中断即可。 1.2 STM32MP157 看芯片手册第21.2节: 看上图,选择210号中断,它是SPI里的210号中断,GIC里的编号是(32+210)=242。 2. STM32MP157 export ARCH=arm export CROSS_COMPILE=arm-buildroot-linux-gnueabihf- export PATH=$PATH:/home STM32MP157 2. IMX6ULL 3.3 编译、安装驱动程序
一、STM32MP157 1. 系列介绍 STM32MP157 微处理器基于灵活的双 Arm® Cortex®-A7 内核(工作频率 800 MHz)和 Cortex®-M4 内核(工作频率 209 MHz)架构,并配一个专用的 3D STM32MP157 3D OpenGL ES 2.0 图形引擎专为在图形用户界面(GUI)、菜单显示或动画等应用中加速 3D 图形而设计,可以配合面向行业标准 API 优化的软件堆栈,支持 Android 除了一个 LCD-TFT 显示控制器,STM32MP157 系列还内嵌多达 37 个通信外设,包括 10/100M 或千兆以太网、3 个 USB 2.0 主机/OTG、29 个定时器和高级模拟器件。 STM32MP157 概览 3. 文档 官方介绍[1] 参考手册[2] 规格书[3] 4.
cd ~/myTest/STM32MP157/STM32MPU-Ecosystem-v5.0.0/Distribution-Package #repo init python3 ~/bin/repo /STM32MPU-Ecosystem-v5.0.0/Distribution-Package/layers/openembedded-core/scripts:/home/xxpcb/myTest/STM32MP157 cat clone --bare --mirror https://github.com/STMicroelectronics/STM32CubeMP1.git /home/xxpcb/myTest/STM32MP157 最终构建成功,没有报错: xxpcb@xxpcb-ubuntu20:~/myTest/STM32MP157/STM32MPU-Ecosystem-v5.0.0/Distribution-Package/ 另外SDK的构建过程也可能会报错,例如: xxpcb@xxpcb-ubuntu20:~/myTest/STM32MP157/STM32MPU-Ecosystem-v5.0.0/Distribution-Package
MP157核心板基于ST经典的MPU STM32MP157(兼容153/151系列)研发设计,该核心板性能稳定、体积小巧,适用于多种工业应用场景。 开源文件 图 2 开源文件 资源丰富的通用型ARM处理器 STM32MP157基于双Arm® Cortex®-A7内核(工作频率800 MHz)和Cortex®-M4内核(工作频率209 MHz)架构, STM32MP157架构图 图 4 STM32MP157架构图 处理器集成Cortex-M4内核,主频高达209MHz,M4与Cortex-A7经总线通信,可满足实时任务处理,亦可满足低功耗场景应用(控制
确定中断号n 1.1 IMX6ULL 1.2 STM32MP157 2. 怎么触发中断 3. 上机实验 3.1 设置工具链 1. STM32MP157 2. STM32MP157 2. IMX6ULL 3.3 编译、安装驱动程序 参考资料: 1. 确定中断号n 查看芯片手册,选择一个保留的、未使用的GIC SPI中断即可。 1.2 STM32MP157 看芯片手册第21.2节: 看上图,选择210号中断,它是SPI里的210号中断,GIC里的编号是(32+210)=242。 2. STM32MP157 export ARCH=arm export CROSS_COMPILE=arm-buildroot-linux-gnueabihf- export PATH=$PATH:/home STM32MP157 2. IMX6ULL 3.3 编译、安装驱动程序
注意:需要准备一个 USB 设备,比如 U 盘、USB 蓝牙模块、usb 网卡或者 usb 摄像头等。
drivers\i2c\busses\i2c-gpio.c Linux内核真正的I2C控制器驱动程序 IMX6ULL: Linux-4.9.88\drivers\i2c\busses\i2c-imx.c STM32MP157 本节视频的代码在GIT仓库里 IMX6ULL:doc_and_source_for_drivers\IMX6ULL\source\04_I2C\06_i2c_adapter_virtual_ok STM32MP157 :doc_and_source_for_drivers\STM32MP157\source\A7\04_I2C\06_i2c_adapter_virtual_ok 1. STM32MP157 2. IMX6ULL 3.4 编译、安装驱动程序 3.5 使用i2c-tools测试
STM32MP157 注意:对于STM32MP157,以前说编译内核/驱动、编译APP的工具链不一样,其实编译APP用的工具链也能用来编译内核。 STM32MP157 2. IMX6ULL 1.3 编译、安装驱动程序 2.
STM32MP157上的bug 百问网技术交流群,百万嵌入式工程师聚集地: https://www.100ask.net/page/2248041 资料下载 coding无法使用浏览器打开,必须用git STM32MP157 注意:对于STM32MP157,以前说编译内核/驱动、编译APP的工具链不一样,其实编译APP用的工具链也能用来编译内核。 STM32MP157 2. IMX6ULL 3.3 编译、安装驱动程序 4. STM32MP157上的bug 在STM32MP157上做如下实验时: echo 509 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio509
参考资料,GIT仓库里: TFT-RGB LCD 接口原理图: `IMX6ULL\开发板配套资料\原理图\Base_board\100ask_imx6ull_v1.1.pdf`` ``STM32MP157 个文件是一样的): `IMX6ULL\开发板配套资料\datasheet\Base_board\100ask_imx6ull底板_规格书\7.0-13SPEC(7寸1024600TN-RGB).pdf`` STM32MP157