Nios® II Embedded Design Suite (EDS)
Support for Embedded Development Tools, Processors (SoCs and Nios® II processor), Embedded Development Suites (EDSs), Boot and Configuration, Operating Systems, C and C++
Announcements
Intel Support hours are Monday-Fridays, 8am-5pm PST, except Holidays. Thanks to our community members who provide support during our down time or before we get to your questions. We appreciate you!

Need Forum Guidance? Click here
Search our FPGA Knowledge Articles here.
12453 Discussions

AUtomating a workspace build from command line

Altera_Forum
Honored Contributor II
985 Views

Hi folks, 

 

We do a lot of customer releases and core testing, so I developed a script which builds my qsys system, implements the software, and runs the quartus compile. 

 

If I or my customers need to change any of the firmware, they can become stuck because the script doesn't properly create a nios workspace. When you go to open the workspace folder in eclipse, the workspace is empty and nothing can be imported. 

 

Here is my code. Please suggest how I can integrate creating a nios eclipse workspace into this flow: 

 

# generate the qsys system echo "**** Generating The QSYS System ****" qsys-generate system.qsys --synthesis=VERILOG --simulation=VERILOG # create the nios blank project echo "**** Creating The NIOS Eclipse Project ****" nios2-swexample-create --sopc-file=./system.sopcinfo --type=blank_project --elf-name=app_standalone.elf --app-dir=software/app_standalone --bsp-dir=software/app_standalone_bsp # copy the software files echo "**** Copying Source Files ****" find firmware/ -type f -name '*.c' -exec cp --target-directory=software/app_standalone {} \; find firmware/ -type f -name '*.h' -exec cp --target-directory=software/app_standalone {} \; # generates the bsp pushd software/app_standalone_bsp/ echo "**** Creating BSP ****" create-this-bsp --cpu-name nios2_qsys_0 --no-make popd # change linker script here pushd software/app_standalone_bsp/ echo "**** Modifying Linker Script ****" more settings.bsp | sed "s/<regionName>onchip_memory2_1<\/regionName>/<regionName>onchip_memory2_0<\/regionName>/" > tmp_settings mv tmp_settings settings.bsp echo "**** Regenerating BSP ****" nios2-bsp-generate-files --bsp-dir . --settings settings.bsp# create-this-bsp --cpu-name nios2_qsys_0 --no-make popd # refresh app sources pushd software/app_standalone/ create-this-app --no-make echo "**** Refreshing Sources ****" nios2-app-update-makefile --list-src-files --app-dir . find . -type f -name '*.c' -exec nios2-app-update-makefile --app-dir . --add-src-files {} \; popd pushd software/app_standalone/ echo "**** Creating Elf ****" make all make mem_init_generate find mem_init/ -type f -name '*.hex' -exec cp --target-directory=../../system_sim {} \; popd echo "**** Running Quartus Implementation Flow ****" quartus_sh --64bit --flow compile project.qpf
0 Kudos
2 Replies
Altera_Forum
Honored Contributor II
102 Views

Maybe compile the code outside the IDE by just running the compiler and then the linker. 

It is probably easier than using the IDE at all.
Altera_Forum
Honored Contributor II
102 Views

Thanks for the suggestion dsl. 

 

I ended up creating a second script: 

pushd software/app_standalone/ echo "**** Creating Elf ****" make all make mem_init_generate find mem_init/ -type f -name '*.hex' -exec cp --target-directory=../../system_sim {} \; popd echo "**** Running Quartus Implementation Flow ****" quartus_sh --64bit --flow compile project.qpf  

 

It works well enough for command line purposes. I actually do like the IDE because of syntax checking and macro expansion, but this will do for very quick and easy changes to a release.
Reply