問(wèn)題
調(diào)試時(shí)在代碼中對(duì)Flash進(jìn)行寫操作時(shí)(比如Bootloader對(duì)Code Flash進(jìn)行升級(jí)操作,Application對(duì)Data Flash進(jìn)行寫操作),Memory窗口中Flash內(nèi)容不更新。
原因
正常情況下,F(xiàn)lash對(duì)應(yīng)Memory區(qū)域在ddf(device description file)文件中的AccType是R,表示調(diào)試器對(duì)Flash只讀,不能修改Flash的內(nèi)容:
Memory Configuration窗口中(Memory Configuration窗口可以通過(guò)對(duì)應(yīng)的仿真器 > Memory Configuration打開(kāi))Flash默認(rèn)Type是Read only,,對(duì)應(yīng)的Cache Type是ROM/Flash:
對(duì)于Cache Type是ROM/Flash的Memory區(qū)域,調(diào)試器會(huì)認(rèn)為對(duì)應(yīng)Memory區(qū)域的值在調(diào)試過(guò)程中不會(huì)改變,所以調(diào)試器在調(diào)試過(guò)程中不會(huì)去更新對(duì)應(yīng)Memory區(qū)域的值,導(dǎo)致即使對(duì)應(yīng)Memory區(qū)域的值實(shí)際已經(jīng)更新了,但是Memory窗口中的值卻沒(méi)有更新:
解決辦法
前面介紹了造成調(diào)試時(shí)Memory窗口中內(nèi)容不更新的原因是因?yàn)閷?duì)應(yīng)Memory區(qū)域的Cache Type是ROM/Flash,而Cache Type是ROM/Flash是因?yàn)閐df文件里面對(duì)應(yīng)Memory區(qū)域的AccType是R,下面介紹對(duì)應(yīng)的解決方法:
1.Disable Debugger Cache
使能Disable Debugger Cache(Disable Debugger Cache菜單可以通過(guò)對(duì)應(yīng)的仿真器 > Disable Debugger Cache使能)之后,調(diào)試器將不會(huì)使用cache,所有的訪問(wèn)都會(huì)映射到目標(biāo)系統(tǒng):
2. 修改Flash對(duì)應(yīng)Memory區(qū)域的Cache Type為RAM
需要在Memory Configuration窗口中將對(duì)應(yīng)Flash對(duì)應(yīng)Memory區(qū)域的Cache Type改成RAM(選中對(duì)應(yīng)Memory區(qū)域,點(diǎn)擊Edit,在Edit Memory Range窗口中選擇Cache Type為RAM),這樣調(diào)試器就會(huì)認(rèn)為對(duì)應(yīng)Memory區(qū)域的值在調(diào)試過(guò)程中會(huì)改變,從而會(huì)去讀取目標(biāo)系統(tǒng)對(duì)應(yīng)Memory區(qū)域,在Memory窗口中更新對(duì)應(yīng)Memory區(qū)域的值:
3. 修改ddf文件中Flash對(duì)應(yīng)Memory區(qū)域的AccType為RW
在IAR安裝目錄armconfigdebugger下找到對(duì)應(yīng)ddf文件,然后修改Flash對(duì)應(yīng)Memory區(qū)域的AccType為RW。修改之后重新打開(kāi)IDE,對(duì)應(yīng)Memory Configuration窗口會(huì)加載更新的ddf文件:
-
FlaSh
+關(guān)注
關(guān)注
10文章
1662瀏覽量
150963 -
調(diào)試
+關(guān)注
關(guān)注
7文章
604瀏覽量
34513 -
Memory
+關(guān)注
關(guān)注
1文章
79瀏覽量
29565 -
代碼
+關(guān)注
關(guān)注
30文章
4886瀏覽量
70240
原文標(biāo)題:調(diào)試時(shí)Memory窗口中Flash內(nèi)容不更新
文章出處:【微信號(hào):IAR愛(ài)亞系統(tǒng),微信公眾號(hào):IAR愛(ài)亞系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
MDK調(diào)試時(shí)出現(xiàn)MEMORY MISMATCH錯(cuò)誤的原因及解決方法
如何在調(diào)試時(shí)查看Flash中的內(nèi)容
蜂鳴器不響原因以及解決辦法
Keil導(dǎo)出memory窗口內(nèi)容方式
STM32燒錄出現(xiàn)The core is locked up的原因及解決辦法
音箱沒(méi)聲音的原因和解決辦法
汽車空調(diào)不制冷的十種原因及解決辦法
電梯IP五方對(duì)講的問(wèn)題和解決辦法的介紹
電感嘯叫的原因和解決辦法

評(píng)論