你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32MP135F-DK开发板评测-SD卡启动裸机程序

[复制链接]
BinWin 发布时间:2023-12-7 18:11
在上一次修改了GPIO例程后,也验证了调试运行是没问题的。固化程序首先要有编译后的程序文件,其次需要运行在DDR中。所以以LTDC_Display_2Layers_A为例制作量产卡。在工程内的STM32CubeIDE文件夹下的Debug目录内,找到了目标程序文件如下,这里也有调试用的elf文件和程序map文件。
1.png
从SD卡加载程序需要做一些工作,首先要有以下文件
2.png
以上文件可以简化理解为分区描述,引导程序、用户程序、SD卡驱动和ST串行接口驱动。固化程序就是烧录一个可以给CPU使用的SD启动卡,只不过是运行裸机程序,不是加载Linux系统。接下来使用CubeProgrammer来制作SD卡, 依然是要通过开发板对其操作。
& a; e5 a* z5 X6 c+ s. x5 G9 \
开发板要把boot配置到编程模式,和USB DFU一样,不过这次使用串口连接。
3.png
然后使用上位机连接到开发板,能读取到一些CPU的信息和内置BL版本。下图就可以看到已经和内部BL通信成功。
4.png
打开分区描述文件后如下
5.png
选择到SD卡驱动的文件目录,然后就点击下载按钮等待完成
6.png
以上就完成了烧录,可以切换BOOT开关运行程序。但以上是默认的测试程序,执行后串口打印如下
10.png
需要替换用户程序,而用户程序需要自己制作,就是添加header的bin文件。
7.png
怎么制作,看下面过程,,,
: t5 e) I. {+ `2 X9 N
从文档总结出来就是可以通过添加IDE的编译后脚本,也可以使用CubeProgrammer的签名工具。我试验后发现,直接使用Utilities文件夹中的可执行程序最为简单。因为给IDE配置编译后执行的脚本也是调用的这个可执行文件,不修改postbuild文件的情况下,手动运行下exe也能达到目的。如下,给Stm32ImageAddHeader.exe这个程序输入文件和输出文件的路径就可以了。
11.png
然后烧录的时候需要注意,修改下TSV文件中用户APP的名字
12.png
按照烧录的方法连接到bootloader通过串口写入文件到SD卡就行了。完成后BOOT调整到SD卡启动方式,就可以看到屏幕还是之前的双图层移动画面了。断电后再次上电直接就运行了。
6.png
其实看这个问题好几天了,卡在烧录不成功。明明CubeProgrammer提示成功,SD卡就是没有任何东西,也想过SD卡格式话问题,试了FAT也不行。终于在今天从ST官方论坛找到了答案
这个人的SD卡格式化为GDB,这个我不懂,但是我知道我的卡原来是GUID分区,改成了MBR分区表就可以了。说到底还是兼容性问题。这里的详细区别我也去整太清楚。提供的经验就是SD卡要格式化为FAT文件系统,转为MBR分区表。
13.png
以上就是STM32MP135的裸机代码量产方式,当然,SD卡只是一种介质。还可以选择NOR FLASH或者EMMC等,大致的思路是一样的。在STM32MP13XX_CUSTOM_HW文件内就提供了烧录到FLASH的例子,主要是替换外部存储设备的驱动文件。

1 n: a/ t. e. h  i, x
% B4 x9 ~, W7 W5 ^
收藏 评论1 发布时间:2023-12-7 18:11

举报

1个回答
星海灿烂 回答时间:2023-12-10 11:09:41
大佬,咨询一下,DDR和PMIC初始化是引导文件里面嘛。
5 B# e1 p9 t4 Q" f  P; e
6 c; f: s( z2 [5 J6 m; x现在我用其他开发板,使用SD卡烧录,屏幕没有显示。估计是DDR没有跑起来
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版