最近有客戶反饋Ti60F100如果用片內(nèi)flash啟動(dòng)RISCV 程序不能成功。所以才有此篇。
(1)Ti60F100內(nèi)部是一個(gè)16Mbit的flash,每個(gè)地址對(duì)應(yīng)的是一個(gè)8位的數(shù)據(jù),所以,地址范圍是0x000000~0x200000。
所以默認(rèn)生成的demo的soc從falsh的加載地址是0x380000已經(jīng)超出了flash的范圍,當(dāng)然也就不可能加載成功了。
所以第一步就是要修改RISCV從flash的啟動(dòng)地址。通過(guò)Efinity RISC-V IDE打開(kāi)bootloaderConfig.h文件,宏定義#define USER_SOFTWARE_FLASH 0x880000就是定義從flash的啟動(dòng)地址。
我們這里修改0x180000,因?yàn)槲覀兊腁PP程序是很小,保證了不會(huì)超出flash的存儲(chǔ)范圍。
編譯bootloader工程生成hex文件,然后在sapphire IP里面添加相應(yīng)的文件,新版本的IDE支持直接添加bootloader hex文件到工程中,如下圖,勾選Overwrite the default SPI bootloader with the user application.然后在Browse中添加相應(yīng)的bootloader.hex文件,生成IP即可。
那是否就可以用了呢?其實(shí)不是,還需要按照下面的文章進(jìn)行修改,以保證RISC V對(duì)flash的讀寫(xiě)正確。
Ti60F100 Flash處理方案 (qq.com)
之后重新編譯工程,并合成文件。
下載程序,加載成功。
(2)修改APP在外部存儲(chǔ)的空間大小。
如果APP程序比較大,需要修改APP在外部存儲(chǔ)器的分配空間,如下圖,默認(rèn)是124K,根據(jù)需要來(lái)修改,下圖我們修改成了1MB.
編譯程序的結(jié)果如下
但是要注意生成過(guò)程要勾選上external_script_embedded_sw選項(xiàng),生成的embedded_sw文件才會(huì)更新,但是要注意會(huì)覆蓋之前修改的信息,所以這是需要注意的。
審核編輯:劉清
-
存儲(chǔ)器
+關(guān)注
關(guān)注
38文章
7643瀏覽量
166799 -
SoC芯片
+關(guān)注
關(guān)注
1文章
640瀏覽量
35733 -
Flash模塊
+關(guān)注
關(guān)注
0文章
4瀏覽量
6167 -
RISC-V
+關(guān)注
關(guān)注
46文章
2524瀏覽量
48483
原文標(biāo)題:Ti60F100 RISCV 從flash不能啟動(dòng)解決方案
文章出處:【微信號(hào):gh_ea2445df5d2a,微信公眾號(hào):FPGA及視頻處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
Ti60F100 內(nèi)外flash操作方案

采用易靈思Ti60F100的Ti60F100I3評(píng)估板詳解

如何編寫(xiě)C2000片內(nèi)Flash?
奇怪的zigbee組網(wǎng)不成功 請(qǐng)問(wèn)有什么解決辦法?
DSP端的程序就不能成功啟動(dòng)是什么原因?
LPC4370怎樣才能在flash啟動(dòng)后,又能成功讀寫(xiě)flash?
F103的片內(nèi)FLASH不能用DFS?
開(kāi)機(jī)allegro不能正常啟動(dòng)解決辦法(1)
Access數(shù)據(jù)庫(kù)不能寫(xiě)問(wèn)題解決辦法

STM32F103 庫(kù)函數(shù)寫(xiě)外部中斷時(shí)程序卡死,追蹤運(yùn)行卡死在啟動(dòng)文件.s的 B.中解決辦法,實(shí)測(cè)OK,供參考

易靈思Ti60F100驅(qū)動(dòng)LCD屏案例

評(píng)論