当前位置: 首页 > news >正文

找网站网页搜索快捷键

找网站,网页搜索快捷键,在上海注册公司怎么样靠谱,做电商不不得不知道的网站bl31.ld.S分析 通过链接脚本 bl31.ld.S,可得知整个镜像的内存布局: 镜像起始运行地址- BL31_BASE;镜像入口函数-bl31_entrypoint(); 前言 芯片所有的软硬件资源都能够在 NXP 官网找到,本文档也是对 NXP 开源 LSDK …

bl31.ld.S分析

通过链接脚本 bl31.ld.S,可得知整个镜像的内存布局:

  • 镜像起始运行地址- BL31_BASE
  • 镜像入口函数-bl31_entrypoint()

前言

芯片所有的软硬件资源都能够在 NXP 官网找到,本文档也是对 NXP 开源 LSDK 代码工程的学习与分析。
官网链接如下:
LSDK 软件资料
LX2160 芯片资料

1.链接脚本生成流程

通读 atf 工程 makefile 框架后得知,链接脚本通过 MAKE_BL 宏函数生成,简化后如下:

define MAKE_BL# 省略$(eval DEFAULT_LINKER_SCRIPT_SOURCE := $($(call uppercase,$(1))_DEFAULT_LINKER_SCRIPT_SOURCE))$(eval DEFAULT_LINKER_SCRIPT := $(call linker_script_path,$(DEFAULT_LINKER_SCRIPT_SOURCE)))# BL2 与 BL31 只使用了默认链接脚本,下面的变量为自定义变量,指向自定义连接脚本$(eval LINKER_SCRIPT_SOURCES := $($(call uppercase,$(1))_LINKER_SCRIPT_SOURCES))$(eval LINKER_SCRIPTS := $(call linker_script_path,$(LINKER_SCRIPT_SOURCES)))# 省略# Generate targets to preprocess each required linker script
# 生成链接脚本 ld 文件
$(eval $(foreach source,$(DEFAULT_LINKER_SCRIPT_SOURCE) $(LINKER_SCRIPT_SOURCES), \$(call MAKE_LD,$(call linker_script_path,$(source)),$(source),$(1))))# 省略endef

链接脚本通过下述命令生成:

$(eval $(call MAKE_LD,$(LINKERFILE),$(BL_LINKERFILE),$(1)))

其中:

  • $(1))_DEFAULT_LINKER_SCRIPT_SOURCEbl31/bl31.ld.S
  • 生成链接脚本文件为: release/bl31/bl31.ld. (bl2.ld 文件生成的代码同理)

2.bl31.ld 分析

bl31.ld 与 bl31.ld.S 的区别是使用了 gcc 编译器对一些宏进行扩展,让整个内存布局地址更明确, 通过生成的 bl31.ld, 我们可以更明确的知道地址分配,源码如下:

OUTPUT_FORMAT("elf64-littleaarch64")
OUTPUT_ARCH(aarch64)
ENTRY(bl31_entrypoint)
MEMORY {RAM (rwx): ORIGIN = (0x80000000 + 0x80000000 - ((64 * 1024 * 1024) + (2 * 1024 * 1024))), LENGTH = ((0x80000000 + 0x80000000 - ((64 * 1024 * 1024) + (2 * 1024 * 1024))) + (0x200000)) - (0x80000000 + 0x80000000 - ((64 * 1024 * 1024) + (2 * 1024 * 1024)))
}
SECTIONS {RAM_REGION_START = ORIGIN(RAM);RAM_REGION_LENGTH = LENGTH(RAM);. = (0x80000000 + 0x80000000 - ((64 * 1024 * 1024) + (2 * 1024 * 1024)));ASSERT(. == ALIGN(((1) << (12))),"BL31_BASE address is not aligned on a page boundary.")__BL31_START__ = .;.text . : {__TEXT_START__ = .;*bl31_entrypoint.o(.text*)*(SORT_BY_ALIGNMENT(SORT(.text*)))*(.vectors)__TEXT_END_UNALIGNED__ = .;. = ALIGN(((1) << (12)));__TEXT_END__ = .;} >RAM.rodata . : {__RODATA_START__ = .;*(SORT_BY_ALIGNMENT(.rodata*)). = ALIGN(8); __RT_SVC_DESCS_START__ = .; KEEP(*(.rt_svc_descs)) __RT_SVC_DESCS_END__ = .; . = ALIGN(8); __FCONF_POPULATOR_START__ = .; KEEP(*(.fconf_populator)) __FCONF_POPULATOR_END__ = .; . = ALIGN(8); __PMF_SVC_DESCS_START__ = .; KEEP(*(.pmf_svc_descs)) __PMF_SVC_DESCS_END__ = .; . = ALIGN(8); __PARSER_LIB_DESCS_START__ = .; KEEP(*(.img_parser_lib_descs)) __PARSER_LIB_DESCS_END__ = .; . = ALIGN(8); __CPU_OPS_START__ = .; KEEP(*(.cpu_ops)) __CPU_OPS_END__ = .; . = ALIGN(8); __GOT_START__ = .; *(.got) __GOT_END__ = .;. = ALIGN(8);
__pubsub_psci_cpu_on_finish_start = .; KEEP(*(.__pubsub_psci_cpu_on_finish)); __pubsub_psci_cpu_on_finish_end = .;
__pubsub_psci_suspend_pwrdown_start_start = .; KEEP(*(.__pubsub_psci_suspend_pwrdown_start)); __pubsub_psci_suspend_pwrdown_start_end = .;
__pubsub_psci_suspend_pwrdown_finish_start = .; KEEP(*(.__pubsub_psci_suspend_pwrdown_finish)); __pubsub_psci_suspend_pwrdown_finish_end = .;
__pubsub_cm_entering_secure_world_start = .; KEEP(*(.__pubsub_cm_entering_secure_world)); __pubsub_cm_entering_secure_world_end = .;
__pubsub_cm_exited_secure_world_start = .; KEEP(*(.__pubsub_cm_exited_secure_world)); __pubsub_cm_exited_secure_world_end = .;
__pubsub_cm_entering_normal_world_start = .; KEEP(*(.__pubsub_cm_entering_normal_world)); __pubsub_cm_entering_normal_world_end = .;
__pubsub_cm_exited_normal_world_start = .; KEEP(*(.__pubsub_cm_exited_normal_world)); __pubsub_cm_exited_normal_world_end = .;__RODATA_END_UNALIGNED__ = .;. = ALIGN(((1) << (12)));__RODATA_END__ = .;} >RAMASSERT(__CPU_OPS_END__ > __CPU_OPS_START__,"cpu_ops not defined for this platform.")__RW_START__ = . ;.data . : ALIGN(1) { __DATA_START__ = .; *(SORT_BY_ALIGNMENT(.data*)) __DATA_END__ = .; } >RAM.rela.dyn : ALIGN(8) { __RELA_START__ = .; *(.rela*) __RELA_END__ = .; } >RAM.stacks (NOLOAD) : { __STACKS_START__ = .; *(.tzfw_normal_stacks) __STACKS_END__ = .; } >RAM.bss (NOLOAD) : ALIGN(16) { __BSS_START__ = .; *(SORT_BY_ALIGNMENT(.bss*)) *(COMMON) . = ALIGN(64); __BAKERY_LOCK_START__ = .; __PERCPU_BAKERY_LOCK_START__ = .; *(.bakery_lock) . = ALIGN(64); __PERCPU_BAKERY_LOCK_END__ = .; __PERCPU_BAKERY_LOCK_SIZE__ = ABSOLUTE(__PERCPU_BAKERY_LOCK_END__ - __PERCPU_BAKERY_LOCK_START__); . = . + (__PERCPU_BAKERY_LOCK_SIZE__ * (8 * 2 - 1)); __BAKERY_LOCK_END__ = .; ASSERT((__PERCPU_BAKERY_LOCK_SIZE__ == 0) || (__PERCPU_BAKERY_LOCK_SIZE__ == (1 * 64)), "PLAT_PERCPU_BAKERY_LOCK_SIZE does not match bakery lock requirements"); . = ALIGN(64); __PMF_TIMESTAMP_START__ = .; KEEP(*(.pmf_timestamp_array)) . = ALIGN(64); __PMF_PERCPU_TIMESTAMP_END__ = .; __PERCPU_TIMESTAMP_SIZE__ = ABSOLUTE(. - __PMF_TIMESTAMP_START__); . = . + (__PERCPU_TIMESTAMP_SIZE__ * (8 * 2 - 1)); __PMF_TIMESTAMP_END__ = .; . = ALIGN(16); __BASE_XLAT_TABLE_START__ = .; *(.base_xlat_table) __BASE_XLAT_TABLE_END__ = .; __BSS_END__ = .; } >RAM.xlat_table (NOLOAD) : { __XLAT_TABLE_START__ = .; *(.xlat_table) __XLAT_TABLE_END__ = .; } >RAM__RW_END__ = .;__BL31_END__ = .;ASSERT(. <= ((0x80000000 + 0x80000000 - ((64 * 1024 * 1024) + (2 * 1024 * 1024))) + (0x200000)), "BL31 image has exceeded its limit.")RAM_REGION_END = .;/DISCARD/ : {*(.dynsym .dynstr .hash .gnu.hash)}
}

编译过程中,会生成bl31.map 文件,结合 map 文件,可以更明确的知道段分配,每一个段内的成员地址,链接脚本定义的段变量地址。
生成的链接脚本请自行阅读。

http://www.cadmedia.cn/news/6698.html

相关文章:

  • 美丽中国网页界面设计seo优化教程自学
  • 建筑公司名称大全南宁seo标准
  • 武汉网站建设027私域流量运营管理
  • vps搭建网站优化技术
  • 网站建设酷隆分享推广
  • 北京网站建设公司华网天下优惠今日头条极速版最新
  • 微网站建设需付费吗百度网盘搜索引擎入口哪里
  • 建设网站方式有哪些太原关键词优化公司
  • 深圳建设网站哪家好今日热搜榜排行榜
  • 石家庄小程序平台开发郑州百度推广seo
  • 长沙百度搜索网站排名国外广告联盟平台
  • 湛江做网站哪家专业百度关键词排名优化工具
  • 查询企业年报的网站seo站长综合查询工具
  • 域名备案服务网络优化的基本方法
  • 海口市住房和城乡建设局 网站优化设计答案四年级上册语文
  • 郴州 网站建设优化网站排名方法教程
  • 4399游戏盒下载官方网站广告免费发布信息平台
  • 北京市昌平区社会建设网站北京厦门网站优化
  • 响应式网站模板是什么营口seo
  • 什么是电商怎么做电商北京中文seo
  • 建设银行网站登录网络推广属于什么行业
  • 网站平台建设经费预算找人帮忙注册app推广
  • 教育平台网站开发搜索引擎优化中的步骤包括
  • 红衫中国网站建设海南百度推广总代理
  • 石家庄做网站建设的公司排名免费百度广告怎么投放
  • 天津中小企业网站建设深圳百度国际大厦
  • 建设一个网站的意义自助建站系统软件
  • 苏州网站建设搜q479185700产品线上营销推广方案
  • 门户网站建设与运行情况良好吉林seo网络推广
  • 溧水网站建设西安百度推广网站建设