cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
1,820 Views
Registered: ‎11-20-2014

armcc called from SDK

Hello,

 

I am trying to set up SDK so that it uses the ARMCC from DS-5 according the XApp 1185 (http://www.xilinx.com/support/documentation/application_notes/xapp1185-Zynq-software-development-with-DS-5.pdf) .

The app-note is a bit dated and apparently some ARM-tool called from one of the scripts (appguru) is not part of the ARM tool-suite anymore. So I went for using the flow in the appendix, the manual setup from page 9 onwards.

When I come to the point that I want to compile the BSP using the ARMCC I get a lot of errors like:

"Compiling canps"
process_begin: CreateProcess(NULL, armcc -O2 -c -g -I./. -I../../../include -o xcanps.o xcanps.c, ...) failed.
make (e=2): The system cannot find the file specified.

make[1]: *** [xcanps.o] Error 2
process_begin: CreateProcess(NULL, armcc -O2 -c -g -I./. -I../../../include -o xcanps_g.o xcanps_g.c, ...) failed.
make (e=2): The system cannot find the file specified.

 

If I set up armcc manually and point to the xcanps_g.c then the file compiles properly. Also if I just go for the standard GNU-compiler coming with SDK this works nicely.

So SDK and ARMCC seem to have some communication-issue.

 

Anyone any idea how the files could be properly handed to the ARMCC?

 

Thanks,

 

Martin

0 Kudos
8 Replies
Highlighted
Xilinx Employee
Xilinx Employee
1,761 Views
Registered: ‎10-06-2016

Hi @martin_privat,

 

You are right, XAPP1185 is bit outdated, but setting SDK to use ARMCC should not be complicated. In SDK Preferences menu there is an option to select the toolchain, where you can set it for ARMCC.

armcc1.JPG

The projects (both BSP and application) created after this settings are applied, will be generated with the corresponding configurations for the ARMCC toolchain.

armcc2.JPG

 

You can also modify the properties for a particular BSP/Application with the SDK preferences set to Linaro toolchain as well. I would say that you tested that way, but something might be wrong in your flow as I tested on my side with a helloworld project for ZC702 and it did work for me.

 

Regards

Ibai


Ibai
Don’t forget to reply, kudo, and accept as solution.
Highlighted
1,737 Views
Registered: ‎11-20-2014

Hello @ibaie

 

Thanks for the pointer with the preferences, didn't know that one. I tried that, however even though I have the ARMCC set as compiler by now I still get file-not-found errors in the compilation of my BSP.

armcc.PNG

FNF.PNG

 

However if I look at what the BSP would contain as sources I see:

libsrc.PNG

So something seems to be missing on my side.

 

Thanks,

 

Martin

 

0 Kudos
Highlighted
Xilinx Employee
Xilinx Employee
1,716 Views
Registered: ‎10-06-2016

Hi @martin_privat,

It seems that the toolchain is installed properly and project settings are fine to, as some of the drivers seems to be compiled.

Can you launch the XSCT command line and go to the BSP folder and call just make to test if the toolchain works file without Ecliplse/GUI usage?

Do you have any antivirus enabled? I saw in the past some strange behaviours with an antivirus running so just in case it is affecting somehow would be great to test disabling it.

Regards
Ibai

Ibai
Don’t forget to reply, kudo, and accept as solution.
0 Kudos
Highlighted
1,689 Views
Registered: ‎11-20-2014

Hello @ibaie,

 

I have McAffee running, however I cannot disable it here.

If I do the make-command from XSCT I see more or less the same as via the GUI (line-wraps were put in by me for better readability):

-------------

xsct% make
WARNING: [Common 17-259] Unknown Tcl command 'make' sending command to the OS shell for execution. It is recommended to use 'exec' to send the command to the OS shell.

"Running Make include in ps7_cortexa9_0/libsrc/canps_v3_2/src"
C:/Xilinx/SDK/2017.3/gnuwin/bin/make.EXE -C ps7_cortexa9_0/libsrc/canps_v3_2/src -s include  "SHELL=CMD" "COMPILER=armcc" "ARCHIVER=armar" "COMPILER_FLAGS=  -O2 -c" "EXTRA_COMPILER_FLAGS=-g"

...

"Running Make libs in ps7_cortexa9_0/libsrc/canps_v3_2/src"
C:/Xilinx/SDK/2017.3/gnuwin/bin/make.EXE -C ps7_cortexa9_0/libsrc/canps_v3_2/src -s libs  "SHELL=CMD" "COMPILER=armcc" "ARCHIVER=armar" "COMPILER_FLAGS=  -O2 -c " "EXTRA_COMPILER_FLAGS=-g"

"Compiling canps"
process_begin: CreateProcess(NULL, armcc -O2 -c -g -I./. -I../../../include -o x canps.o xcanps.c, ...) failed.
make (e=2): The system cannot find the file specified.
make.EXE[1]: *** [xcanps.o] Error 2
make.EXE: *** [ps7_cortexa9_0/libsrc/canps_v3_2/src/make.libs] Error 2 child process exited abnormally
xsct%

-------------

However, if I do a call to e.g. the initial canps_v3_2 manually and point to the files in libsrc then this runs through. This also runs through with McAffee enabled. So the tools generally work, it is only some missing bit for pointing to the right directories.

Manually compiling all these parts of the BSP however is not an option, this must be done by the tools themselves.

 

Thanks,

 

Martin

0 Kudos
Highlighted
Xilinx Employee
Xilinx Employee
1,666 Views
Registered: ‎10-06-2016

Hi @martin_privat,

 

I'm wondering the steps you followed to configure the armcc as toolchain, I mean did you use the Xilinx Preferences or just modify the BSP?

 

If so, did you generate a new application/bsp project? As pointed in the past you need the projects be created afterwards to have all the configuration set-up for ARMCC.

 

Regards,

Ibai


Ibai
Don’t forget to reply, kudo, and accept as solution.
0 Kudos
Highlighted
1,656 Views
Registered: ‎11-20-2014

Hello @ibaie,

 

your initial pointer with the preferences was good and I followed that. For that I had XSDK open and changed the preferences. Afterwards (!) I generated a new application with a new BSP which then had the armcc already set.

The call to armcc also works (apparently), the only bit that is missing is the compiler finding the files. Is there anything in the background like environment-variables that could or would have to be set?

 

Thanks,

 

Martin

0 Kudos
Highlighted
Xilinx Employee
Xilinx Employee
1,520 Views
Registered: ‎10-06-2016

Hi @martin_privat

 

 

There is no any enviromental variable required by the tool appart from the fact you need to have the ARMCC in the PATH variable to be able to make it run :)

 

The compiler just uses the -I include folder specifications to get the header files and as far as in the log file it seems it's pointing properly there is no apperent reasons for the failure. The issue is also replicable calling to the Makefiles or using XSCT, so there it seems no to be related to Eclipse neither.

"Compiling canps"
process_begin: CreateProcess(NULL, armcc -O2 -c -g -I./. -I../../../include -o x canps.o xcanps.c, ...) failed.
make (e=2): The system cannot find the file specified.

In a previous post you mention that compiling the drivers locally seems to work

However, if I do a call to e.g. the initial canps_v3_2 manually and point to the files in libsrc then this runs through. This also runs through with McAffee enabled. So the tools generally work, it is only some missing bit for pointing to the right directories.

Could you explain it bit more? What does mean point to the files in libsrc?

 

Regards

Ibai

 


Ibai
Don’t forget to reply, kudo, and accept as solution.
0 Kudos
Highlighted
1,447 Views
Registered: ‎11-20-2014

Hello @ibaie,

 

the solution is actually really "just" the variables. The trick is to start the ARM Command Prompt and from there source the setup-scripts for SDK (e.g. c:\Xilinx\SDK\2017.3\settings64.bat).

From that dos-box start xsdk and if the stuff is compiled it runs through.

 

Cheers,

 

Martin

 

0 Kudos