(原創)Quartus硬件工程路徑改變,nios工程該怎么辦?


操作系統:Win7 64 bit

開發環境:Quartus II 12.0 (64-Bit)  + Nios II 12.0 Software Build Tools for Eclipse

使用Quartus 時,有時候出於備份的考慮,或者從網上下載別人的硬件工程, 硬件工程目錄會改變,導致NIOS工程不能找到sopcinfo文件,從而不能進行下一步軟件開發。比較笨重的方法是新建一個NIOS工程,然后將原始的NIOS工程源文件添加到這個新工程中。這樣的做法比較繁瑣,而且新建的新工程需要重新編譯BSP工程,帶來不必要的麻煩。比較這里介紹一種較為簡單的方法。

例如:

原始硬件工程目錄(sopcinfo文件所在目錄)
D:\_prj\Altera\DE2_70_NIOS_VGA\

NIOS工程目錄
D:\_prj\Altera\DE2_70_NIOS_VGA\Software

 

修改之后的:

新的硬件工程目錄(新sopcinfo文件所在目錄)
E:\_prjbak\Altera\DE2_70_NIOS_VGA\
新的NIOS工程目錄 E:\_prjbak\Altera\DE2_70_NIOS_VGA\Software

 

 1、發現問題

啟動NIOS ECLIPSE,將workspace切換到新的NIOS工程目錄下,即E:\_prjbak\Altera\DE2_70_NIOS_VGA\Software。這個時候,如果直接編譯原工程,會提示找不到sopcinfo文件:

make all 
Info: Building ../VGA_bsp/
make --no-print-directory -C ../VGA_bsp/
makefile:580: Warning: SOPC File D:\_prj\Altera\DE2_70_NIOS_VGA\DE2_70_SOPC.sopcinfo could not be found. 
[BSP build complete]
[VGA build complete]

這個時候,如果查看bsp信息,會提示bsp找不到sopcinfo文件和sopc設計,CPU之類的信息同樣不會找到了

 

 

 2、解決問題

打開bsp工程的settings.bsp文件,這是一個xml格式的配置文件。發現BspGeneratedLocation節點和SopcDesignFile節點分別所指示的BSP生成路徑和SOPC設計文件路徑均是原有軟件工程路徑和硬件工程路徑:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <sch:Settings xmlns:sch="http://www.altera.com/embeddedsw/bsp/schema">
 3         <BspType>hal</BspType>
 4         <BspVersion>default</BspVersion>
 5         <BspGeneratedTimeStamp>2013-4-22 10:52:05</BspGeneratedTimeStamp>
 6         <BspGeneratedUnixTimeStamp>1366599125093</BspGeneratedUnixTimeStamp>
 7         <BspGeneratedLocation>D:\_prj\Altera\DE2_70_NIOS_VGA\Software\VGA_bsp</BspGeneratedLocation>
 8         <BspSettingsFile>settings.bsp</BspSettingsFile>
 9         <SopcDesignFile>D:\_prj\Altera\DE2_70_NIOS_VGA\DE2_70_SOPC.sopcinfo</SopcDesignFile>
10         <JdiFile>default</JdiFile>
11         <Cpu>cpu</Cpu>
12         <SchemaVersion>1.9</SchemaVersion>
13         <Setting>
...

圖示:

 以此將其修改成新的軟件工程和硬件工程路徑即可。修改后的settings.bsp文件:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <sch:Settings xmlns:sch="http://www.altera.com/embeddedsw/bsp/schema">
 3         <BspType>hal</BspType>
 4         <BspVersion>default</BspVersion>
 5         <BspGeneratedTimeStamp>2013-4-22 10:52:05</BspGeneratedTimeStamp>
 6         <BspGeneratedUnixTimeStamp>1366599125093</BspGeneratedUnixTimeStamp>
 7         <BspGeneratedLocation>E:\_prjbak\Altera\DE2_70_NIOS_VGA\Software\VGA_bsp</BspGeneratedLocation>
 8         <BspSettingsFile>settings.bsp</BspSettingsFile>
 9         <SopcDesignFile>E:\_prjbak\Altera\DE2_70_NIOS_VGA\DE2_70_SOPC.sopcinfo</SopcDesignFile>
10         <JdiFile>default</JdiFile>
11         <Cpu>cpu</Cpu>
12         <SchemaVersion>1.9</SchemaVersion>
13         <Setting>
...

圖示:

紅色部分是修改后的。保存。再重新生成bsp

 

再查看bsp信息,已經識別到新的sopcinfo文件了

重新編譯原工程(如果願意可以先clean原工程和bsp工程),可以完成編譯並生成可執行文件elf

========================

注:這種方法適應於Quartu II 10.0/ NIOS IDE 10.0以后的版本,對於Quartu II 10.0/ NIOS IDE 10.0以前版本,修改的是syslib里面的配置文件system.stf文件。這個文件和settings.bsp類似,也是一個xml文件:

 1 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 2 <stf>
 3     <project ptf="E:\Sample_SOPC\nios_system.ptf" target="Nios II System Library">
 4     </project>
 5     <cpu name="cpu_0">
 6     </cpu>
 7     <os_spec clean_exit="yes" direct_drivers="no" exception_stack="no" instruction_emulation="no" name="none (single-threaded)" no_c_plus_plus="no" no_exit="no" profiling="no" small_footprint="no" sopc_component_dir="altera_hal" stack_checking="no" stderr="jtag_uart_0" stdin="jtag_uart_0" stdout="jtag_uart_0">
 8     <sys_defines>
 9 <define name="alt_max_fd" quote="no" value="32"/>
10 <define name="alt_sys_clk" quote="no" value="none"/>
11 <define name="alt_timestamp_clk" quote="no" value="none"/>
12 </sys_defines>
13 <make_macros>
14 <macro name="alt_sim_optimize" quote="no" value="0"/>
15 </make_macros>
16 </os_spec>
17     <link_spec auto_gen_script="yes">
18         <script name="none">
19         <section memory="onchip_memory2_0" name=".text"/>
20 <section memory="onchip_memory2_0" name=".rodata"/>
21 <section memory="onchip_memory2_0" name=".rwdata"/>
22 </script>
23     </link_spec>
24 </stf>

只需要第三行project ptf節點內容改成新硬件工程的ptf文件路徑就可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM