加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

启动代码关于norflash、nandflash拷贝/开发环境基地址/RO段、RW

发布时间:2020-12-15 18:15:15 所属栏目:百科 来源:网络整理
导读:软件开发环境:keil4 硬件开发平台:mini2440 启动代码参考:《ARM处理器裸机开发实战》TQ2440启动代码 1.软件开发环境加载域、执行域总结 norflash启动? ? ?? 首先看下图: ? ?? ? ?如为上图所示设置,表明RO段基地址为0x0,RW的基地址0x30000000,则表明RO

软件开发环境:keil4

硬件开发平台:mini2440

启动代码参考:《ARM处理器裸机开发实战》TQ2440启动代码


1.软件开发环境加载域、执行域总结

norflash启动?

? ??首先看下图:

? ??


? ?如为上图所示设置,表明RO段基地址为0x0,RW的基地址0x30000000,则表明RO段在Norflash中执行,取指令也会涉及到norflash的数据读取,

但是RW段将会在SDRAM中保持和更新,程序执行速度应该比较慢。

? ?注意:1)从这里配置的话,RO段会被当成固定域,RO段的加载域和执行域的起始地址必须相同。

? ? ? ? ? ? ? ?2)RW段加载域紧跟在RO段之后,所以启动代码必须实现RW段从norflash到SDRAM的拷贝。

? ? ? ? ? ? ? ?3)RO的加载域和执行域都在norflash中,RW的加载域在norflash中,执行域在SDRAM中。


? ? 如为上图所示设置,表明RO段和RW段加载域和执行域均在SDRAM中,指令预取也会从SDRAM中取,程序在SDRAM中执行,程序的执行速度应该较快。

? ? 注意:1)启动代码中必须实现RO段和RW段从norflash到SDRAM的拷贝。

? ? ? ? ? ? ? ? 2)启动代码中的程序必须实现代码无关性,最后在跳转到绝对地址处(SDRAM中)执行。

? ? ? ? ? ? ? ? 3)RO和RW的加载域和执行域均在SDRAM中。

? ? ? ? ? ? ? ? 4)startup处打钩并不表示程序一开始就从0x30000000处执行,那是用于提示中断入口地址的。

? ? ? ? ? ? ? ? 5)程序已开始肯定是从绝对地址0x0开始执行的,这是硬件的硬性规定。


NANDFLASH启动

? ? 同上,我不再截图。

? ? 第一种情况,0x0地址作为RO的加载域和执行域基地址,即RO段在S3C2440内部SRAM中,那就必须保证你的代码段+只读数据段<4k。

? ? 注意:1)必须保证你的代码段+只读数据段<4k。

? ? ? ? ? ? ? ? 2)RO加载域和执行域均在内部SRAM中,作为固定域,RW加载域和执行域均在SDRAM中。

? ? ? ? ? ? ? ? 3)启动代码中必须实现RW段从NANDFLASH到SDRAM中的拷贝。

? ? ? ? ? ? ? ? 4)貌似不常用。

? ? 第二种情况,从0x30000000地址作为RO加载域和执行域的基地址,即RO和RW段加载域和执行域均在SDRAM中。

? ? 注意:1)RO和RW段加载域和执行域均在SDRAM中。

? ? ? ? ? ? ? ? 2)启动代码中必须实现将RO段和RW段从NANDFLASH拷贝至SDRAM的代码。

? ? ? ? ? ? ? ? ? ? ? ?一般来说,实现如下:首先将NANDFLASH中所有数据和代码拷贝至SDRAM,再根据RO和RW基

? ? ? ? ? ? ? ? ? ? ? ?地址,在SDRAM内部实现加载域到执行域的拷贝。

? ? ? ? ? ? ? ? 3)程序已开始肯定是从绝对地址0x0开始执行的,这是硬件的硬性规定。

? ? ? ? ? ? ? ? 4)启动代码中的程序必须实现代码无关性,最后在跳转到绝对地址处(SDRAM中)执行。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读