1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
一、uboot中的链接器脚本u-boot.lds分析:
.text : //代码段 { *(.__image_copy_start) //u-boot将自己copy到RAM,此为需要copy的程序的start *(.vectors) CPUDIR/start.o (.text*) // /arch/arm/cpu/armv8/start.S *(.text*) //其他的代码段放在这里,即start.S/vector.S之后 } 这里可以看出 /arch/arm/cpu/armv7/start.S为uboot的入口地址, /arch/arm/cpu/armv8/这个目录怎么得到的呢?首先进到u-boot根目录找到config.mk(这才是真正的Makefile),该文件中有如下声明: ARCH := $(CONFIG_SYS_ARCH:"%"=%) CPU := $(CONFIG_SYS_CPU:"%"=%) ifdef CONFIG_SPL_BUILD ifdef CONFIG_TEGRA CPU := arm720t endif endif BOARD := $(CONFIG_SYS_BOARD:"%"=%) ifneq ($(CONFIG_SYS_VENDOR),) VENDOR := $(CONFIG_SYS_VENDOR:"%"=%) endif ifneq ($(CONFIG_SYS_SOC),) SOC := $(CONFIG_SYS_SOC:"%"=%) endif CPUDIR=arch/$(ARCH)/cpu$(if $(CPU),/$(CPU),) 像CONFIG_SYS_ARCH、CONFIG_SYS_CPU等等这些宏是在哪里定义的呢,也在u-boot顶层目录中有一个叫u-boot.cfg的文件,里面定义了很多宏,我们列举上面需要用到的: #define CONFIG_SYS_ARCH "arm" #define CONFIG_SYS_CPU "armv8" #define CONFIG_SYS_BOARD "evb_rk3308" #define CONFIG_SYS_VENDOR "rockchip" #define CONFIG_SYS_SOC "rockchip" 所以上面start.S的路径就是:arch/arm/cpu/armv8/start.S 二、下面分析dts文件: 在u-boot顶级目录下一个dts文件目录,打开文件目录下的Makefile,内容如下 DEVICE_TREE ?= $(CONFIG_DEFAULT_DEVICE_TREE:"%"=%) ifeq ($(DEVICE_TREE),) DEVICE_TREE := unset endif ARCH_PATH := arch/$(ARCH)/dts dtb_depends := arch-dtbs ifneq ($(EXT_DTB),) DTB := $(EXT_DTB) else DTB := $(ARCH_PATH)/$(DEVICE_TREE).dtb dtb_depends += $(DTB:.dtb=.dts) endif 根据上面的u-boot.cfg找到CONFIG_DEFAULT_DEVICE_TRE宏定义如下: #define CONFIG_DEFAULT_DEVICE_TREE “rk3308-evb” 所以该sdk用的dts为rk3308-evb.dts |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
基于米尔瑞芯微RK3576核心板/开发板的人脸疲劳检测应用方案
606 浏览 0 评论
870 浏览 1 评论
768 浏览 1 评论
1984 浏览 1 评论
3230 浏览 1 评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 14:02 , Processed in 0.655469 second(s), Total 72, Slave 54 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号