Re: [問題] 請問仿真器是做甚麼的?
※ 引述《larkes (larkes)》之銘言:
: 謝謝你的指教,
: 不好意思可以順便問一下嗎?
: 1.假設user是透過ICE把程式載入到flash裡,
: 那user有辦法指定要載入到flash的哪個位置嗎?
應該可以吧,jtag只是一個信號介面,裡面要加上多少功能是廠商的事。
好比 uart上面要傳什麼資料都是 user自己的事情。
我剛剛隨手打開 STM32F4的 reference manual, 最後在 Debug support(DBG)
的部分列出了 JTAG要怎麼下命令讀取、寫入各 register。我相信各家 MCU/FPGA
都有自己的實作方法。
一般來說,操作這個 DBG是 IDE開發廠商的事情,因為只有他們知道生出來
的程式放進 flash後每一行對應的 memory address. 如果您有興趣自己
生個電路去操作,應該有辦法。
或是最簡單的,但我沒用過的方法,自己生個 .hex file出來,透過 jtag
的燒錄工具將 .hex 內容燒錄進特定位址。
: 2.如果user沒辦法指定話,
: 那程式會載入到flash的哪個位置呢?
: 直接無條件載入到flash的第0個位址嗎?
: 3.一旦載入到flash裡之後,
: 是不是要幫整個設備做重新開機的動作,
: processor才能執行剛剛下載的程式呢?
: 謝謝...
我猜是要對整個 chip,而非整個 system下 reset, 除非你的 chip跟system
上其他零件之間有另外事情要考量。
事實上我猜可以 hold住 cpu core, 更新一部份的程式,讓 cpu繼續跑下去。
但現在的程式幾乎都交給 compiler去製造出來,除非你能確認程式碼可以
這樣無縫接軌,不然會出問題。而就算你做到了,我現在想不出這樣做的
好處是什麼,所以還是更新程式後整個 reset吧 :)
對了,考量到一般的 flash memory在寫入一個byte之前要先 erase一大片,
例如 256 bytes, 這可能會讓您想作的事情變得很複雜?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.221.214
推
08/31 12:18, , 1F
08/31 12:18, 1F
討論串 (同標題文章)