| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> Linux系统移植学习Day3--Bootloader -> 正文阅读 |
|
[嵌入式]Linux系统移植学习Day3--Bootloader |
【1】 制作TF卡启动盘? ? ? ? 1、查看TF卡分区 ? ? ? ? ? ? ? ? 将TF卡插到电脑接入到Ubuntu系统中,在命令行输入以下命令: ? ? ? ? ? ? ? ? ? ? ? ? ls /dev/sd* ? ? ? ? 2、对SD卡进行格式化 ? ? ? ? ? ? ? ? ? ? ? ? sudo umount /dev/sdb? ????????????????????????sudo parted -s /dev/sdb mklabel msdos ? ? ? ? ?3、对TF卡进行分区 ? ? ? ? ? ? ? ? ? ? ? ? sudo sgdisk --resize-table=128 -a 1 -n 1:34:545 -c 1:fsbl1 -n 2:546:1057 -c 2:fsbl2 -n? ? ? ? ? ? ? ? ? ? ?3:1058:5153 -c 3:ssbl -n 4:5154:136225 -c 4:bootfs -n 5:136226 -c 5:rootfs -A 4:set:2 -p? ? ? ? ? ? ? ? ? ? ?/dev/sdb -g ????????????????解析:? ? ? ? ? ??4、下载u-boot-spl.stm32到sdb1和sdb2,下载u-boot.img到sdb3? ? ? ? ? ? ? ? ? ? ????????????????????????sudo dd if=u-boot-spl.stm32 of=/dev/sdb1 conv=fdatasync ????????????????????????sudo dd if=u-boot-spl.stm32 of=/dev/sdb2 conv=fdatasync ????????????????????????sudo dd if=u-boot.img of=/dev/sdb3 conv=fdatasync ????????????????????????????????if ---> input file ????????????????????????????????of ---> output file ????????????????????????????????conv=fdatasync : 数据对齐 ? ? ? ? ????5、设置开发板的启动方式,设置为通过SD卡启动 ? ? ? ? ? ? ? ? ? ? ?启动方式通过板子上的拨码开关调节? ? ? ? ? ? ????6、将TF卡插到开发板上,开发板上电重启,板子能正常启动则TF启动盘制作完成。 【2】启动过程中的错误解析? ? ? ? ? ?现象1、
? ? ? ? 通过对上述错误信息分析,可知电源管理单元PMIC有问题,可能是DK1和FSMP1A的电源管理单元存在差异,下一步对比两者的电源管理单元电路图 ????????通过对比发现DK1公版的电源管理使用了一个I2C的电源管理芯片,FSMP1A则采用的是独立电源供电,使用了不同信号的电源管理芯片。接下来对差异部分进行修改。 ? ? ? ? 找到stm32mp15xx-fsmp1x.dtsi文件,去掉i2c4的节点
? ? ? ? ? ? ? 去掉cpu的节点
? ? ? ?????????找到arch/arm/dts/stm32mp157a-fsmp1a-u-boot.dtsi, 去掉以下节点
? ? ? ? ? ? ? ? 找到stm32mp15xx-fsmp1x.dtsi文件,在vin节点下添加电源节点信息
????????通过make menuconfig 配置uboot源码去掉PMIC的配置选项,按空格将方括号内*号去掉: ? ? ? ? Device Drivers ---> ? ? ? ? ? ? ? ? ? ? ?Power ---> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[ ] Enable support for STMicroelectronics STPMIC1 PMIC ????????重新编译进行测试 ? ? ? ? 现象2、
?????????上面显示DRAM初始化失败,对比DK1公版和FSMP1A开发板的DDR3内存的电路原理图,发现原理图一致,有可能设备树文件没有被编译 ? ? ? ? 在dts目录下修改Makefile 文件,添加如下信息
????????重新执行make all 进行编译,在打印的信息中可以看到以下信息:
?????????通过打印信息可知,编译u-boot源码是将ev1板子的设备树追加到了u-boot.img的后边, ? ? ? ? 解决方法: ????????第一种:make DEVICE_TREE=stm32mp157a-fsmp1a all ?在编译是指定设备树对应的文件 ????????编译出现以下错误信息:
?????????没有生成.dtb文件。设备树文件的编译也是通过arch/arm/dts目录下的Makefile文件进行管理的,修改Makefile文件,添加对fsmp1a设备树文件编译的信息。 ?????????make all 编译,成功,再次对u-boot进行测试 ?????????现象3
?????????对以上错误进行分析,发现是MMC驱动相关的错误,FSMP1A的开发板支持TF卡(16G)和EMMC(4G)的存储芯片,DK1公板只支持TF卡,而我们启动的方式采用的是TF卡启动,?因此启动失败的原因可能是TF卡的驱动有问题。 ????????通过对DK1和FSMP1A原理图的分析,可知,SD卡都接到了SDMMC1的控制器,只是引脚不一致,?因此需要修改stm32mp15xx-fsmp1x.dtsi设备树头文件中的sdmmc1对应的节点。
?????????重新进行编译,重新下载进行测试 ? ? ? ? 现象4、
?????????错误原因: DK1公板在启动u-boot时,ADC会检查供电电流,如果不足3A就会报错。而fsmp1a板子没有涉及这个功能,因此需要将u-boot源码对对电流检查的代码关闭。 ????????解决办法: ????????重新进行编译,重新下载进行测试? |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/27 10:33:32- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |