FreeRTOS Support Archive
The FreeRTOS support forum is used to obtain active support directly from Real
Time Engineers Ltd. In return for using our top quality software and services for
free, we request you play fair and do your bit to help others too! Sign up
to receive notifications of new support topics then help where you can.
This is a read only archive of threads posted to the FreeRTOS support forum.
The archive is updated every week, so will not always contain the very latest posts.
Use these archive pages to search previous posts. Use the Live FreeRTOS Forum
link to reply to a post, or start a new support thread.
[FreeRTOS Home] [Live FreeRTOS Forum] [FAQ] [Archive Top] [September 2015 Threads] V8.2.2 Xilinx Repository Makefile Issues (Ubuntu)Posted by razed11 on September 26, 2015 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
#
gnu tools for Makefile
#
CC = $(ARCHPREFIX)-gcc
AS = arm-none-as
AR = $(ARCHPREFIX)-ar
CP = cp
~~~~
I changed the ARCHPREFIX and AS to use arm-xilinx-eabi and everything built but I have not yet linked and tried the application (I wanted to submit this before going home for the weekend). It's been a while since I wrote a fancy makefile but I thought there was a way to inherit ARCHPREFIX because it is passed explicitly as arm-xilinx.eabi to the top level make file.
Also the file *.s is created under src. I think this may be because there are no lower case .s files so the following expands to literally *.s on Linux. On windows it probably duplicates the files but I'm not sure.
~~~~
KERNELAROBJS = *.c *.S *.s
~~~~
V8.2.2 Xilinx Repository Makefile Issues (Ubuntu)Posted by rtel on September 26, 2015 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)Posted by razed11 on September 28, 2015 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)Posted by rtel on September 29, 2015 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.
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.
|