ANN:Important update for ARM7 users

rtel wrote on Tuesday, November 02, 2004:

V2.5.3 has just been released.  This changes the way critical sections are handled in the GCC ARM7 port, enabling the port to be used at all optimisation levels.

It is recommended that all ARM7 GCC users upgrade to V2.5.3.

nobody wrote on Friday, November 05, 2004:

I just upgraded (just copied over the old version), and changed the changed variable names. But now if I compile i get this error:assembler messages:
literal referenced across section boundary (Implicit dump?)

nobody wrote on Friday, November 05, 2004:

Which variable names need changing?  The upgrade should not effect the application code.

Have you tried a complete rebuild?  ("touching" the makefile will cause a complete rebuild).

nobody wrote on Friday, November 05, 2004:

I cleaned the all the dir’s, inc. the temp dir, but no luck. I build it in AsIDE, but it’s just the GCC 3.4.1 compiler, and it uses the same options as the makefile, i don’t believe that one is changed.

About the variable, I upgraded from 2.5.1, so I believe only port_tick_ms or something was changed.

nobody wrote on Friday, November 05, 2004:

I have tried building the demo application with V2.5.1, then upgrading the source directory and building again and did not find any problems.

However, the constant portTICK_RATE_MS / portTICKS_PER_MS was changed between V2.5.0 and V2.5.1, so it is unlikely that you were previously using V2.5.1 [otherwise you would not have had to change anything].

Is it possible that you were using V2.4.1?  If so then there are some differences as follows:

V2.4.1 did not support THUMB mode so the source code was all set to build into ARM mode.  When THUMB mode was introduced the source code was split into two - the code that can be built into both ARM and THUMB mode, and the code that must be built into ARM mode.  This basically involved two changes:

port.c was split into port.c and portISR.c.
serial.c was plit into serial.c and serialISR.c

the xxxxISR.c versions having the code that must be built into ARM mode.

The makefile was then updated to have two source lists, one for THUMB and one for ARM.  If you are building everything for ARM then both source lists get built to ARM.

I have tried building the V2.4.1 demo application, then upgrading the source directory to V2.5.3.  It would not compile as some functions were undefined.  Adding both serialISR.c and portISR.c to the makefile and doing a complete rebuild I found the code built without error.  Have you got these two files in your makefile (you will only need serialISR.c if you are using the supplied serial.c in your application).

The rom.bat and ram.bat files supplied with V2.4.1 have been replaced with rom_arm.bat, rom_thumb.bat, ram_arm.bat and ram_thumb.bat.

Have a look at the V2.5.3 demo application makefile and .bat files to see how to switch between ARM and THUMB should you wish to do so.

Hope this helps.

nobody wrote on Friday, November 05, 2004:

Sorry, i upgraded from 2.5.0 to 2.5.3

nobody wrote on Friday, November 05, 2004:

Hmm.  I can’t find any problem going from V2.5.0 to V2.5.3 - other than the portTICKS_PER_MS / portTICK_RATE_MS constant needs renaming.

Has anything else changed at your end?  Compiler options maybe?  Can you build the demo application ok?

I tried building using the rom_thumb batch file.  Are you building for ROM or RAM, THUMB or ARM.  I should try with your exact options.