[問題] 程式載入記憶體問題

看板ASM (組合語言)作者 (ㄎㄎ)時間6年前 (2018/05/20 15:46), 6年前編輯推噓1(104)
留言5則, 2人參與, 6年前最新討論串1/4 (看更多)
在沒有作業系統的裝置上(我用的是STM32F104) 假使我的程式指令放在只讀的ROM上 那我在執行時,要怎麼 把可讀可寫的變數和堆疊丟到RAM上? 看了一些資料,好像寫連結腳本可以解決? 但想想不是阿,連結腳本只是指定哪些資料要放在ROM上,哪些資料要放在RAM上 他沒有實際把資料作搬移的工作 開機時會要把函式丟到記憶體上並設定堆疊暫存器(以便函式呼叫) 並且要把可讀可寫的區段搬移到記憶體上 所以編譯器有加入實際搬移的code?讓我在我的程式執行前做好這些工作? 有沒有相關資料或關鍵字可供參考,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.138.184.87 ※ 文章網址: https://www.ptt.cc/bbs/ASM/M.1526802367.A.F87.html ※ 編輯: wei115 (101.138.184.87), 05/20/2018 15:47:18

05/20 16:46, 6年前 , 1F
你是想要知道boot.s的流程嗎
05/20 16:46, 1F

05/20 16:46, 6年前 , 2F
初始化記憶體 設定堆疊 搬code這些?
05/20 16:46, 2F

05/20 17:03, 6年前 , 3F
應該是,但不像boot那麼完整(?),像是如果我寫一個閃燈
05/20 17:03, 3F

05/20 17:03, 6年前 , 4F
的小程式,他的堆疊設定和變數的放置之類的
05/20 17:03, 4F

05/20 17:04, 6年前 , 5F
雖然這裡是asm版,但如果可以盡量是C語言的
05/20 17:04, 5F
文章代碼(AID): #1R0IU_-7 (ASM)
文章代碼(AID): #1R0IU_-7 (ASM)