系统移植 uboot 2
创始人
2024-03-27 04:58:41
0

一、uboot源码获取

1.1 uboot官网获取

ftp://ftp.denx.de/pub/u-boot/ 前提是是芯片厂家将uboot源码开源到uboot官网上

1.2 ST开发社区获取

https://wiki.stmicroelectronics.cn/stm32mpu/wiki/STM32MP1_Developer_Package

1.3 ST官网

https://www.st.com/en/embedded-software/stm32mp1dev.html

1.4 开发板厂家

直接找对应的开发板厂家进行获取,一定有支持开发板的相关镜像文件

1.5 项目经理

一定有支持开发板的相关镜像文件

二、uboot源码命名方式

u-boot-年-月-rc.tar.bz2带rc:表示测试版本不rc:表示稳定版本tar.bz2:压缩方式

三、了解硬件平台

1.本次课程学习的开发板使用:华清远见研发中心提供 2.使用开发板参考ST公司提供demo板,DK1和DK2开发板

四、硬件平台描述

1.硬件信息:CPU板:cortex-A7 * 2  和 cortex-M4架构:arm-V7架构厂商:STSOC:STM32MP157aaaboard:FSMP1A
2.参考华清远见wiki百科网址进行移植
http://wiki.farsightdev.com/index.php?title=FS-MP1A

五、uboot源码移植准备工作

5.1 uboot源码拷贝到ubuntu中

1.在家目录下创建一个文件夹demo
2.将en.SOURCES-stm32mp1-openstlinux-5.10-dunfell-mp1-21-11-17_tar_v3.1.0.xz拷贝到demo目录下
3.对en.SOURCES-stm32mp1-openstlinux-5.10-dunfell-mp1-21-11-17_tar_v3.1.0.xz进行解压tar -vxf en.SOURCES-stm32mp1-openstlinux-5.10-dunfell-mp1-21-11-17_tar_v3.1.0.xz
4.如下图可以查看到uboot源码目录

5.2 分析uboot源码

1.在家目录下创建一个文件夹FSMP1A
2.将u-boot-stm32mp-v2020.10-stm32mp-r2-r0拷贝到FSMP1A目录下cp u-boot-stm32mp-v2020.10-stm32mp-r2-r0/ ~/FSMP1A/ -rf
3.进入到~/FSMP1A/u-boot-stm32mp-v2020.10-stm32mp-r2-r0目录
4.对u-boot-stm32mp-v2020.10-stm32mp-r2-r0.tar.gz目录进行解压tar -vxf u-boot-stm32mp-v2020.10-stm32mp-r2-r0.tar.gz 
5.进入uboot源码目录下,对uboot源码进行解析1>平台相关arch:存放平台相关架构内容board:存放各个板子相关文件2>平台无关Makefile:工程管理文件configs:配置相关文件drivers:存放驱动相关内容README:帮助文档
6.因为uboot源码使用Makefile进行编译的,所以需要查看make相关帮助命令信息 ----->make help1>清除中间文件  -----> make distcleanCleaning targets:clean          - Remove most generated files but keep the configmrproper      - Remove all generated files + config + various backup filesdistclean      - mrproper + remove editor backup and patch files2>基于图形化界面配置 -----> make menuconfigmenuconfig      - Update current config utilising a menu based program3>编译uboot源码 -----> make allall          - Build all necessary images depending on configuration
7.分析README文件195 For all supported boards there are ready-to-use default196 configurations available; just type "make _defconfig".197 198 Example: For a TQM823L module type:199 200     cd u-boot                                                                                                201     make TQM823L_defconfig
8.总结通过README文件分析可知,配置板子的默认(缺省)命令是:make _defconfig问题:如何确定本次移植FSMP1A开发板是什么?

5.3 如何确定名字!!!

1.方法1:如何确定名字1>在uboot源码顶层目录下执行: make fsmp1a_defconfig2>在源码目录下出现如下错误信息:*** Can't find default configuration "arch/../configs/fsmp1a_defconfig"!通过阅读可知:在arch/../configs/fsmp1a_defconfig不能找到默认的配置文件3>进入uboot源码顶层目录下,进入configs目录,查看配置文件: ls stm32mp*stm32mp15_basic_defconfig  : 非安全默认配置文件stm32mp15_trusted_defconfig :安全默认配置文件2.方法2:因为uboot源码使用makefile进行管理编译,所以在makefile文件中可以找到make _defconfig对应的目标信息:1>在uboot源码顶层目录下,打开Makefile文件,搜索:config564 %config: scripts_basic outputmakefile FORCE565     $(Q)$(MAKE) $(build)=scripts/kconfig $@2>在uboot源码顶层目录下,打开Makefile文件,搜索:config,使用echo将变量信息进行打印564 %config: scripts_basic outputmakefile FORCE565     @echo $(Q)566     @echo $(MAKE)567     @echo $(build)568     @echo $@                                                                                                 569     $(Q)$(MAKE) $(build)=scripts/kconfig $@3>在uboot源码顶层目录下执行: make fsmp1a_defconfig,会出现如下打印信息@make-f ./scripts/Makefile.build objfsmp1a_defconfig4>总结:通过以上命令打印可知$(Q)取消回显,所以将$(Q)去掉,在次执行 make fsmp1a_defconfig,查看打印信息make -f ./scripts/Makefile.build obj=scripts/kconfig fsmp1a_defconfig = make obj=scripts/kconfig fsmp1a_defconfig3.方式3:通过方法2分析可知,到指定scripts/kconfig目录下,打开Makefile文件,搜索目标:defconfig1>在scripts/kconfig目录下,打开Makefile文件,搜索目标:defconfig109 %_defconfig: $(obj)/conf110     $(Q)$< $(silent) --defconfig=arch/$(SRCARCH)/configs/$@ $(Kconfig)  2>在scripts/kconfig目录下,打开Makefile文件,搜索目标:defconfig,使用echo命令,对变量信息进行打印109 %_defconfig: $(obj)/conf110     @echo $(Q)111     @echo $(silent)112     @echo $(SRCARCH)113     @echo $@114     @echo $(Kconfig)115    $(Q)  $< $(silent) --defconfig=arch/$(SRCARCH)/configs/$@ $(Kconfig)  3>在uboot源码顶层目录下执行: make fsmp1a_defconfig,会出现如下打印信息@..fsmp1a_defconfigKconfig4>总结:通过以上命令打印可知$(Q)取消回显,所以将$(Q)去掉,在次执行 make fsmp1a_defconfig,查看打印信息scripts/kconfig/conf  --defconfig=arch/../configs/fsmp1a_defconfig Kconfig
4.总结:make _defconfig执行过程scripts/kconfig/conf:通过file命令进行查看,可知是一个elf可执行文件--defconfig=arch/../configs/fsmp1a_defconfig:板子目标文件Kconfig:uboot源码目录下配置文件通过以上分析可知:conf是一个可执行文件,--defconfig=arch/../configs/fsmp1a_defconfig和Kconfig作为参数传递给conf

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...
苏州离哪个飞机场近(苏州离哪个... 本篇文章极速百科小编给大家谈谈苏州离哪个飞机场近,以及苏州离哪个飞机场近点对应的知识点,希望对各位有...