在使用C2000MCU產(chǎn)品的時(shí)候,有可能會(huì)碰到仿真器連上目標(biāo)板以后報(bào)“flash is not available on this device”,詳細(xì)報(bào)錯(cuò)信息如下,而事實(shí)上芯片本身是有Flash的。
C28xx_CPU1: GEL Output:
C28xx_CPU1: GEL Output:
Memory Map Initialization Complete
C28xx_CPU1: GEL Output: ... DCSM Initialization Start ...
C28xx_CPU1: GEL Output: ... DCSM Initialization Done ...
C28xx_CPU1: Error initializing flash programming: Interface returned from dll, but flash is not available on this device.
這時(shí)針對(duì)芯片F(xiàn)lash的所有操作(擦除,編程,校驗(yàn),讀?。┒紩?huì)報(bào)圖一所示錯(cuò)誤。
圖一
出現(xiàn)這種情況的原因可能是芯片F(xiàn)lash的代碼不完整或者有錯(cuò)誤,導(dǎo)致CPU工作不正常。雖然能連上仿真器,但仿真器讀取到的芯片信息可能會(huì)出錯(cuò),從而導(dǎo)致上面的報(bào)錯(cuò)。
如果沒(méi)有有效辦法去解決這個(gè)錯(cuò)誤,則針對(duì)芯片F(xiàn)lash的所有操作都無(wú)效,只有換芯片才能讓板子正常工作。
本文將以C2000 F28002x系列及CCS11為例,介紹針對(duì)“flash is not available on this device”問(wèn)題的兩種解決方案。其它C2000系列芯片如F28003x/F28004x/F2837x/F2838x遇到這個(gè)問(wèn)題,也可以使用本文方法來(lái)解決。
方法一:更改引導(dǎo)模式。
如圖二所示,將引導(dǎo)模式管腳跳線為Wait Boot Mode, 這樣上電時(shí)CPU會(huì)停留在芯片內(nèi)部自帶的BOOT ROM區(qū),而不會(huì)進(jìn)入到用戶自己的Flash代碼。
圖二
這時(shí)連上仿真器,可以正常讀取芯片信息,不會(huì)報(bào)之前的錯(cuò)誤,接下來(lái)如圖三所示,我們通過(guò)“ToolsàOn-Chip Flash”,在“Erase Settings”里面選擇“Entire Flash”,然后點(diǎn)擊“Erase Flash”把芯片整個(gè)Flash 擦除掉,此時(shí)芯片將變成空片。
圖三
方法二:更改XML文件。
第一步:生成CCS logs 文件。
1a. 如圖四所示,點(diǎn)擊 “Help”,然后選擇 “CCS Support”。
圖四
1b. 如圖五所示,選擇“Debug Server Log”,然后點(diǎn)擊“Properties”。
圖五
1c. 如圖六所示,勾上“Enable Debug Server Logging”,然后選擇存儲(chǔ)log 文件路徑并命名,例如命名為test.log,然后點(diǎn)擊OK。
圖六
1d.啟動(dòng)CCS 仿真, 這時(shí)將生成log文件。
1f.用CCS 或者文本編輯器打開(kāi)log 文件,如圖七所示,查找Device ID, 把這個(gè)ID 號(hào)記下來(lái),如(0x771923)。
圖七
第二步:更改xml 文件。
2a. 在下面路徑下找到TMS320F28002x.xml 文件。建議先備份好這個(gè)文件,后面需要用到這個(gè)備份文件。
C:\ti\ccs1100\ccs\ccs_base\c2000\nowFlash\configs
2b.用文本編輯器或者CCS打開(kāi)TMS320F28002x.xml文件, 如圖八所示,查找DeviceId,,將1f步驟里面記錄下來(lái)的Device ID 號(hào)替換TMS320F28002x.xml文件里的DeviceId值。也就是將0x771973改成0x771923。然后保存更改并關(guān)閉CCS(記得一定要關(guān)閉CCS,因?yàn)閤ml更改只有在下一次CCS啟動(dòng)時(shí)才會(huì)生效)。
圖八
第三步:?jiǎn)?dòng)CCS,進(jìn)入仿真界面。
這時(shí)CCS不再報(bào)之前的錯(cuò)誤, Flash 可以正常操作了。接下來(lái)我們通過(guò)“ToolsàOn-Chip Flash”,在“Erase Settings”里面選擇“Entire Flash”,然后點(diǎn)擊“Erase Flash”把芯片整個(gè)FLASH 擦除掉,此時(shí)芯片將變成空片。
第四步:恢復(fù)xml 文件。
可以將2a步驟里備份的TMS320F28002x.xml文件恢復(fù),或者把現(xiàn)有TMS320F28002x.xml 里的DeviceId 從0x771923改回0x771973。
至此,芯片已經(jīng)可以正常操作Flash 了, 問(wèn)題得到解決。相比第一種方法,第二種方法的好處在于不需要硬件跳線, 對(duì)于客戶實(shí)際操作來(lái)說(shuō)會(huì)更加便捷。另外,如果第一種方法無(wú)效的話,也可以嘗試第二種方法。
審核編輯:湯梓紅
-
mcu
+關(guān)注
關(guān)注
146文章
17123瀏覽量
350978 -
FlaSh
+關(guān)注
關(guān)注
10文章
1633瀏覽量
147939 -
仿真器
+關(guān)注
關(guān)注
14文章
1017瀏覽量
83721 -
C2000
+關(guān)注
關(guān)注
5文章
206瀏覽量
40261
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論