V8.2.2 Xilinx Repository Makefile Issues (Ubuntu)
Hi,
I’m using Xilinx SDK 15.2 and there are some minor issues when using the repository to create a BSP on Linux.
First, CreateRepoDirectoryStructure.bat doesn’t work on Linux 🙂 but it’s easy enough to change .bat to .sh, replace copy with cp, and switch the direction of the slashes.
After including the repository and creating the BSP the build failed. It complains that arm-none-eabi-* commands do not exist. I noticed that Makefile, Makefiledep, and makefileps7_cortexa9 contain the following.
~~~~
ARCH_PREFIX = arm-none-eabi
#
V8.2.2 Xilinx Repository Makefile Issues (Ubuntu)
Thanks for the information. When you have everything sorted out I can add a link to this post from the web page that describes how to use the BSP version to help other Linux users.
Note the makesfiles etc. are all generated by the Xilinx tools, which is predominently a Linux tool, although I only use it on Windows. Could the mismatch in compiler names be due to a mismatch in SDK versions?
Regards.
V8.2.2 Xilinx Repository Makefile Issues (Ubuntu)
I believe I have this sorted out.
First, please find a shell script that is equivilent to the .bat script attached.
While Xilinx generates the makefiles it seems to simply copy the one included in the repository to BSPDIRECTORY/ps7cortexa91/libsrc/freertos822xilinxv10/src. Unlike the other libraries which simply have a single makefile called Makefile, Makefiledep and Makefileps7_cortexa9 are also generated. These three makefiles have the same contents.
I made two changes to Makefileps7cortexa9 which is the repository makefile.
I changed the AS definition to also use $(ARCHPREFIX). The definition of ARCHPREFIX is fine because it is indeed overridden by the definition passed at the command line (arm-xilinx-eabi).
~~~~
ARCH_PREFIX = arm-none-eabi
#
gnu tools for Makefile
# CC = $(ARCHPREFIX)-gcc AS = $(ARCHPREFIX)-as AR = $(ARCH_PREFIX)-ar ~~~~ To correct the *.s file that is created (literally a file named *.s is created) I used $(wildcard): ~~~~ KERNELAROBJS = $(wildcard *.c *.S *.s) ~~~~ I think these two changes will work for both Windows and Linux. Finally “make clean” does not remove libfreertos.a. This is something that needs to be added to the root makefile. I’m not sure how to get that one fixed as I’ve found the Xilinx forum to be an unreliable place to post.V8.2.2 Xilinx Repository Makefile Issues (Ubuntu)
Thanks for the valuable information. I would be grateful if you could
post the updated makefiles so I can see if I can update (or request
updates) that will ensure everything works on both host platforms. I
can also then link to this post from the documentation page on the
FreeRTOS.org website so Linux users can get the information quickly.
Regards.