stm32的157系列linux,STM32MP157A-DK1测评 (1)官方OpenSTLinux烧写
STM32MP157A-DK1测评 (1)官方OpenSTLinux烧写
[复制链接]
STM32MP157A-DK1 这个板子从主要特征上看,就和风靡已久的各种“派”相似了,而和 STM32 MCU 的discovery比变化较大。至于玩法,因为目标平台是 ARM cortex-A 系列CPU的Linux系统,在应用层面上和其它 Linux 板子(比如各种“派”)风格就一致。
本来这个套件已经带了烧写好官方提供的 OpenSTLinux 的MicroSD卡,但不幸我收到的这套里面MicroSD卡已经壮烈牺牲了。于是我不能立即体验其demo. 得自己找个卡做个系统上去才能玩了。有点障碍的小问题是板子电源是 USB type-C 口提供电源(没有常规DC插座),而随板子给的一条USB线是双头 Type-C 口,这样我还没有电源可以直接插上去。ST-Link部分仍然是 USB micro 接口,但MPU并不从ST-Link这里获取电源,板子也没有电源跳线选择。按惯例某些插针上会连到5V电源,然而作为电源输入也不合适,我得找个 Type-C 的插头焊个电源线来用。
首先明确一点,STM32MP157A 这颗MPU是不带Flash的——这不同于STM32 MCU. 纵观板子以及查阅线路图又可以确定板子上没有NOR Flash、NAND Flash、eMMC之类存储芯片。这样也不需要对板子进行烧写,不存在烧错了“变砖”的风险,而且MicroSD卡接到其它系统上太灵活了。
根据 wiki.st.com 上 Starter package 部分的介绍(https://wiki.st.com/stm32mpu/wiki/STM32MP15_Discovery_kits_-_Starter_Package),需要用 STCubeProgrammer 来制作SD卡,这样就仿佛是对板子进行“烧写”编程(对于只有这一块开发板的用户来说这也是省事)。又要注意了,和以往MCU的烧写不同,这里的烧写并不是通过 ST-Link 进行,而是用STM32MP1的USB DFU模式,也就是从板子上另外一个 USB type-C 的口连接PC操作。但是我仅有的一条 USB type-C 转 type-A 数据线还不在手边,又卡壳了。
不过还有办法,STCubeProgrammer 还可以使用 UART 操作,就是速度慢而已,这个 UART 就是从 ST-Link 的 VCP 接出来的。
于是我不得已用这个慢速连接进行烧写操作。
connect.jpg (241.86 KB, 下载次数: 0)
2020-3-30 11:07 上传
事先需要将板子背面的 BOOT 开关都拨到 OFF 位置,也就是 BOOT0=0, BOOT2=0 (BOOT1固定为0),选择UART / USB启动。
bootmode.PNG (105.09 KB, 下载次数: 0)
2020-3-30 11:20 上传
尝试之后我认为这样个操作是可以的:
cubeprog.PNG (22.55 KB, 下载次数: 0)
2020-3-30 11:23 上传
也就是用 -c 参数指定端口(USB或UART),用 -w 参数指定一个 layout 文件,提供给 STM32_Programmer_CLI 程序。程序会根据 layout 文件找到实际要烧写的数据文件进行操作。
比如这个 FlashLayout_sdcard_stm32mp157a-dk1-trusted.tsv 文件的内容:
#OptIdNameTypeIPOffsetBinary
-0x01fsbl1-bootBinarynone0x0tf-a-stm32mp157a-dk1-trusted.stm32
-0x03ssbl-bootBinarynone0x0u-boot-stm32mp157a-dk1-trusted.stm32
P0x04fsbl1Binarymmc00x00004400tf-a-stm32mp157a-dk1-trusted.stm32
P0x05fsbl2Binarymmc00x00044400tf-a-stm32mp157a-dk1-trusted.stm32
P0x06ssblBinarymmc00x00084400u-boot-stm32mp157a-dk1-trusted.stm32
P0x21bootfsSystemmmc00x00284400st-image-bootfs-openstlinux-weston-stm32mp1.ext4
P0x22vendorfsFileSystemmmc00x04284400st-image-vendorfs-openstlinux-weston-stm32mp1.ext4
P0x23rootfsFileSystemmmc00x05284400st-image-weston-openstlinux-weston-stm32mp1.ext4
P0x24userfsFileSystemmmc00x33C84400st-image-userfs-openstlinux-weston-stm32mp1.ext4
也就是说,SD卡并不是整个作为一个Linux文件系统来用的,不能直接格式化了把文件复制进去。这样是要麻烦点,启动linux必需的 u-boot 也是存放在 SD 卡里面。根据资料,SD卡的空间分配是这样的:
sd_card_mapping.png (37.54 KB, 下载次数: 0)
2020-3-30 11:37 上传
正因如此,要利用CubeProgrammer来完成存储空间的索引,按地址写入文件。
但是,115200 baud 的UART速度实在太慢,写到后面几十MB的ext4文件系统内容时,效率不能忍受了。遂放弃……
我放弃通过 UART 用 CubeProgrammer 烧写,并非要转用 USB DFU, 而是因为发现FLASH文件压缩包中有 scripts/create_sdcard_from_flashlayout.sh 这个 bash 脚本文件,它应当是可以直接写SD卡的。于是,使用 Linux 机器执行这个脚本(注意需要 sgdisk 程序,我本来没有,结果第一次生成的结果不能用)。
[root(4) stm32mp1]# scripts/create_sdcard_from_flashlayout.sh flashlayout_st-image-weston/FlashLayout_sdcard_stm32mp157a-dk1-basic.tsv
这个脚本程序将创建一个镜像文件,完成后用 dd 命令写入 SD 卡应该就可以了。
Create Raw empty image: flashlayout_st-image-weston/../flashlayout_st-image-weston_FlashLayout_sdcard_stm32mp157a-dk1-basic.raw of 1536MB
具体的分区划分:
Number Start (sector) End (sector) Size Code Name
1 34 545 256.0 KiB 8301 fsbl1
2 546 1057 256.0 KiB 8301 fsbl2
3 1058 5153 2.0 MiB 8301 ssbl
4 5154 136225 64.0 MiB 8300 bootfs
5 136226 168993 16.0 MiB 8300 vendorfs
6 168994 1705857 750.4 MiB 8300 rootfs
7 1705858 3145694 703.0 MiB 8300 userfs
对应的文件:
part 1: fsbl1, image: u-boot-spl.stm32-stm32mp157a-dk1-basic
part 2: fsbl2, image: u-boot-spl.stm32-stm32mp157a-dk1-basic
part 3: ssbl, image: u-boot-stm32mp157a-dk1-basic.img
part 4: bootfs, image: st-image-bootfs-openstlinux-weston-stm32mp1.ext4
part 5: vendorfs, image: st-image-vendorfs-openstlinux-weston-stm32mp1.ext4
part 6: rootfs, image: st-image-weston-openstlinux-weston-stm32mp1.ext4
part 7: userfs, image: st-image-userfs-openstlinux-weston-stm32mp1.ext4
这样用脚本文件处理就摆脱了 CubeProgrammer 的步骤,直接制作 SD 卡,效率很高。SD卡用2GB以上就满足要求了。准备好以后将板子背面 BOOT 开关都拨到 ON 位置,插好 MicroSD 卡然后通电。一会儿蓝色LED闪烁,就说明系统启动成功了。从 ST-Link 的 VCP 可以看到启动时的很多信息。
此内容由EEWORLD论坛网友cruelfox原创,如需转载或用于商业用途需征得作者同意并注明出处
stm32的157系列linux,STM32MP157A-DK1测评 (1)官方OpenSTLinux烧写相关推荐
- 嵌入式Linux之旅——环境搭建篇之烧写整个系统
上一小结我们已经烧写完u-boot,我烧写的u-boot是板子厂家定制的,本小节将利用这个u-boot烧写整个系统.当然,在系统移植篇的时候也会涉及到如何定制一个u-boot. 烧写整个系统我们一个叫 ...
- 01-旭日X3派测评——开箱测试系统烧写性能初测
目录 1. 开箱测试 2. 预备工作 3.烧写系统 3.1 烧写软件 3.2 镜像文件下载 4.3 制作系统启动盘 4.4 测试系统 4.4.1串口登录测试 4.4.2 SSH登录测试 5. Hell ...
- tiny4412安装Linux系统,FriendlyARM Tiny 4412开发板烧写Linux系统步骤
一.制做用于安装系统的SD卡 通常Tiny4412出厂时已经安装好Android4.2.2系统,之后要从新烧写系统,则须要SD卡来烧写系统,不管是经过USB烧写,仍是SD卡脱机烧写,都须要使用SD卡启 ...
- 烧写linux系统到开发板中,Mini2440烧写Linux系统
按照国嵌课程在Linux系统下使用dnw软件烧写系统失败,开机白屏. 烧写步骤: 1.保持S2开关拨至nor flash开关处,连接串口线打开串口工具以便观察运行情况,打开电源开关. 2.使用jlin ...
- 裸板烧写linux内核,嵌入式 hi3518c裸板uboot烧写、kernel烧写、fs烧写小结
1.在uboot中我可以添加自己的命令,添加的方法是找到一个uboot的命令,然后模仿着去增加属于自己的命令代码以及实现函数就可以 2.记住在使用printf进行调试的时候,在遇到指针或者字符串的时候 ...
- 嵌入式Linux开发: 龙芯2K1000使用EJTAG烧写POPM
一.环境介绍 宿主机环境: ubuntu18.04 64位 目标开发板: 龙芯二代(2K1000) 需求说明: 在开发板使用过程中,如果不小心烧写错了POPM,导致开发板没法正常启动,这时候就可 ...
- 正点原子Linux阿尔法开发板4.3 寸多点电容触摸屏测试问题和gt9xx系列linux驱动移植
正点原子Linux阿尔法开发板4.3 寸多点电容触摸屏测试问题和gt9xx系列linux驱动移植 正点原子官方CSDN 4.3 寸多点电容触摸屏测试问题 正点原子gt9xx系列linux驱动移植 1. ...
- Linux学习笔记---使用MfgTool工具烧写官方系统(一)
目录 MfgTool工具简单介绍 软件烧写原理分析 1 .firmeare 文件夹 2 .files 文件夹 3 .ucl2.xml 文件 烧写步骤 1.连接USB线 2.开发板设置为USB模式 3. ...
- uboot通过u盘烧写linux内核,向Flash中烧写uboot和linux操作系统
向Flash中烧写uboot和linux操作系统 2011年03月28日 向Flash中烧写uboot和linux操作系统 ====================================== ...
最新文章
- 阿里巴巴开源限流降级神器Sentinel大规模生产级应用实践
- 按照左右半区的方式重新组合单链表
- 64位jdk连接32位的mysql_在64位客户端使用32位的ODBC配置
- python打包exe文件
- Java中的记录类型
- network3D 交互式网络生成
- 如何使用python多线程_Python:怎样用线程将任务并行化?
- python openpyxl创建excel文件-python之openpyxl生成excel文件
- 【转载】cocos2d-x类型转换(CCstring int string char UTF-8互转)以及字符串详解
- ASP.NET MVC Html.BeginForm用法1
- c语言编程怎么记,新手如何学习c语言
- 用html5写个炫酷的3d电子相册
- java common-lang_commons-lang.jar下载
- 全渠道精准营销其实不难?从这几个方面入手进行了!
- 软考中项第三章 信息系统集成专业知识
- 创业者周鸿祎前传(西安交大时期)-看点-@虎嗅网
- android开发关机代码,android代码实现关机
- Intrinsic Relationship Reasoning for Small Object Detection
- C语言如何读取一行数据,直到按空格结束
- 一打开360局域网防范就出现arp攻击,不打开能正常上网
热门文章
- Linux下pl与ps端的通信,zedboard通过BRAM实现PS和PL的简单通信
- 计算机端口伪装,服务器伪装信息修改法Windows系统 -电脑资料
- 汽车功能安全理论基础
- mysql与oracle链接超时_oracle数据库链接超时时间
- js数组合并(整理)
- 6年测试,面试大放厥词,最后竟.....
- dct变换和量化matlab,matlab实验,图像变换域分析(dct变换和小波变换)
- 计算机桌面内存,计算机内存不足怎么办
- 7-1 Overlay与Underlay通信总结
- Android的布局管理