|  | 
 
| 做前面几个实验时,碰到几个问题,实在搞不明白,尤其是实验三存储器映射部分,感觉好困惑。问题如下: 
 1.实验二:
 leg_blink.s文件,如果我将最后一句"B loop"注释掉,生成的bin固化至flash,蜂鸣器会响,这是什么原因???
 2.能不能这样说:只要程序用c语言编写,那么一定要有bootloader,因为涉及到函数参数入栈出栈等问题???
 3.实验三:
 1) startup.s中RomEndAddr           EQU     &20 语句中&表示什么意思???
 2) ldr r0,=0x03FF5000和ldr r0,#0x03ff5000有什么区别?
 3) 存储器重映射没看懂,另外,为什么要进行重映射?
 4)
 RemapMemory
 ; ++++++++++++++++++++++++++++++++
 ldr        r1, =0x0002030                ; show led = 1110
 ldr        r0, =0x03FF5008
 str        r1, [r0]
 ; ++++++++++++++++++++++++++++++++
 
 adr        r0, RemapMemPara
 ldmia        r0, {r1-r11}
 ldr        r0, =ROMCON0
 stmia        r0, {r1-r11}
 ...
 上述四句话应该是保存r1-r11吧,可是这与存储器空间映射有什么关系呢?
 4.实验三:
 RemapMemPara
 DCD        &12040060
 DCD        &10842060
 DCD        &10842060
 DCD        &10842060
 DCD        &10842060
 DCD        &10842060
 DCD        &10000398
 DCD        &10040398
 DCD        &10040398
 DCD        &10040398
 DCD        &ce2983fd
 
 这些内存单元的值为什么是这样?有什么依据要这样设置?
 
 5.实验三:
 ldr        lr,        GotoMain
 b        RemapMemory
 
 GBLS        MainEntry
 MainEntry        SETS        "main"
 IMPORT        $MainEntry
 
 GotoMain        DCD        $MainEntry
 
 其中ldr lr,GotoMain语句是将GotoMain这个字内存单元地址赋给lr呢还是将GotoMain字内存单元中的值即$MainEntry赋给lr?
 
 呵呵,不好意思,一口气问了这么多问题!
 
 谢了先!
 | 
 |