def ecpp_setupbuild_arch_avr8(conf,board,device,platform,arch): envname = 'device_%s' % device conf.load('ecpp_toolchain') conf.ecpp_setuptoolchain('avr8') create = envname not in conf.all_envs if create: conf.setenv(envname, conf.env) for x in 'ASFLAGS CFLAGS CXXFLAGS LINKFLAGS'.split(): conf.env.append_value(x, ['-mmcu=%s' % device.lower()]) for x in 'CFLAGS CXXFLAGS'.split(): conf.env.append_value(x, ['-Os', '-funsigned-bitfields', '-fshort-enums', '-fomit-frame-pointer']) conf.env.append_value('LINKFLAGS', ['--static', '-Wl,--gc-sections']) n = conf.root.find_dir(os.path.join(conf.env['ECPP_DIR'],'src')) conf.env.append_value('INCLUDES', n.abspath()) conf.env['DEVICE'] = device # Mark this env to build a ecpp library for # each target independently conf.env['ECPP_BUILDLIB_TARGET'] = True conf.env.append_value('ECPP_FEATURES',['avr-firmware']) else: conf.setenv(envname)
def ecpp_setupbuild_platform_netx(conf, device, board, platform, arch): global netx_cpu if not device: device, ldscript = netx_boards[board], 'board_hilscher_%s.ld' % board else: ldscript = 'device_hilscher_%s.ld' % device cpu = netx_cpu[device] envname = 'device_%s' % device conf.load('ecpp_toolchain') conf.ecpp_setuptoolchain('arm') if envname not in conf.all_envs: conf.setenv(envname, conf.env) for x in 'CFLAGS CXXFLAGS LINKFLAGS'.split(): conf.env.append_value(x, ['-mthumb-interwork','-mcpu=%s' % cpu]) for x in 'CFLAGS CXXFLAGS LINKFLAGS'.split(): conf.env.append_value(x + "_compile_thumb", ['-mthumb']) for x in 'CFLAGS CXXFLAGS LINKFLAGS'.split(): conf.env.append_value(x + "_compile_arm", ['-marm']) conf.env.append_value('LINKFLAGS', ['-nodefaultlibs', '--static', '-Wl,--gc-sections']) ldscript = conf.root.find_node(os.path.join(conf.env['ECPP_DIR'],'linkerscripts',ldscript)) if ldscript: conf.env['LINKERSCRIPT'] = ldscript.abspath() conf.env['DEVICE'] = device # Mark this env to build a ecpp library for conf.env['ECPP_BUILDLIB'] = True conf.env.append_value('ECPP_LIBNAME', 'ecpp_%s' % conf.env['DEVICE'].lower()) # new libc needs ecpp library for support code! conf.env['STLIB_c'] = ['c', 'ecpp_%s' % conf.env['DEVICE'].lower()] # lib gcc needs memcpy from libc conf.env['STLIB_gcc'] = ['gcc', 'c'] conf.env.append_value('ECPP_FEATURES',['netx-firmware']) else: conf.setenv(envname)
def ecpp_setupbuild_platform_stm32(conf, device, board, platform, arch): global stm32_vars ldscript = 'device_%s.ld' % device vars = stm32_vars[device] envname = 'device_%s' % device conf.load('ecpp_toolchain ecpp_platform_arm') conf.ecpp_setuptoolchain('arm') create = envname not in conf.all_envs if create: conf.setenv(envname, conf.env) conf.env['ECPP_ENVNAME'] = envname for k,v in vars.items(): conf.env.append_value(k, Utils.to_list(v)) for x in 'CFLAGS CXXFLAGS LINKFLAGS'.split(): conf.env.append_value(x + "_release", ['-Os']) conf.env.append_value(x + "_debug", ['-O0']) conf.env.append_value('LINKFLAGS', ['-nodefaultlibs', '--static', '-Wl,--gc-sections']) ldscript = conf.root.find_node(os.path.join(conf.env['ECPP_DIR'],'linkerscripts',ldscript)) if ldscript: conf.env['LINKERSCRIPT'] = ldscript.abspath() conf.env['DEVICE'] = device # new libc needs ecpp library for support code! conf.env['STLIB_c'] = ['c', 'ecpp_%s' % conf.env['DEVICE'].lower()] conf.env['STLIB_gcc'] = ['gcc', 'c'] # Mark this env to build a ecpp library for conf.env['ECPP_BUILDLIB'] = True conf.env.append_value('ECPP_LIBNAME', 'ecpp_%s' % conf.env['DEVICE'].lower()) conf.env.append_value('ECPP_FEATURES',['stm32-firmware']) else: conf.setenv(envname)
def ecpp_setupbuild_platform_atsam(conf, device, board, platform, arch): global atsam_vars vars = atsam_vars[device] envname = 'device_%s' % device conf.load('ecpp_toolchain ecpp_platform_arm') conf.ecpp_setuptoolchain('arm') create = envname not in conf.all_envs if create: conf.setenv(envname, conf.env) conf.env['ECPP_ENVNAME'] = envname for k,v in vars.items(): conf.env.append_value(k, Utils.to_list(v)) for x in 'CFLAGS CXXFLAGS LINKFLAGS'.split(): conf.env.append_value(x + "_release", ['-Os']) conf.env.append_value(x + "_debug", ['-O0']) conf.env.append_value('LINKFLAGS', ['-nodefaultlibs', '--static', '-Wl,--gc-sections']) for x in 'ram flash'.split(): ldscript = 'device_%s_%s.ld' % (device,x) ldscript = conf.root.find_node(os.path.join(conf.env['ECPP_DIR'],'linkerscripts',ldscript )) if ldscript: conf.env['LINKERSCRIPT_%s' % x] = ldscript.abspath() else: conf.env['LINKERSCRIPT_%s' % x] = u'Error: Please define a linkerscript in wscript' conf.env['DEVICE'] = device # new libc needs ecpp library for support code! conf.env['STLIB_c'] = ['c', 'gcc', 'ecpp_%s' % conf.env['DEVICE'].lower()] conf.env['STLIB_gcc'] = [] conf.env.append_value('ECPP_FEATURES',['firmware-hex']) else: conf.setenv(envname)
def ecpp_setupbuild_platform_native(conf, device, board, platform, arch): envname = 'platform_%s' % platform conf.load('ecpp_toolchain') conf.ecpp_setuptoolchain('native') create = envname not in conf.all_envs conf.setenv(envname, conf.env) if create: for x in 'CFLAGS CXXFLAGS'.split(): conf.env.append_value(x, ['-mtune=native']) conf.env.append_value(x + "_debug", ['-O0', '-g']) conf.env.append_value(x + "_release", ['-O2', '-g']) n = conf.root.find_dir(os.path.join(conf.env['ECPP_DIR'],'src')) conf.env.append_value('INCLUDES', n.abspath())
def ecpp_setupbuild_platform_nrf52(conf, device, board, platform, arch): global nrf52_vars ldscript = 'device_%s.ld' % device vars = nrf52_vars[device] envname = 'device_%s' % device conf.load('ecpp_toolchain ecpp_platform_arm') conf.ecpp_setuptoolchain('arm') create = envname not in conf.all_envs if create: conf.setenv(envname, conf.env) conf.env['ECPP_ENVNAME'] = envname for k,v in vars.items(): conf.env.append_value(k, Utils.to_list(v)) for x in 'CFLAGS CXXFLAGS LINKFLAGS'.split(): conf.env.append_value(x + "_release", ['-Os']) conf.env.append_value(x + "_debug", ['-O0']) conf.env.append_value('LINKFLAGS', ['-nodefaultlibs', '--static', '-Wl,--gc-sections']) ldscript = conf.root.find_node(os.path.join(conf.env['ECPP_DIR'],'linkerscripts',ldscript)) if ldscript: conf.env['LINKERSCRIPT_ecpp'] = ldscript.abspath() conf.env['DEVICE'] = device conf.env['STLIB_gcc'] = ['gcc', 'c'] conf.env.append_value('ECPP_FEATURES',['firmware-hex']) else: conf.setenv(envname)