前言
在学习正点原子的STM32MP157的时候,想必有的朋友和我一样不想学习繁琐的内核,uboot,根文件系统这些的移植,想要直接开始驱动教程的学习。一在这里卡了很久不想去花时间做移植,但是又不知道怎么样下手直接跳过前面那些步骤。翻遍了基本所有的教程文档也没有找到说明。现在我分享给各位。
找到系统教程镜像并且烧录
我们在【正点原子】STM32MP157开发板(A盘)-基础资料\08、系统镜像\08、系统镜像
这个目录下面这个文件夹下面可以看到这几个东西:
其中第三个我们不必理会。02、出厂系统镜像
在正点原子10、用户手册
的快速体验文档里面可以找到详细的说明,这个是用来烧写出厂镜像的,也就是我们拿到开发板以后有ui界面的那个镜像,具体的烧写流程大家参考手册就好啦。值得一提的是,想要学习应用开发和QT开发的朋友们直接用出厂的镜像开发就好了,不要动,应用开发和QT的教程都是基于这个镜像的。
我们如果是想学习驱动开发又不想去弄前面的裁剪移植,那我们就直接烧写第一个01、教程系统镜像
烧写步骤
打开CubeProgrammer(这个软件的下载和基本使用方法参考10、用户手册\快速体验v1.6.pdf的第三部分镜像烧录
),关机,把拨码开关全部拉到最下面,用一根typec线连接电脑和开发版的USB_OTG
口,在cubeprogrammer中连接。
之后点击open file打开文件,找到【正点原子】STM32MP157开发板(A盘)-基础资料\08、系统镜像\08、系统镜像\01、教程系统镜像\教程烧录固件包\images
下的tf-a.tsv文件,然后点击确认载入,会出现下面的的信息就差不多是正确的了:
还要注意下面的Browse,这个一定要配置好,要选择到08、系统镜像\01、教程系统镜像\教程烧录固件包\images
这里
再给大家讲一下为什么:我们可以打开刚才载入的tsv文件,可以看到:(我一般用记事本打开)
我们主要关注的是Binary下面的这些二进制文件的路径,发现都是相对路径,那么我们就需要指定包含他们的上一级的文件夹,cubeprogrammer才能找到这些文件,注意了tsv只是一个描述文件,用来告诉软件需要加载的文件的路径还有烧录到板子内存的一些信息。
等到我们看到了successfully的弹窗,就说明烧录成功了。接下来disconnect,关机,将拨码开关中间拨上去,指定用emmc打开,将typec口从OTG转到TTL口,打开mobxterm找到串口(波特率是115200),开机
接下来我们其实会看到,这是正常的,我们还没有进入到根文件系统,目前只是在uboot引导界面,还没有加载内核和根文件系统呢。
问题描述及解决
接下来如果我按照了教程的"09、文档教程\STM32MP157驱动开发指南" 的19.6.3
这个的命令行输入的话,我出现了下面这个报错: 然后就会一直重启
ERROR: Did not find a cmdline Flattened Device Tree XIP Kernel Image
首先解决一个问题:如果一直在重启了按ctrl+c什么的都退出不了,关机重启也还是这样(其实是因为我们saveenv了,怎样重启系统都会执行),这时候我们在等待Starting kernel ...
的时候就一直按空格或者随便一个数字字母,这时候在加载到一个地方的时候就会被打断,重新进到
问题解决
我的建议是:如果你第一次进来或者说已经报错了,都没关系,可以跟着我这样就可以启动了:
在uboot的下面输入:
setenv bootcmd 'ext4load mmc 1:2 c2000000 uImage;ext4load mmc 1:2 c4000000 stm32mp157d-atk.dtb;bootm c2000000 - c4000000'
setenv bootargs 'console=ttySTM0,115200 root=/dev/mmcblk1p3 rootwait rw'
saveenv
接下来不要用boot,直接电机reset按键或者断电重新上电,我这样做就正常了
进入到这个界面
然后login输入root,password输入123456
结尾
接下来就开启驱动学习吧💪⛽️