From 22a4bdde0149f7f920a973f465ddb4c0176ae894 Mon Sep 17 00:00:00 2001 From: kuangyufei Date: Wed, 25 May 2022 10:33:19 +0800 Subject: [PATCH] =?UTF-8?q?=20=E5=AE=8C=E5=96=84=E9=93=BE=E6=8E=A5?= =?UTF-8?q?=E8=84=9A=E6=9C=AC=E7=9A=84=E6=B3=A8=E8=A7=A3=20=20=20=20=20?= =?UTF-8?q?=E7=99=BE=E5=9B=BE=E7=94=BB=E9=B8=BF=E8=92=99=20+=20=E7=99=BE?= =?UTF-8?q?=E6=96=87=E8=AF=B4=E5=86=85=E6=A0=B8=20+=20=E7=99=BE=E4=B8=87?= =?UTF-8?q?=E6=B3=A8=E6=BA=90=E7=A0=81=20=20=3D>=20=E6=8C=96=E9=80=8F?= =?UTF-8?q?=E9=B8=BF=E8=92=99=E5=86=85=E6=A0=B8=E6=BA=90=E7=A0=81=20=20=20?= =?UTF-8?q?=20=20=E9=B8=BF=E8=92=99=E7=A0=94=E7=A9=B6=E7=AB=99=20|=20http:?= =?UTF-8?q?//weharmonyos.com=20(=E5=9B=BD=E5=86=85)=20=20=20=20=20=20=20?= =?UTF-8?q?=20=20=20=20=20=20=20=20|=20https://weharmony.github.io=20(?= =?UTF-8?q?=E5=9B=BD=E5=A4=96)=20=20=20=20=20oschina=20|=20https://my.osch?= =?UTF-8?q?ina.net/weharmony=20=20=20=20=20=E5=8D=9A=E5=AE=A2=E5=9B=AD=20|?= =?UTF-8?q?=20https://www.cnblogs.com/weharmony/=20=20=20=20=20=E7=9F=A5?= =?UTF-8?q?=E4=B9=8E=20|=20https://www.zhihu.com/people/weharmonyos=20=20?= =?UTF-8?q?=20=20=20csdn=20|=20https://blog.csdn.net/kuangyufei=20=20=20?= =?UTF-8?q?=20=2051cto=20|=20https://harmonyos.51cto.com/column/34=20=20?= =?UTF-8?q?=20=20=20=E6=8E=98=E9=87=91=20|=20https://juejin.cn/user/756888?= =?UTF-8?q?642000808=20=20=20=20=20=E5=85=AC=E4=BC=97=E5=8F=B7=20|=20?= =?UTF-8?q?=E9=B8=BF=E8=92=99=E7=A0=94=E7=A9=B6=E7=AB=99=20(weharmonyos)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- platform/board.ld.S | 8 ++++---- tools/build/liteos.ld | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/platform/board.ld.S b/platform/board.ld.S index 5576df7d..e7a9b71d 100644 --- a/platform/board.ld.S +++ b/platform/board.ld.S @@ -84,9 +84,9 @@ OUTPUT_ARCH(arm) MEMORY //链接器的默认配置允许分配所有可用内存,描述链接器可以使用哪些内存区域 { //ram,sram为存储区域的名字,可以随意取 - ram : ORIGIN = KERNEL_VADDR_BASE, LENGTH = KERNEL_VADDR_SIZE //用户空间范围 + ram : ORIGIN = KERNEL_VADDR_BASE, LENGTH = KERNEL_VADDR_SIZE //内核运行空间范围 sram : ORIGIN = 0x40000000, LENGTH = 0x1000 - user_ram : ORIGIN = 0x1000000, LENGTH = 0x100000 //用户空间内存范围 USER_ASPACE_BASE ,此大小不是真正最后映射到用户空间的大小 + user_ram : ORIGIN = 0x1000000, LENGTH = 0x100000 //用户运行空间范围 USER_ASPACE_BASE ,此大小不是真正最后映射到用户空间的大小 } SECTIONS { @@ -95,8 +95,8 @@ SECTIONS .ram_vectors TEXT_BASE : { //内核代码段开始位置 __ram_vectors_vma = .; //定位到当前位置,即TEXT_BASE处 KEEP (*(.vectors)) //告诉链接器 强制保留所有输入文件中的 .vectors 节 - } > ram - __ram_vectors_lma = LOADADDR(.ram_vectors);//加载地址和链接地址一致,说明内核设计者希望从加载地址处运行指令 + } > ram //中断向量是开机代码的位置 , 可翻看 鸿蒙内核源码分析(开机启动篇) 和 (中断管理篇) + __ram_vectors_lma = LOADADDR(.ram_vectors);//启动时对向量的初始化,加载地址和链接地址一致,说明内核设计者希望从加载地址处运行指令 } //LMA:加载存储地址,指加载到存储器的地址,即加载或烧写到哪里 //VMA:虚拟存储地址,也就是链接地址,即代码和数据运行的时候应在哪里 diff --git a/tools/build/liteos.ld b/tools/build/liteos.ld index 908c600f..3cde1ffe 100644 --- a/tools/build/liteos.ld +++ b/tools/build/liteos.ld @@ -34,7 +34,7 @@ GNU 链接脚本语法 https://sourceware.org/binutils/docs/ld/LD-Index.html */ ENTRY(reset_vector) /*指定程序入口地址*/ -INCLUDE board.ld // > ram 指的是要大于 ram这个地址, ram在board.ld中定义 +INCLUDE board.ld // > ram 指放入ram这个地址范围中, ram在board.ld中定义 /* SECTIONS 是脚本中最重要的命令,所有的LD脚本都会有这个命令,用来指定如何将输入文件映射到输出文件等等 */ SECTIONS { -- GitLab