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

評論