![](http://uphotos.eepw.com.cn//thumb/avatar.jpg)
多谢了先!
真是好文章,看了两天,终于理解了remap的过程,继续理解init.s中~~~~~~~
不过,我从网上下的4510bsp中的init.s是做完映射之后才进行RW段copy,并且也没有把RO段copy到SDRAM中去。
敢问twentyone
1、是否没有必要进行RO段的copy呢?
2、在我所看的这个init.s中,进行RW段copy的时候,RW段是否仍在flash中?(你提供的由于之前已经搬过一回,所以在ram中了)
再次表示感谢,请有时间帮忙解惑。
部分源代码如下:
SYNC_DRAM_CONFIGURATION
LDR r0, =0x3FF0000
LDR r1, =0x83FFFF90 ; SetValue = 0x83FFFF91
STR r1, [r0] ; Cache,WB disable
; Start_addr = 0x3FF00000
;ROM and RAM Configuration(Multiple Load and Store)
ADRL r0, SystemInitDataSDRAM
LDMIA r0, {r1-r12}
LDR r0, =0x3FF0000 + 0x3010 ; ROMCntr Offset : 0x3010
STMIA r0, {r1-r12}
;=============================
; Exception Vector Table Setup
;=====================================
; Initialise memory required by C code
;=====================================
IMPORT |Image$$RO$$Limit| ; End of ROM code (=start of RAM data)
IMPORT |Image$$RW$$Base| ; Base of RAM to initialise
IMPORT |Image$$ZI$$Base| ; Base and limit of area
IMPORT |Image$$ZI$$Limit| ; to zero initialise
LDR r0, =|Image$$RO$$Limit| ; Get pointer to RAM data
LDR r1, =|Image$$RW$$Base| ; and RAM copy
LDR r3, =|Image$$ZI$$Base| ; Zero init base => top of initialised data
CMP r0, r1 ; Check that they are different
BEQ %1
0 CMP r1, r3 ; Copy init data
LDRCC r2, [r0], #4
STRCC r2, [r1], #4
BCC %0
1 LDR r1, =|Image$$ZI$$Limit| ; Top of zero init segment
MOV r2, #0
2 CMP r3, r1 ; Zero init
STRCC r2, [r3], #4
BCC %2
[em06][em06][em06][em06]
回复
有奖活动 | |
---|---|
5月直播——【探索边缘智能的未来——直播盛宴即将开启!】 | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
【有奖活动】智能可穿戴设备AR/VR如何引领科技新潮流! | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 |
打赏帖 | |
---|---|
换逻辑分析仪_STM32F103认识串口F103相关的知识认识被打赏18分 | |
“DFRobot盖革计数器模块评测”了解电离辐射对人体的危害被打赏8分 | |
“DFRobot盖革计数器模块评测”了解盖革计数器和电离辐射危害被打赏18分 | |
换逻辑分析仪_STM32F103_HAL库PWM呼吸灯被打赏23分 | |
换逻辑分析仪_STM32F103_(寄存器)PWM呼吸灯被打赏20分 | |
换逻辑分析仪STM32F103HAL库定时器被打赏13分 | |
换逻辑分析仪_STM32F103_(HAL库)驱动GPIO操作,点亮LED被打赏13分 | |
【分享评测,赢取加热台】+拆解一个儿童的python编程主控板被打赏20分 | |
【分享评测,赢取加热台】+拆解一个共享充电宝被打赏20分 | |
【换取手持数字示波器】+自制的STC无线调试器被打赏17分 |