今天来学习一下开发环境搭建及程序烧录
所需准备:电脑(不限win或linux)、STM32CubeProgrammer软件、一张TF卡(原装的TF我不使用,保留,这样后续出问题还能使用原装TF做后备)
我看了一下ST官方的wiki,里面使用的是ubuntu系统,但是我看操作步骤只是安装STM32CubeProgrammer、下载镜像(下载的就是预装demo的系统镜像)、下载。没有编译的步骤,所以我觉得linux系统不是必须的,因此本次烧录我使用win,这样就不需要再去搞虚拟机再安装软件。等下次需要使用linux编译的时候再去折腾
首先我们去下载镜像(链接:https://www.st.com/en/embedded-software/stm32mp1starter.html#get-software),这里下载如果你有注册账号,就可以登录后直接获取下载链接,下载。如果没有可以填你的邮箱,st会通过邮件方式发送下载链接。我推荐第一种,邮件有的时候他会过很久才发给你
下载好后解压
开发板上更换新的TF卡(我之前说了,我要保留原来的卡,万一后续如果操作有问题,还可以用原装卡来检验是板卡故障还是我系统制作有问题),这里TF卡我再多说一句,建议使用正规品牌的TF卡(因为会存在兼容性问题,我一开始用了一张杂牌的8G卡,会提示无法擦除,如下图所示),最好class 10的,容量不要太小(我直接使用和原厂一样的16G)
ST-Link接口接上USB线(可选,用于观察烧录过程中的日志,虽然系统进入U-Boot后屏幕也会显示日志)
左下角的Type-C口(CN7)是烧录用的USB-OTG,一定要使用一条质量好一点的Type-C数据线,不要像我使用MicroUSB+转接头,2.0的就可以了,我看了原理图,这个接口只支持USB2.0。这个数据线建议直接接到电脑的USB 3.0口上,不要使用机箱前面板或HUB。我因为这个口子、线材问题,经常出现烧录异常中断找不到USB设备、烧录慢等问题。
将Boot开关open侧全部按下,接口进入USB烧录模式,这里我就不放图了,具体可以看上一篇文章
然后打开STM32CubeProgrammer,给板卡上电/按一下复位键,右侧选择USB,即可看到“USB1”,如果看不到那就点一下刷新
然后点击connect,连接上板卡后可以在右下角看到板卡信息,然后点击“open file”
这里打开的是烧录脚本,烧录会分多次烧录多个文件,所以需要一个脚本指定烧录的先后顺序,每个文件的偏移量等信息
在官方的压缩包中有很多烧录脚本,属于135的只有一个,所以不需要仔细看,直接选择135的就可以,加载好后如下图所示
然后还需要指定一下Binaries path,如下图所示
然后点击Download即可
之后就会开始下载,之前讲过很分多次烧录多个文件们,在烧录完一个后USB就会断连再充连,不过这些步骤都是自动进行的,不需要人为干预,当进入U-Boot后,屏幕会亮起,将下载日志打印在屏幕上,同时也可以从ST-Link的的串口中看到日志(有两个串口,其中只有一个会打印,波特率115200),整个烧录过程大约会需要几分钟,具体我没有掐表计算过。在此期间不要动USB线,避免接触不良导致烧录失败
烧录成功后,会提示如图
随后就可以将BOOT开关拨回原样,让系统从TF卡启动。点击复位键,系统就可以启动了,需要注意的是,第一次启动会需要一些时间 ,显示ST界面后大约会黑屏几分钟,可能是内部在做一些初始化。启动成功后如图