完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
u-boot在2017版本中加入了对Cortex-M系列内核的支持,正好手上有个h7的开发板,所以拿来试试,学习一下uboot。
一 u-boot版本选择 其实开始选用最早支持的版本比较好,因为新版本中加了更多的单板支持,有些版本之间由交叉移植阅读代码时容易形成干扰。 由于最开始就看的是u-boot-2019.04版本的代码,所以选择这个版本。 二 准备过程 说是移植,一般不会从头到尾自己写代码,肯定是从已经支持的单板中选择一个和自己差不多的,在这个基础上移植,天下乌鸦一般黑,天下的板子也都差不多。Cortex-M系列的更甚。 多数修改只需要改改设备树就好了,其中的原理还是需要学一学的。比如设备树相关的。u-boot设备模型相关的东西。 移植的过程相对简单,首先要搭建好开发环境。这个就不展开说明了 三 移植过程 先进行最简单的移植,让u-boot在单板上跑起来,主要是在STM32H743i-Discovery board基础上修改 需要移植串口和SDRAM,u-boot的程序的运行是跑在SDRSM上的。 对于串口的配置,串口主要是用来做交互与调试: 打开 arch/arm/dts/stm32h743i-disco.dts 文件,修改串口相关的配置。 从62行可以看出,Discovery开发板用的串口1,而我的单板用的是串口1,将该设备树文件中的关于串口相关的配置都改为串口1,其他的修改就不贴图了。 然后在arch/arm/dts/stm32h743-pinctrl.dtsi文件中修改串口1相关的引脚。 修改后的结果如下图 我的单板上的串口1的引脚用的是 PA9和PA10,相应的修改。 这么一改串口就修改完成了, 执行命令:make stm32h743-disco_defconfig 编译一下将u-boot.bin文件下载到单片机中。打开串口调试助手,运行结果如下: 有显示结果说明串口没有问题了,程序卡死是因为没有更改SDRAM相关的配置,接下来配置SDRAM相关的设备数等参数。 Discovery开发板的内存芯片用的是IS42S32800G-6BLI,挂载在bank1上如果你手上的板子也是用的这个芯片,那么移植应该会更简单。但是我手上的板子芯片是W9825G6KH,挂载在bank0中,修改的参数比较多, 首先修改设备数中的参数,设备数节点相关,SDRAM时序参数和引脚配置等。 修改memory节点,设置内存的起始地址和大小 修改对应的时间参数,下图修改的参数,这个要根据芯片的不同具体修改 文件 include/configs/stm32h743-disco.h修改 更改设备树中引脚相关的配置。 重新编译下载 可以看到 u-boot已经跑起来了。 |
|
|
|
只有小组成员才能发言,加入小组>>
3278 浏览 9 评论
2955 浏览 16 评论
3455 浏览 1 评论
8987 浏览 16 评论
4050 浏览 18 评论
1100浏览 3评论
570浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
568浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2300浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1856浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 19:03 , Processed in 1.246006 second(s), Total 78, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号