gorlash3 wrote on Friday, November 01, 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 WizNET_DEMO_GCC_ARM7 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/interwork\libg.a(lib_a-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. |