Forum Discussion
Hi Rolando,
an unofficial tutorial explains how to import a Nios V project into Riscfree for versions that do not yet offer the automatic import option (https://malt.zendesk.com/hc/en-us/articles/9280647796761-Nios-V-Project-Development-Procedure-Using-Ashling-RiscFree-IDE , part 4.5.1). I was not able to follow this procedure, it may not exactly match the version I am using.
I would use the last version of Riscfree but it seems it has a bug : https://community.intel.com/t5/Nios-V-II-Embedded-Design-Suite/RiscFree-v25-1-1-no-longer-finds-BSP-and-compiler-headers-files/m-p/1676846#M53545 without a clear workaround.
Regards,
Thierry
Hi Thierry
I was able to build your application from Riscfree using the instructions provided in the Macnica application note. I also looked in to the case that reports the issue in Riscfree and I agree that the workaround is not clear. I am asking internally to see if the person who was supporting that case is able to provide the workaround.
Thanks
Rolando
- Thierry296 months ago
New Contributor
Hi Rolando,
it is good news that you were able to build the application using the Macnica application note. I tried to do the same thing and can detail where our paths seem to diverge.
I follow very scrupulously the tutorial up to the end of 4.5.1. The only difference is that I am using Riscfree v23.4.1 instead of v22.2.2. Everything seems normal until the "Finish" command to create the project in Risfree. Warnings are displayed in "Problems" tab with the informations below (by category):
Description:
File '/app/build/Debug/compile_commands.json' was not created in the build. Your workbench will not know all include paths and preprocessor defines.Resource:
appLocation:
de.marw.cmake.cdt.language.settings.providers.CompileCommandsJsonParserType:
CMAKE_EXPORT_COMPILE_COMMANDS Parser ProblemDespite these warnings, I tried to build the application ("Build Project" command). As you can see below, the project is build (with no errors) with gmake not cmake. I do not understand why.
08:58:03 **** Build of configuration Debug for project app ****
"C:\\PROGRA~1\\MATLAB\\R2020b\\bin\\win64\\gmake.exe" -j all
[ 1%] Building ASM object bsp/CMakeFiles/hal2_bsp.dir/HAL/src/alt_log_macro.S.obj
[ 3%] Building ASM object bsp/CMakeFiles/hal2_bsp.dir/HAL/src/machine_trap.S.obj
...
[ 96%] Building C object CMakeFiles/hello.elf.dir/hello.c.obj
[ 97%] Linking C executable hello.elf
[ 97%] Built target hello.elf
[100%] Creating hello.elf.objdump.
[100%] Reporting memory available for stack + heap in hello.elf.
hello.elf
* 125.44 KB - Program size (code + initialized data).
* 23.36 KB - Free for stack + heap.
[100%] Built target niosv-stack-report
[100%] Built target create-objdump
08:58:10 Build Finished. 0 errors, 0 warnings. (took 7s.9ms)
I join the app and bsp. You might want to check if the behavior is the same in your case.
Thank,
Thierry
- RolandoS_Altera6 months ago
Occasional Contributor
Hi Thierry
I built this in RiscFree installed in Linux (same version as yours) and I see that it also uses gmake. The version of gmake that uses seems to be the version that is installed in the machine /usr/bin/gmake:
12:14:32 **** Clean-only build of configuration Debug for project app ****
/usr/bin/gmake -j clean
/bin/sh: /home/rolando/intelFPGA_pro/23.4b79/niosv/bin/../../quartus/linux64/libtinfo.so.6: no version information available (required by /bin/sh)12:14:32 Build Finished. 0 errors, 0 warnings. (took 115ms)
12:14:32 **** Build of configuration Debug for project app ****
/usr/bin/gmake -j all
/bin/sh: /home/rolando/intelFPGA_pro/23.4b79/niosv/bin/../../quartus/linux64/libtinfo.so.6: no version information available (required by /bin/sh)
/bin/sh: /home/rolando/intelFPGA_pro/23.4b79/niosv/bin/../../quartus/linux64/libtinfo.so.6: no version information available (required by /bin/sh)
/bin/sh: /home/rolando/intelFPGA_pro/23.4b79/niosv/bin/../../quartus/linux64/libtinfo.so.6: no version information available (required by /bin/sh)
[ 1%] Building ASM object bsp/CMakeFiles/hal2_bsp.dir/HAL/src/alt_mcount.S.obj
/bin/sh: /home/rolando/intelFPGA_pro/23.4b79/niosv/bin/../../quartus/linux64/libtinfo.so.6: no version information available (required by /bin/sh)
/bin/sh: /home/rolando/intelFPGA_pro/23.4b79/niosv/bin/../../quartus/linux64/libtinfo.so.6: no version information available (required by /bin/sh)
/bin/sh: /home/rolando/intelFPGA_pro/23.4b79/niosv/bin/../../quartus/linux64/libtinfo.so.6: no version information available (required by /bin/sh)
[ 2%] Building ASM object bsp/CMakeFiles/hal2_bsp.dir/HAL/src/alt_log_macro.S.obj
/bin/sh: /home/rolando/intelFPGA_pro/23.4b79/niosv/bin/../../quartus/linux64/libtinfo.so.6: no version information available (required by /bin/sh)
/bin/sh: /home/rolando/intelFPGA_pro/23.4b79/niosv/bin/../../quartus/linux64/libtinfo.so.6: no version information available (required by /bin/sh)
[ 3%] Building ASM object bsp/CMakeFiles/hal2_bsp.dir/HAL/src/crt0.S.obj:
[ 97%] Built target hello.elf
/bin/sh: /home/rolando/intelFPGA_pro/23.4b79/niosv/bin/../../quartus/linux64/libtinfo.so.6: no version information available (required by /bin/sh)
/bin/sh: /home/rolando/intelFPGA_pro/23.4b79/niosv/bin/../../quartus/linux64/libtinfo.so.6: no version information available (required by /bin/sh)
/bin/sh: /home/rolando/intelFPGA_pro/23.4b79/niosv/bin/../../quartus/linux64/libtinfo.so.6: no version information available (required by /bin/sh)
/bin/sh: /home/rolando/intelFPGA_pro/23.4b79/niosv/bin/../../quartus/linux64/libtinfo.so.6: no version information available (required by /bin/sh)
[ 98%] Creating hello.elf.objdump.
/bin/sh: /home/rolando/intelFPGA_pro/23.4b79/niosv/bin/../../quartus/linux64/libtinfo.so.6: no version information available (required by /bin/sh)
[100%] Reporting memory available for stack + heap in hello.elf.
sh: /home/rolando/intelFPGA_pro/23.4b79/niosv/bin/../../quartus/linux64/libtinfo.so.6: no version information available (required by sh)
/bin/bash: /home/rolando/intelFPGA_pro/23.4b79/niosv/bin/../../quartus/linux64/libtinfo.so.6: no version information available (required by /bin/bash)
/bin/sh: /home/rolando/intelFPGA_pro/23.4b79/niosv/bin/../../quartus/linux64/libtinfo.so.6: no version information available (required by /bin/sh)
[100%] Built target create-objdump
hello.elf
* 124.45 KB - Program size (code + initialized data).
* 24.35 KB - Free for stack + heap.
/bin/sh: /home/rolando/intelFPGA_pro/23.4b79/niosv/bin/../../quartus/linux64/libtinfo.so.6: no version information available (required by /bin/sh)
[100%] Built target niosv-stack-report12:14:32 Build Finished. 0 errors, 0 warnings. (took 361ms)
When building manually, seems that it does it 2 stages:
* cmake: creates all the components needed to build through gmake
* gmake: builds the binaries
So I think that the gmake stage that you see is expected. What I am not sure about is why it uses gmake for Matlab. Perhaps in Windows, that's the gmake that it finds and then it uses that.
Thanks
Rolando