单片机学习小组
登录
直播中
李泽坚
7年用户
1333经验值
私信
关注
如何让u-boot跑起来?
开启该帖子的消息推送
u-boot
如何让u-boot跑起来?
回帖
(1)
李天竹
2022-1-26 15:39:18
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已经跑起来了。
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已经跑起来了。
举报
更多回帖
rotate(-90deg);
回复
相关问答
u-boot
如何
让
U-Boot
在RK3399这块板子上成功的运行
起来
呢
2022-03-07
1780
请问裸板程序运行是否一定需要uboot先
跑起来
?
2019-07-23
1125
如何利用XR806开发板
让
hello
跑起来
?
2021-12-29
979
为什么用1621B驱动液晶的时候初始化时正常显示,但程序
跑起来
是却不停闪烁呢?
2015-08-01
5345
关于
U-boot
的问题?
2014-05-12
2878
MDK自带系统keil RTX中程序没
跑起来
2019-01-14
3105
在板子上系统
跑起来
后怎么查看屏幕驱动
2022-01-10
1160
怎样去移植
u-boot
呢?移植
u-boot
的过程是怎样的呢
2021-12-29
957
DM8168
U-Boot
烧写问题
2018-05-31
3004
u-boot
2014-04-14
2724
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
英国威廉希尔公司网站
william hill官网 版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分