Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
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)
Ejemplo n.º 5
0
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())
      
      
Ejemplo n.º 6
0
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)