- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
Link Copied
2 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page