Quality RTOS & Embedded Software

 Real time embedded FreeRTOS RSS feed 
Quick Start Supported MCUs PDF Books Trace Tools Ecosystem


trying a build with STR912 CPU

Posted by gorlash3 on November 1, 2013

<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">

We've been working on a project for several years now, which using the STR912 CPU.
We've been using the Yagarto toolchain, which is a GCC package.
The linker command using an argument -mcpu=arm966e-s which is correct for this chip.
Our project currently comprises about 70,000 lines of code, coded directly on the CPU (no OS), and works well.

Now I'm trying to study FreeRTOS, with an eye toward eventually porting the whole software package to this RTOS.
There are no examples with the package to support STR9 with GCC, so I've been looking at the STR9/IAR demo (which has no makefile) and the WizNETDEMOGCCARM7 demo, trying to carefully convert them over to STR9, but had some problems.

So I looked online, and found an example that purported to be for STR9 + GCC, and I tried it out on my machine.
However, I noted that the (anonymous) author used -mcpu=arm7tdmi instead of

-mcpu=arm966e-s.  I was confused by this, and tried changing -mcpu to the correct value, but when I try to build with that setting, I get numerous linker errors, like this:

c:/yagarto/bin/../lib/gcc/arm-elf/4.2.2/../../../../arm-elf/bin/ld.exe: ERROR: c:/yagarto/bin/../lib/gcc/arm-elf/4.2.2/../../../../arm-elf/lib/thumb/interworklibg.a(liba-memset.o) uses FPA instructions, whereas RTOSDemo.elf does not

If I change the -mcpu back to ARM7, these linker errors all go away.  BTW, I had the same experience with the GCC_ARM7 demo package; it builds with the ARM7 type but gets these linker errors with the ARM9 CPU type.
What does this mean?  Is this because they are mixing THUMB and ARM modules?

I could test this by switching the entire project to ARM mode and abandoning THUMB mode, and I'm thinking of trying that just to see if it will build, but for now I'm more concerned with understanding what is going on...

I would appreciate any insights that other STR9 users out there might have about this issue.

Dan Miller

This email is free from viruses and malware because avast! Antivirus protection is active.

trying a build with STR912 CPU

Posted by richardbarry on November 2, 2013

I suspect the differences are due to the fact that the GCC versions with which the respective projects were built were different, and that both require different linker scripts.

You may find some old GCC projects here: http://developers.stf12.net/projects-list


trying a build with STR912 CPU

Posted by gorlash3 on November 6, 2013

I'm confused by your response. First, I'm using the same linker script to build this demo project, and I'm using the same source code. The only thing I'm changing is the -mcpu argument: -mcpu=arm7tdmi or -mcpu=arm966e-s

I'm also using the same toolchain in all cases. Why do I get linker errors when I use arm966e-s ??

Unfortunately, none of the projects at stf12.net are useable by me, since I'm building with gcc/Yagarto, not with IAR...

trying a build with STR912 CPU

Posted by richardbarry on November 6, 2013

I mean you are trying to take a project from an anonymous authour, that built with the authors tools, and are now trying to build them with your tools. If your version of the tools are different to the version used by the anonymous authour then it is likely the linker script you received from the anonymous authour is not correct for use with your version of the tools when the arm966e-s option is used.


trying a build with STR912 CPU

Posted by gorlash3 on November 7, 2013

Ahhh... I understand now... I sure wish there was a FreeRTOS example for STR912 and GCC (the existing IAR example is not very useful because (a) I don't have IAR, and (b) it doesn't contain a Makefile). This is very complicated, especially as this is my first experience with an RTOS...

[ Back to the top ]    [ About FreeRTOS ]    [ Privacy ]    [ Sitemap ]    [ ]

Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.

Latest News

NXP tweet showing LPC5500 (ARMv8-M Cortex-M33) running FreeRTOS.

Version 10.1.1 of the FreeRTOS kernel is available for immediate download. MIT licensed.

View a recording of the "OTA Update Security and Reliability" webinar, presented by TI and AWS.


FreeRTOS and other embedded software careers at AWS.

FreeRTOS Partners

ARM Connected RTOS partner for all ARM microcontroller cores

Espressif ESP32

IAR Partner

Microchip Premier RTOS Partner

RTOS partner of NXP for all NXP ARM microcontrollers


STMicro RTOS partner supporting ARM7, ARM Cortex-M3, ARM Cortex-M4 and ARM Cortex-M0

Texas Instruments MCU Developer Network RTOS partner for ARM and MSP430 microcontrollers

OpenRTOS and SafeRTOS

Xilinx Microblaze and Zynq partner