1import os 2 3import uuid 4def get_mac_address(): 5 mac=uuid.UUID(int = uuid.getnode()).hex[-12:] 6 return "#define AUTOMAC".join([str(int(e/2) + 1) + ' 0x' + mac[e:e+2] + '\n' for e in range(5,11,2)]) 7 8header = ''' 9#ifndef __MAC_AUTO_GENERATE_H__ 10#define __MAC_AUTO_GENERATE_H__ 11 12/* Automatically generated file; DO NOT EDIT. */ 13/* mac configure file for RT-Thread qemu */ 14 15#define AUTOMAC0 0x52 16#define AUTOMAC1 0x54 17#define AUTOMAC2 0x00 18#define AUTOMAC''' 19 20end = ''' 21#endif 22''' 23 24automac_h_fn = os.path.join(os.path.dirname(__file__), 'drivers', 'automac.h') 25with open(automac_h_fn, 'w') as f: 26 f.write(header + get_mac_address() + end) 27 28# toolchains options 29ARCH ='arm' 30CPU ='cortex-a' 31CROSS_TOOL = 'gcc' 32PLATFORM = 'gcc' 33EXEC_PATH = os.getenv('RTT_EXEC_PATH') or r'/usr/bin' 34BUILD = 'debug' 35 36LINK_SCRIPT = 'link.lds' 37 38if PLATFORM == 'gcc': 39 PREFIX = os.getenv('RTT_CC_PREFIX') or 'arm-none-eabi-' 40 CC = PREFIX + 'gcc' 41 CXX = PREFIX + 'g++' 42 AS = PREFIX + 'gcc' 43 AR = PREFIX + 'ar' 44 LINK = PREFIX + 'gcc' 45 TARGET_EXT = 'elf' 46 SIZE = PREFIX + 'size' 47 OBJDUMP = PREFIX + 'objdump' 48 OBJCPY = PREFIX + 'objcopy' 49 STRIP = PREFIX + 'strip' 50 CFPFLAGS = ' -msoft-float' 51 AFPFLAGS = ' -mfloat-abi=softfp -mfpu=neon' 52 DEVICE = ' -march=armv7-a -mtune=cortex-a7 -ftree-vectorize -ffast-math -funwind-tables -fno-strict-aliasing' 53 54 CXXFLAGS= DEVICE + CFPFLAGS + ' -Wall -fdiagnostics-color=always' 55 CFLAGS = DEVICE + CFPFLAGS + ' -Wall -Wno-cpp -std=gnu99 -D_POSIX_SOURCE -fdiagnostics-color=always' 56 AFLAGS = DEVICE + ' -c' + AFPFLAGS + ' -x assembler-with-cpp' 57 LFLAGS = DEVICE + ' -Wl,--gc-sections,-Map=rtthread.map,-cref,-u,system_vectors -T '+ LINK_SCRIPT + ' -lsupc++ -lgcc -static' 58 CPATH = '' 59 LPATH = '' 60 61 if BUILD == 'debug': 62 CFLAGS += ' -O0 -gdwarf-2' 63 CXXFLAGS += ' -O0 -gdwarf-2' 64 AFLAGS += ' -gdwarf-2' 65 else: 66 CFLAGS += ' -Os' 67 CXXFLAGS += ' -Os' 68 CXXFLAGS += ' -Woverloaded-virtual -fno-rtti' 69 70 M_CFLAGS = CFLAGS + ' -mlong-calls -fPIC ' 71 M_CXXFLAGS = CXXFLAGS + ' -mlong-calls -fPIC' 72 M_LFLAGS = DEVICE + CXXFLAGS + ' -Wl,--gc-sections,-z,max-page-size=0x4' +\ 73 ' -shared -fPIC -nostartfiles -nostdlib -static-libgcc' 74 M_POST_ACTION = STRIP + ' -R .hash $TARGET\n' + SIZE + ' $TARGET \n' 75 76 DUMP_ACTION = OBJDUMP + ' -D -S $TARGET > rtt.asm\n' 77 POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' + SIZE + ' $TARGET \n' 78