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 some source code statements skipped and some variables unavailable when debugging?
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. These changes could also eliminate the need for some variables. A common practice during development is to disable compiler optimizations when debugging. The desired optimizations should normally be enabled after most of the debugging is done and the code is stable. For a more consistent debugging environment, any libraries used by the project should be compiled with the same options and compiler version as the application.
