推 wei115: 感謝,我其實看的就是這篇文章,不過我對搬移的地方不太明 05/21 14:10
→ wei115: 白,所以才上來問 05/21 14:10
→ godspeedlee: 總之那些已經有初始變數的一定會從ROM搬移過去 05/21 14:27
→ godspeedlee: 如果是const,就留在ROM裡,但如果是SPI Flash 05/21 14:27
→ godspeedlee: 通常還是得通通搬移到RAM裡 05/21 14:28
推 wei115: 這我知道,但實際上是怎麼做的,程式怎麼寫的,感覺還是 05/21 19:07
→ wei115: 很模糊 05/21 19:07
→ wei115: 像如果我把一個函式複製到了RAM上,然後我再呼叫這個函數 05/21 19:10
→ wei115: ,那程式要怎麼知道要執行ROM上的函式還是RAM上的函式? 05/21 19:10
推 supertitler: linking就決定了 region的初始化是compiler幫你處理 05/21 19:39
→ supertitler: 的 用keil的話regionTable裡面也有link各種初始函 05/21 19:39
→ supertitler: 式 可以去找找看 05/21 19:39
→ godspeedlee: 看來你缺少relocation的概念 05/22 12:14
→ godspeedlee: 你的問題可以把PC值dump出來就清楚了 05/22 12:15
→ godspeedlee: keil編譯完有個.map,不知道你看過沒? 05/22 12:22
→ wei115: 感謝回覆,我是用jserv課程的gnu工具,沒用過keil.....然 05/23 01:08
→ wei115: 後我想我還是缺少了某些概念,讓我的思考一直鬼打牆,我 05/23 01:08
→ wei115: 還是再去研究看看目標文件的結構好了....如果有什麼推薦 05/23 01:08
→ wei115: 的資料或關鍵字的話,還請大大不吝提供,謝謝^_^ 05/23 01:08
→ godspeedlee: 這本可以找來看看 05/23 16:12
→ godspeedlee: 相較於keil,gnu很多要自己來,理論上觀念應該要比用 05/23 16:13
→ godspeedlee: keil的人清楚... 05/23 16:13
→ godspeedlee: 你可以去找一下系統程式的教科書,或者嘗試自己寫一個 05/23 16:15
→ godspeedlee: elf loader,對了解這個問題應該有幫助 05/23 16:15