1.4.1 段的概念_重定位的引入

2023-11-01 135浏览
百检网是一家专业的第三方检测平台,汇聚众多拥有权威资质的第三方检测机构为你提供一站式的检测服务,做检测就上百检网。百检网让检测从此检测,一份报告全国通用,专业值得信赖。

2440外接有SDRAM,Nor Flash,Nand Flash(通过Nand Flash控制,CPU可以直接控制SRAM,SDRAM,Nor Flash,但不能直接控制Nand),同时内部还有4K的SRAM(Nor启动时,起始位置为0x4000,0000;Nand启动时,起始位置为0)。

使用Nand启动时,不可访问Nor,因为Nor的片选接到了nGCS0。另外,Nor可以像内存一样读,但不可以像内存一样写,这是由Nor的物理结构决定的

使用Nand启动时,前4K的代码会由硬件复制到SRAM中,程序也会从地址0即SRAM中开始执行,这样做可以保证程序正常启动(Steppingstone,垫脚石),但如果程序超过4K,则需要用这前4K的代码将整个程序读出放到SDRAM中(重定位),否则程序无法正常运行。

一个程序,主要含有代码段和数据段。

代码段(code):text

数据段(rwdata):含初值的全局变量和静态变量

只读数据段(rodata):被const修饰的全局变量

未初始化数据段(bss段,(Block Started by Symbol)):未赋初值的全局变量和静态变量(不保存在bin中,我们程序里面将它清零即可)

除了这些,还有一个comment段,里面是一些注释信息,如下图,474343为ASCII的GCC。


百检网秉承“客户至上,服务为先,精诚合作,以人为本”的经营理念,始终站在用户的角度解决问题,为客户提供“一站购物式”的新奇检测体验,打开网站,像挑选商品一样简单,方便。打破行业信息壁垒,建构消费和检测机构之间高效的沟通平台