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