二、基本概念 链接器把一个或多个输入文件合成一个输出文件. 输入文件: 目标文件或链接脚本文件. 输出文件: 目标文件或可执行文件. 目标文件(包括可执行文件)具有固定的格式, 在 UNIX 或 GNU/Linux 平台下, 一般为 ELF 格 式 有时把输入文件内的 section 称为输入 section(input section), 把输出文件内的 section 称为 输出 section(output sectin). 目标文件的每个 section 至少包含两个信息: 名字和大小. 大部分 section 还包含与它相关联 的一块数据, 称为 section contents(section 内容). 一个 section 可被标记为“loadable(可加 载的)”或“allocatable(可分配的)”. loadable section: 在输出文件运行时, 相应的 section 内容将被载入进程地址空间中. allocatable section: 内容为空的 section 可被标记为“可分配的”. 在输出文件运行时, 在进 程地址空间中空出大小同 section 指定大小的部分. 某些情况下, 这块内存必须被置零. 如果一个 section 不是“可加载的”或“可分配的”, 那么该 section 通常包含了调试信息. 可用 objdump -h 命令查看相关信息. 每个“可加载的”或“可分配的”输出 section 通常包含两个地址: VMA(virtual memory address 虚拟内存地址或程序地址空间地址)和LMA(load memory address加载内存地址或进程地址 空间地址). 通常 VMA 和 LMA 是相同的. 在目标文件中, loadable 或 allocatable 的输出 section 有两种地址: VMA(virtual Memory Address)和 LMA(Load Memory Address). VMA 是执行输出文件时 section 所在的地址, 而 LMA 是加载输出文件时 section 所在的地址. 一般而言, 某 section 的 VMA == LMA. 但在 嵌入式系统中, 经常存在加载地址和执行地址不同的情况: 比如将输出文件加载到开发板 的 flash中(由 LMA指定), 而在运行时将位于 flash中的输出文件复制到SDRAM中(由VMA 指定). 可这样来理解 VMA 和 LMA, 假设: (1) .data section对应的VMA地址是 0×08050000, 该 section内包含了 3个 32位全局变量, i、j 和 k, 分别为 1,2,3. (2) .text section 内包含由”printf( “j=%d “, j );”程序片段产生的代码. 连接时指定.data section 的 VMA 为 0×08050000, 产生的 printf 指令是将地址为 0×08050004 处的 4 字节内容作为一个整数打印出来。 如果.data section 的 LMA 为 0×08050000,显然结果是 j=2 如果.data section 的 LMA 为 0×08050004,显然结果是 j=1 还可这样理解 LMA:
1
Rockchip Secure Boot Application Note_v1.7_20170519 Secure Boot 的目的是保证芯片只运行用户指定的程序,芯片每次启动时都会验证从 flash 中加载的 partition table 和 app images 是否是用户指定的
2022-12-10 23:55:05 1.34MB secure
1
rockchip-Secureboot+介绍 rockchip-Secureboot+介绍
2022-12-10 23:52:04 1.33MB rockchip
1
pdf Rockchip RK809M&RK817&RK809 Datasheet 
2022-12-08 09:55:31 10.77MB pmu
1
Linux 4.4 USB 开发指南 1 概述 1.1 RK平台USB控制器方案 1.2 USB 2.0 Host 1.3 USB 2.0 OTG 1.4 USB 2.0 PHY 1.5 USB OTG 3.0 1.6 TypeC PHY 2 硬件电路及信号 2.1 USB HOST控制器硬件电路
2022-11-30 09:07:49 1.62MB rockchip
1
福州瑞芯微电子有限公司内部资料,不得扩散密级状态:绝密( ) 秘密( ) 内部资料( ) 公开( √ )Rockchip TEE 安全 SDK 开发手册(软件创
2022-11-22 15:48:13 724KB
1
RK808开发指南,中文版 RK808 是一款高性能 PMIC,RK808 集成 4 个大电流 DCDC、8 个 LDO、2个开关SWITCH、1 个 RTC、可调上电时序等功能。 系统中各路电源总体分为两种:DCDC 和 LDO。两种电源的总体特性如下(详细资料请自行搜索): 1. DCDC:输入输出压差大时,效率高,但是存在纹波比较大的问题,成本高,所以大压差,大电流 负载时使用。一般有两种工作模式。PWM 模式:纹波瞬态响应好,效率低;PFM 模式:效率高, 但是负载能力差。 2. LDO:输入输出压差大时,效率低,成本低,为了提高 LDO 的转换效率,系统上会进行相关优化 如:LDO 输出电压为 1.1V,为了提高效率,其输入电压可以从 VCCIO_3.3V 的 DCDC 给出。所以 电路上如果允许尽量将 LDO 接到 DCDC 输出回路,但是要注意上电时序。
2022-11-02 23:11:32 1.07MB RK808 RK3399
1
RK3588开发资料(pdf文档),509MB,Rockchip Linux 开发指南
2022-10-27 16:11:50 509.6MB 嵌入式开发 Rockchip Linux
1
本文档主要介绍 Rockchip 的 RK805 的各个子模块。介绍相关概念、功能、 dts 配置和 一些常见问题的分析定位
2022-09-02 21:04:12 706KB 安卓驱动
1
ARM Cortex-M处理器系列具有灵活性、易用性、高性能、低功耗等特点。同时,Cortex-M处理器能够帮助开 发者以更低的成本提供更多的功能,其在代码重用和提高开发效率方面有显著优势,所以在嵌入式设备领域的应用 非常广泛。如下为Cortex-M0和Cortex-M3的基本简介。 Cortex-M0采用ARMv6-M结构,基于一个高集成度、低功耗的32位处理器内核;它采用冯·诺伊曼结构,基于 16位的Thumb指令集,并包含Thumb-2技术。 Cortex-M3采用ARMv7-M结构,为32位处理器内核。它采用哈佛结构,拥有独立的指令总线和数据总线,可 以让取指与数据访问并行不悖。 基于以上ARM Cortex-M优点,目前,Rockchip SoC上集成的MCU说明如下: RK3399 集成2个Cortex-M0,其一PMU M0为ATF所用,其二Perilp M0开放给客户使用
2022-09-02 19:00:44 437KB mcu
1