|
本帖最后由 lyyyuna 于 2013-4-27 20:00 编辑
scons是一个Python写的自动化构建工具,跟GNU make是同一类的工具。
我仿照RT-Thread的scons脚本,给AVR也写了一个。
avrconfig.py- import os
- # target name
- MCU = 'atmega16'
- TARGET_NAME = 'template'
- # toolchains options
- PLATFORM = 'gcc'
- EXEC_PATH = 'H:/Atmel/WinAVR-20100110/bin'
- PREFIX = 'avr-'
- CC = PREFIX + 'gcc'
- AS = PREFIX + 'gcc'
- AR = PREFIX + 'ar'
- LINK = PREFIX + 'gcc'
- TARGET_EXT = 'elf'
- SIZE = PREFIX + 'size'
- OBJDUMP = PREFIX + 'objdump'
- OBJCOPY = PREFIX + 'objcopy'
- TARGET = TARGET_NAME + '.' + TARGET_EXT
- DEVICE = '-mmcu=' + MCU
- CFLAGS = DEVICE
- AFLAGS = '-c' + DEVICE
- LFLAGS = DEVICE + ' -Wl,--gc-sections,-Map=' + TARGET_NAME + '.map,-cref '
- HEXFILE = TARGET_NAME + '.hex'
- POST_ACTION = OBJCOPY + ' -O ihex $TARGET ' + HEXFILE
复制代码 SConstruct- import os
- import sys
- import avrconfig
- from building import *
- env = Environment(tool = ['winavr'],
- AS = avrconfig.AS, ASFLAGS = avrconfig.AFLAGS,
- CC = avrconfig.CC, CCFLAGS = avrconfig.CFLAGS,
- AR = avrconfig.AR, ARFLAGS = '-rc',
- LINK = avrconfig.LINK, LINKFLAGS = avrconfig.LFLAGS)
- env.PrependENVPath('PATH', avrconfig.EXEC_PATH)
- Export('avrconfig')
- objs = LIHU_PrepareBuilding(env)
- env.Program(avrconfig.TARGET, objs)
- LIHU_EndBuilding(avrconfig.TARGET)
复制代码
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。
|