最近有客戶反饋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文章
7525瀏覽量
164162 -
SoC芯片
+關(guān)注
關(guān)注
1文章
616瀏覽量
34989 -
Flash模塊
+關(guān)注
關(guān)注
0文章
4瀏覽量
6105 -
RISC-V
+關(guān)注
關(guān)注
45文章
2317瀏覽量
46355
原文標(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)先 登錄
相關(guān)推薦
評(píng)論