Toyomasa Watarai
/
armcc_info
Describes predefine macros for mbed online compiler (armcc)
main.cpp@6:40e873bbc5f7, 2017-03-16 (annotated)
- Committer:
- MACRUM
- Date:
- Thu Mar 16 21:58:09 2017 +0900
- Revision:
- 6:40e873bbc5f7
- Parent:
- 4:2b25b7a2c5fd
- Child:
- 7:31420b1e1298
Add licence header info
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MACRUM | 6:40e873bbc5f7 | 1 | /** |
MACRUM | 6:40e873bbc5f7 | 2 | ****************************************************************************** |
MACRUM | 6:40e873bbc5f7 | 3 | * @file main.cpp |
MACRUM | 6:40e873bbc5f7 | 4 | * @author Toyomasa Watarai |
MACRUM | 6:40e873bbc5f7 | 5 | * @version V1.0.0 |
MACRUM | 6:40e873bbc5f7 | 6 | * @date 16 March 2017 |
MACRUM | 6:40e873bbc5f7 | 7 | * @brief armcc pre-defined macro check progmra |
MACRUM | 6:40e873bbc5f7 | 8 | ****************************************************************************** |
MACRUM | 6:40e873bbc5f7 | 9 | * @attention |
MACRUM | 6:40e873bbc5f7 | 10 | * |
MACRUM | 6:40e873bbc5f7 | 11 | * Licensed under the Apache License, Version 2.0 (the "License"); |
MACRUM | 6:40e873bbc5f7 | 12 | * you may not use this file except in compliance with the License. |
MACRUM | 6:40e873bbc5f7 | 13 | * You may obtain a copy of the License at |
MACRUM | 6:40e873bbc5f7 | 14 | * |
MACRUM | 6:40e873bbc5f7 | 15 | * http://www.apache.org/licenses/LICENSE-2.0 |
MACRUM | 6:40e873bbc5f7 | 16 | * |
MACRUM | 6:40e873bbc5f7 | 17 | * Unless required by applicable law or agreed to in writing, software |
MACRUM | 6:40e873bbc5f7 | 18 | * distributed under the License is distributed on an "AS IS" BASIS, |
MACRUM | 6:40e873bbc5f7 | 19 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
MACRUM | 6:40e873bbc5f7 | 20 | * See the License for the specific language governing permissions and |
MACRUM | 6:40e873bbc5f7 | 21 | * limitations under the License. |
MACRUM | 6:40e873bbc5f7 | 22 | */ |
MACRUM | 6:40e873bbc5f7 | 23 | #include "mbed.h" |
MACRUM | 0:99f7e7890e03 | 24 | |
MACRUM | 4:2b25b7a2c5fd | 25 | #define xstr(s) str(s) |
MACRUM | 4:2b25b7a2c5fd | 26 | #define str(s) #s |
MACRUM | 4:2b25b7a2c5fd | 27 | |
MACRUM | 4:2b25b7a2c5fd | 28 | #if defined(TARGET_SAMD21J18A) |
MACRUM | 4:2b25b7a2c5fd | 29 | Serial pc(PB22, PB23); // tx, rx |
MACRUM | 4:2b25b7a2c5fd | 30 | DigitalOut myled(PA17, 0); |
MACRUM | 4:2b25b7a2c5fd | 31 | #elif defined(TARGET_LPC1768) |
MACRUM | 4:2b25b7a2c5fd | 32 | #define LED1 P0_22 |
MACRUM | 0:99f7e7890e03 | 33 | Serial pc(USBTX, USBRX); // tx, rx |
MACRUM | 6:40e873bbc5f7 | 34 | DigitalOut myled(LED2, 1); |
MACRUM | 4:2b25b7a2c5fd | 35 | #else |
MACRUM | 4:2b25b7a2c5fd | 36 | Serial pc(USBTX, USBRX); // tx, rx |
MACRUM | 4:2b25b7a2c5fd | 37 | DigitalOut myled(LED1, 0); |
MACRUM | 4:2b25b7a2c5fd | 38 | #endif |
MACRUM | 0:99f7e7890e03 | 39 | |
MACRUM | 0:99f7e7890e03 | 40 | int main() { |
MACRUM | 4:2b25b7a2c5fd | 41 | pc.printf("\n"); |
MACRUM | 4:2b25b7a2c5fd | 42 | pc.printf("System Clock = %d\n", SystemCoreClock); |
MACRUM | 1:5d5b5bd67e5b | 43 | #ifdef MBED_USERNAME |
MACRUM | 4:2b25b7a2c5fd | 44 | pc.printf("mbed username: %s\n", xstr(MBED_USERNAME)); |
MACRUM | 1:5d5b5bd67e5b | 45 | #endif |
MACRUM | 3:b802baa84f98 | 46 | pc.printf("mbed library version: %d\n", MBED_LIBRARY_VERSION); |
MACRUM | 2:fe7a36257939 | 47 | #ifdef __CC_ARM |
MACRUM | 4:2b25b7a2c5fd | 48 | #ifdef __MICROLIB |
MACRUM | 4:2b25b7a2c5fd | 49 | pc.printf("Built with ARM compiler and micro library (uARM)\n"); |
MACRUM | 4:2b25b7a2c5fd | 50 | #else |
MACRUM | 4:2b25b7a2c5fd | 51 | pc.printf("Built with ARM compiler and standard library (ARM)\n"); |
MACRUM | 4:2b25b7a2c5fd | 52 | #endif |
MACRUM | 0:99f7e7890e03 | 53 | pc.printf("ARM Compiler version : %d\n", __ARMCC_VERSION); |
MACRUM | 0:99f7e7890e03 | 54 | |
MACRUM | 0:99f7e7890e03 | 55 | #ifdef __ARM_NEON__ |
MACRUM | 0:99f7e7890e03 | 56 | pc.printf("NEON is available\n"); |
MACRUM | 0:99f7e7890e03 | 57 | #else |
MACRUM | 0:99f7e7890e03 | 58 | pc.printf("NEON is not available\n"); |
MACRUM | 0:99f7e7890e03 | 59 | #endif |
MACRUM | 0:99f7e7890e03 | 60 | |
MACRUM | 0:99f7e7890e03 | 61 | #ifdef __APCS_INTERWORK |
MACRUM | 0:99f7e7890e03 | 62 | pc.printf("ARM/Thumb Interworking is used\n"); |
MACRUM | 0:99f7e7890e03 | 63 | #endif |
MACRUM | 0:99f7e7890e03 | 64 | |
MACRUM | 0:99f7e7890e03 | 65 | #ifdef __APCS_ROPI |
MACRUM | 0:99f7e7890e03 | 66 | pc.printf("--apcs /ropi is used\n"); |
MACRUM | 0:99f7e7890e03 | 67 | #endif |
MACRUM | 0:99f7e7890e03 | 68 | |
MACRUM | 0:99f7e7890e03 | 69 | #ifdef __APCS_RWPI |
MACRUM | 0:99f7e7890e03 | 70 | pc.printf("--apcs /rwpi is used\n"); |
MACRUM | 0:99f7e7890e03 | 71 | #endif |
MACRUM | 0:99f7e7890e03 | 72 | |
MACRUM | 0:99f7e7890e03 | 73 | #ifdef __APCS_FPIC |
MACRUM | 0:99f7e7890e03 | 74 | pc.printf("--apcs /fpic is used\n"); |
MACRUM | 0:99f7e7890e03 | 75 | #endif |
MACRUM | 0:99f7e7890e03 | 76 | |
MACRUM | 0:99f7e7890e03 | 77 | #ifdef __BIG_ENDIAN |
MACRUM | 0:99f7e7890e03 | 78 | pc.printf("Target is big endian\n"); |
MACRUM | 4:2b25b7a2c5fd | 79 | #else |
MACRUM | 4:2b25b7a2c5fd | 80 | pc.printf("Target is little endian\n"); |
MACRUM | 0:99f7e7890e03 | 81 | #endif |
MACRUM | 0:99f7e7890e03 | 82 | |
MACRUM | 0:99f7e7890e03 | 83 | #ifdef __CHAR_UNSIGNED__ |
MACRUM | 0:99f7e7890e03 | 84 | pc.printf("char type is unsigned\n"); |
MACRUM | 0:99f7e7890e03 | 85 | #else |
MACRUM | 0:99f7e7890e03 | 86 | pc.printf("char type is signed\n"); |
MACRUM | 0:99f7e7890e03 | 87 | #endif |
MACRUM | 0:99f7e7890e03 | 88 | pc.printf("EDG front-end version : %d\n", __EDG_VERSION__); |
MACRUM | 0:99f7e7890e03 | 89 | |
MACRUM | 0:99f7e7890e03 | 90 | pc.printf("Emulated GNU version : %d.%d\n", __GNUC__, __GNUC_MINOR__); |
MACRUM | 0:99f7e7890e03 | 91 | pc.printf("Current emulated GNU version : %s\n", __VERSION__); |
MACRUM | 0:99f7e7890e03 | 92 | |
MACRUM | 0:99f7e7890e03 | 93 | pc.printf("Optimize level : %d\n", __OPTIMISE_LEVEL); |
MACRUM | 0:99f7e7890e03 | 94 | |
MACRUM | 0:99f7e7890e03 | 95 | #ifdef __OPTIMISE_SPACE |
MACRUM | 0:99f7e7890e03 | 96 | pc.printf("Optimized by size\n"); |
MACRUM | 0:99f7e7890e03 | 97 | #endif |
MACRUM | 0:99f7e7890e03 | 98 | |
MACRUM | 0:99f7e7890e03 | 99 | #ifdef __OPTIMISE_TIME |
MACRUM | 0:99f7e7890e03 | 100 | pc.printf("Optimized by speed\n"); |
MACRUM | 0:99f7e7890e03 | 101 | #endif |
MACRUM | 0:99f7e7890e03 | 102 | |
MACRUM | 0:99f7e7890e03 | 103 | pc.printf("Target ARM architecture : %d\n", __TARGET_ARCH_ARM); |
MACRUM | 0:99f7e7890e03 | 104 | pc.printf("Target Thumb architecture : %d\n", __TARGET_ARCH_THUMB); |
MACRUM | 0:99f7e7890e03 | 105 | #else |
MACRUM | 0:99f7e7890e03 | 106 | pc.printf("Not build with ARM compiler\n"); |
MACRUM | 0:99f7e7890e03 | 107 | #endif |
MACRUM | 4:2b25b7a2c5fd | 108 | |
MACRUM | 4:2b25b7a2c5fd | 109 | while(1) { |
MACRUM | 4:2b25b7a2c5fd | 110 | myled = !myled; |
MACRUM | 4:2b25b7a2c5fd | 111 | wait(0.4); |
MACRUM | 4:2b25b7a2c5fd | 112 | } |
MACRUM | 0:99f7e7890e03 | 113 | } |