cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
312 Views
Registered: ‎10-02-2018

Migrating Xilinx SDK 2016.4 to Xilinx SDK 2019.1

Jump to solution

I have several standalone library/application projects in Xilinx SDK 2016.4 that I need to migrate to Xilinx SDK 2019.1.

In Xilinx SDK 2019.1, I've created a new workspace with a new Hardware Platform Specification project, CPU0 and CPU1 BSP projects, and a static C++ library project. The target processor is a Zynq 7000 series (ARM Cortex A-9).

In Xilinx SDK 2016.4, I used the Xilinx ARM GNU Toolchain with the arm-xilinx-eabi-gcc, arm-xilinx-eabi-g++, and arm-xilinx-eabi-ar commands.

In Xilinx SDK 2019.1, arm-xilinx-eabi does not exist, so attempting to compile using the same toolchain results in:

process_begin: CreateProcess(NULL, arm-xilinx-eabi-g++ -Wall -O0 -g3..., ... ) failed.
make (e=2): The system cannot find the file specified.

I switched to the Xilinx ARM v7 GNU Toolchain with the arm-none-eabi-gcc, arm-none-eabi-g++, and arm-none-eabi-ar commands.

Attempting to compile with Xilinx 2019.1 results in several errors:

"Error: selected processor does not support 'isb' in ARM mode"
"Error: selected processor does not support 'dsb' in ARM mode"
"Error: selected processor does not support 'dmb' in ARM mode"

I've attached a workspace with sample code that generates the mentioned errors.

Are there any compiler options which will allow me to use the arm-none-eabi commands in place of the arm-xilinx-eabi commands? Or is there a way to obtain the arm-xilinx-eabi commands for 2019.1?

0 Kudos
1 Solution

Accepted Solutions
Highlighted
224 Views
Registered: ‎10-02-2018

Re: Migrating Xilinx SDK 2016.4 to Xilinx SDK 2019.1

Jump to solution

Hi @pvempati ,

Thank you for the response. That is my current process. I created a 2019.1 workspace and a new static library project. Then I linked my pre-existing code into the new workspace. The pre-existing code is a mixture .h, .cpp, .c, and .S files. The default compiler options are

 

-Wall -O0 -g3 -cc -fmessage-length=0 -MT"$@"

With these compiler options, I receive the errors from the original post:

 

 

 

Error: selected processor does not support 'dsb' in ARM mode
Error: selected processor does not support 'isb' in ARM mode
Error: selected processor does not support 'sev' in ARM mode
Error: selected processor does not support 'dmb' in ARM mode

 

In the help documentation, under the "Creating a Library Project" section, there is a table which indicates I should use "Extra Compiler Flags" for the "A9" processor. After adding the flags, the full set of compiler options is:

-Wall -O0 -g3 -cc -fmessage-length=0 -MT"$@" -mcpu=cortex-a9 -mfpu=vfpv3 -mfloat-abi=hard

I no longer receive the previous errors. However, I now receive the following compiler errors:

 

Error: selected processor does not support 'vrev64.8 D0, D0' in ARM mode

vrev64 is a NEON instruction, so I modified my compiler options to:

-Wall -O0 -g3 -cc -fmessage-length=0 -MT"$@" -mcpu=cortex-a9 -mfpu=neon-vfpv3 -mfloat-abi=hard

Now my static library is building correctly.

 

View solution in original post

2 Replies
Highlighted
Xilinx Employee
Xilinx Employee
255 Views
Registered: ‎01-03-2017

Re: Migrating Xilinx SDK 2016.4 to Xilinx SDK 2019.1

Jump to solution

Hi @bergermeister ,

Yes, Compiler got modified from 2016.4 to 2019.1.

Earlier toolchain was supporting soft-float but to optimize the code we have the new toolchain which supports hard-float.

To migrate your project I would recommend to create an empty project in 2019.1 SDK and copy the sources from 2016.4 SDK workspace.

Highlighted
225 Views
Registered: ‎10-02-2018

Re: Migrating Xilinx SDK 2016.4 to Xilinx SDK 2019.1

Jump to solution

Hi @pvempati ,

Thank you for the response. That is my current process. I created a 2019.1 workspace and a new static library project. Then I linked my pre-existing code into the new workspace. The pre-existing code is a mixture .h, .cpp, .c, and .S files. The default compiler options are

 

-Wall -O0 -g3 -cc -fmessage-length=0 -MT"$@"

With these compiler options, I receive the errors from the original post:

 

 

 

Error: selected processor does not support 'dsb' in ARM mode
Error: selected processor does not support 'isb' in ARM mode
Error: selected processor does not support 'sev' in ARM mode
Error: selected processor does not support 'dmb' in ARM mode

 

In the help documentation, under the "Creating a Library Project" section, there is a table which indicates I should use "Extra Compiler Flags" for the "A9" processor. After adding the flags, the full set of compiler options is:

-Wall -O0 -g3 -cc -fmessage-length=0 -MT"$@" -mcpu=cortex-a9 -mfpu=vfpv3 -mfloat-abi=hard

I no longer receive the previous errors. However, I now receive the following compiler errors:

 

Error: selected processor does not support 'vrev64.8 D0, D0' in ARM mode

vrev64 is a NEON instruction, so I modified my compiler options to:

-Wall -O0 -g3 -cc -fmessage-length=0 -MT"$@" -mcpu=cortex-a9 -mfpu=neon-vfpv3 -mfloat-abi=hard

Now my static library is building correctly.

 

View solution in original post