ARM-CortexM0固件中函數實際在Flash中的存儲地址與調用地址(引用地址)不一致

ARM-CortexM0實際項目中發現, Keil編譯後函數的實際存放地址是按4字節對齊的, 函數的起始地址爲偶數. 但仿真時發現調用函數時往PC寄存器寫入的都是奇數(函數實際存放地址 + 1)。爲了驗證, 寫了一段函數, 執行的操作是以函數名的方式將函數地址給一個變量, 查看變量的值,仿真截圖如下: 發現我們如果如上面的代碼一樣引用這個函數地址的時候, 傳遞過來的地址也是函數的實際存放地址+1.
相關文章
相關標籤/搜索