Cortex M3 FAQ Software
From Manuals
Can I develop and debug code for my Micromint ARM Cortex-M3 controller using a Linux PC? a Mac OS X workstation?
Yes. CodeBlocks, Eclipse, OpenOCD and GNU cross compilers for ARM are available for Windows, Linux and Mac OS X. EWARM is only available for Microsoft Windows.
What filesystem types, volume size and filename formats are supported on microSD cards?
The code examples use the FatFS 0.04b library which supports FAT12, FAT16 and FAT32 filesystems. We have tested 4GB microSD cards but the library supports larger volumes. The filename format is 8.3. Long file names are implemented in FatFS 0.07 or above.
How can I detect if the application is compiled with IAR or GCC?
You can use compiler predefined macros as in the example below.
#if defined(__IAR_SYSTEMS_ICC__) /* Code to use with IAR compiler */ #elif defined(__GNUC__) /* Code to use with GCC compiler */ #else #warning Compiler is not supported #endif
For more details on predefined macros, consult the C preprocessor manuals.
Why are certain source code statements not executed when single stepping?
When you enable code optimization, the object code does not necessarily follow the same sequence as the source code. Optimizing compilers like IAR or GCC use loop unrolling, loop collapsing, branch elimination and other techniques that rearrange code to increase execution speed and/or reduce code size. A common practice during development is to disable optimization when debugging. Compiler optimizations should normally be enabled after most of the debugging is done and the code is stable. For a more consistent debugging environment, the StellarisWare driver library should be compiled with the same options and compiler version as the application.
Why do variables display a wrong value or as undefined when debugging?
This can be due to the code being optimized. Try turning optimization off to see if the problem goes away.
