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,