作者proach ( )
看板Electronics
标题Re: [问题] 请问仿真器是做甚麽的?
时间Thu Aug 29 15:14:12 2013
※ 引述《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
1F:推 larkes:我收到了~谢谢喔^^ 08/31 12:18