Re: [問題] 請問仿真器是做甚麼的?

看板Electronics作者 ( )時間12年前 (2013/08/29 15:14), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串5/5 (看更多)
※ 引述《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
文章代碼(AID): #1I7lJ7NQ (Electronics)
討論串 (同標題文章)
文章代碼(AID): #1I7lJ7NQ (Electronics)