Toyomasa Watarai
/
armcc_info
Describes predefine macros for mbed online compiler (armcc)
main.cpp@4:2b25b7a2c5fd, 2017-01-12 (annotated)
- Committer:
- MACRUM
- Date:
- Thu Jan 12 01:44:21 2017 +0000
- Revision:
- 4:2b25b7a2c5fd
- Parent:
- 3:b802baa84f98
- Child:
- 6:40e873bbc5f7
Add library detection and LED blinky
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MACRUM | 0:99f7e7890e03 | 1 | #include "mbed.h" |
MACRUM | 0:99f7e7890e03 | 2 | |
MACRUM | 4:2b25b7a2c5fd | 3 | #define xstr(s) str(s) |
MACRUM | 4:2b25b7a2c5fd | 4 | #define str(s) #s |
MACRUM | 4:2b25b7a2c5fd | 5 | |
MACRUM | 4:2b25b7a2c5fd | 6 | #if defined(TARGET_SAMD21J18A) |
MACRUM | 4:2b25b7a2c5fd | 7 | Serial pc(PB22, PB23); // tx, rx |
MACRUM | 4:2b25b7a2c5fd | 8 | DigitalOut myled(PA17, 0); |
MACRUM | 4:2b25b7a2c5fd | 9 | #elif defined(TARGET_LPC1768) |
MACRUM | 4:2b25b7a2c5fd | 10 | #define LED1 P0_22 |
MACRUM | 0:99f7e7890e03 | 11 | Serial pc(USBTX, USBRX); // tx, rx |
MACRUM | 4:2b25b7a2c5fd | 12 | DigitalOut myled(P0_22, 1); |
MACRUM | 4:2b25b7a2c5fd | 13 | #else |
MACRUM | 4:2b25b7a2c5fd | 14 | Serial pc(USBTX, USBRX); // tx, rx |
MACRUM | 4:2b25b7a2c5fd | 15 | DigitalOut myled(LED1, 0); |
MACRUM | 4:2b25b7a2c5fd | 16 | #endif |
MACRUM | 0:99f7e7890e03 | 17 | |
MACRUM | 0:99f7e7890e03 | 18 | int main() { |
MACRUM | 4:2b25b7a2c5fd | 19 | pc.printf("\n"); |
MACRUM | 4:2b25b7a2c5fd | 20 | pc.printf("System Clock = %d\n", SystemCoreClock); |
MACRUM | 1:5d5b5bd67e5b | 21 | #ifdef MBED_USERNAME |
MACRUM | 4:2b25b7a2c5fd | 22 | pc.printf("mbed username: %s\n", xstr(MBED_USERNAME)); |
MACRUM | 1:5d5b5bd67e5b | 23 | #endif |
MACRUM | 3:b802baa84f98 | 24 | pc.printf("mbed library version: %d\n", MBED_LIBRARY_VERSION); |
MACRUM | 2:fe7a36257939 | 25 | #ifdef __CC_ARM |
MACRUM | 4:2b25b7a2c5fd | 26 | #ifdef __MICROLIB |
MACRUM | 4:2b25b7a2c5fd | 27 | pc.printf("Built with ARM compiler and micro library (uARM)\n"); |
MACRUM | 4:2b25b7a2c5fd | 28 | #else |
MACRUM | 4:2b25b7a2c5fd | 29 | pc.printf("Built with ARM compiler and standard library (ARM)\n"); |
MACRUM | 4:2b25b7a2c5fd | 30 | #endif |
MACRUM | 0:99f7e7890e03 | 31 | pc.printf("ARM Compiler version : %d\n", __ARMCC_VERSION); |
MACRUM | 0:99f7e7890e03 | 32 | |
MACRUM | 0:99f7e7890e03 | 33 | #ifdef __ARM_NEON__ |
MACRUM | 0:99f7e7890e03 | 34 | pc.printf("NEON is available\n"); |
MACRUM | 0:99f7e7890e03 | 35 | #else |
MACRUM | 0:99f7e7890e03 | 36 | pc.printf("NEON is not available\n"); |
MACRUM | 0:99f7e7890e03 | 37 | #endif |
MACRUM | 0:99f7e7890e03 | 38 | |
MACRUM | 0:99f7e7890e03 | 39 | #ifdef __APCS_INTERWORK |
MACRUM | 0:99f7e7890e03 | 40 | pc.printf("ARM/Thumb Interworking is used\n"); |
MACRUM | 0:99f7e7890e03 | 41 | #endif |
MACRUM | 0:99f7e7890e03 | 42 | |
MACRUM | 0:99f7e7890e03 | 43 | #ifdef __APCS_ROPI |
MACRUM | 0:99f7e7890e03 | 44 | pc.printf("--apcs /ropi is used\n"); |
MACRUM | 0:99f7e7890e03 | 45 | #endif |
MACRUM | 0:99f7e7890e03 | 46 | |
MACRUM | 0:99f7e7890e03 | 47 | #ifdef __APCS_RWPI |
MACRUM | 0:99f7e7890e03 | 48 | pc.printf("--apcs /rwpi is used\n"); |
MACRUM | 0:99f7e7890e03 | 49 | #endif |
MACRUM | 0:99f7e7890e03 | 50 | |
MACRUM | 0:99f7e7890e03 | 51 | #ifdef __APCS_FPIC |
MACRUM | 0:99f7e7890e03 | 52 | pc.printf("--apcs /fpic is used\n"); |
MACRUM | 0:99f7e7890e03 | 53 | #endif |
MACRUM | 0:99f7e7890e03 | 54 | |
MACRUM | 0:99f7e7890e03 | 55 | #ifdef __BIG_ENDIAN |
MACRUM | 0:99f7e7890e03 | 56 | pc.printf("Target is big endian\n"); |
MACRUM | 4:2b25b7a2c5fd | 57 | #else |
MACRUM | 4:2b25b7a2c5fd | 58 | pc.printf("Target is little endian\n"); |
MACRUM | 0:99f7e7890e03 | 59 | #endif |
MACRUM | 0:99f7e7890e03 | 60 | |
MACRUM | 0:99f7e7890e03 | 61 | #ifdef __CHAR_UNSIGNED__ |
MACRUM | 0:99f7e7890e03 | 62 | pc.printf("char type is unsigned\n"); |
MACRUM | 0:99f7e7890e03 | 63 | #else |
MACRUM | 0:99f7e7890e03 | 64 | pc.printf("char type is signed\n"); |
MACRUM | 0:99f7e7890e03 | 65 | #endif |
MACRUM | 0:99f7e7890e03 | 66 | pc.printf("EDG front-end version : %d\n", __EDG_VERSION__); |
MACRUM | 0:99f7e7890e03 | 67 | |
MACRUM | 0:99f7e7890e03 | 68 | pc.printf("Emulated GNU version : %d.%d\n", __GNUC__, __GNUC_MINOR__); |
MACRUM | 0:99f7e7890e03 | 69 | pc.printf("Current emulated GNU version : %s\n", __VERSION__); |
MACRUM | 0:99f7e7890e03 | 70 | |
MACRUM | 0:99f7e7890e03 | 71 | pc.printf("Optimize level : %d\n", __OPTIMISE_LEVEL); |
MACRUM | 0:99f7e7890e03 | 72 | |
MACRUM | 0:99f7e7890e03 | 73 | #ifdef __OPTIMISE_SPACE |
MACRUM | 0:99f7e7890e03 | 74 | pc.printf("Optimized by size\n"); |
MACRUM | 0:99f7e7890e03 | 75 | #endif |
MACRUM | 0:99f7e7890e03 | 76 | |
MACRUM | 0:99f7e7890e03 | 77 | #ifdef __OPTIMISE_TIME |
MACRUM | 0:99f7e7890e03 | 78 | pc.printf("Optimized by speed\n"); |
MACRUM | 0:99f7e7890e03 | 79 | #endif |
MACRUM | 0:99f7e7890e03 | 80 | |
MACRUM | 0:99f7e7890e03 | 81 | pc.printf("Target ARM architecture : %d\n", __TARGET_ARCH_ARM); |
MACRUM | 0:99f7e7890e03 | 82 | pc.printf("Target Thumb architecture : %d\n", __TARGET_ARCH_THUMB); |
MACRUM | 0:99f7e7890e03 | 83 | #else |
MACRUM | 0:99f7e7890e03 | 84 | pc.printf("Not build with ARM compiler\n"); |
MACRUM | 0:99f7e7890e03 | 85 | #endif |
MACRUM | 4:2b25b7a2c5fd | 86 | |
MACRUM | 4:2b25b7a2c5fd | 87 | while(1) { |
MACRUM | 4:2b25b7a2c5fd | 88 | myled = !myled; |
MACRUM | 4:2b25b7a2c5fd | 89 | wait(0.4); |
MACRUM | 4:2b25b7a2c5fd | 90 | } |
MACRUM | 0:99f7e7890e03 | 91 | } |