1 函数的地址,如果是thumb的,最低位会有个1.
2 前面有人汇编分析错误 LDR R1,[R2,#2] 是把R2当指针,+2后指向的地址取数,而不是R2+2=R4去取数。
3 无论指针里面的数是奇数还是偶数,最终生成的都是LDR R1,[R2] 这样的指令,R2为奇数的时候比如0x11223345,如果不发生fault的话,取到的数应该是 (0x11223344 &~0x04)地址的数。很多年前用44B0开发板的时候碰到过类似问题,扩展的RAM的低两位根本就不接。所以后面如果和文件一致的结构体,要么用char*指针,要么pack。
|