代码拉取完成,页面将自动刷新
#-*- encoding: utf-8 -*-
#---------------------------------------------------------------------------------
# @File: Sconscript for Package
# @Author: Copyright (c) 2018-2019, liu2guang 1004383796@qq.com
#---------------------------------------------------------------------------------
import platform
import os
import shutil
import glob
#---------------------------------------------------------------------------------
# Compile Configuration
#---------------------------------------------------------------------------------
PKGNAME = "boot.elf"
BUILD = 'debug'
bsp_root = os.path.abspath(os.path.join(os.getcwd(), ".."))
SOURCES = Glob('application/*.c')
SOURCES += Glob('libcpu/*.S')
SOURCES += Glob('libcpu/*.c')
SOURCES += Glob('libc/string/*.c')
SOURCES += Glob('libc/stdio/*.c')
SOURCES += Glob('driver/*.c')
SOURCES += Glob('driver/*.S')
CPPPATH = [os.path.join(os.getcwd(), '.')]
CPPPATH += [os.path.join(os.getcwd(), 'libcpu/inc')]
CPPPATH += [os.path.join(os.getcwd(), 'libc/include')]
CPPPATH += [os.path.join(os.getcwd(), 'driver')]
CCFLAGS = " -g -Wall -nostdlib -nostdinc"
ASFLAGS = CCFLAGS + ' -D__ASSEMBLY__'
CPPDEFINES = []
LIBS = []
LIBPATH = []
LINKFLAGS = " -nostartfiles -Wl,--gc-sections,-Map=build/boot.map -T link.lds"
if BUILD == 'debug':
CCFLAGS += ' -O0 -nostartfiles -fno-builtin -gdwarf-2'
ASFLAGS += ' -gdwarf-2'
else:
CCFLAGS += ' -O2 -nostartfiles -fno-builtin -gdwarf-2'
ASFLAGS += ' -gdwarf-2'
#---------------------------------------------------------------------------------
# Toolchain Configuration
#---------------------------------------------------------------------------------
TOOLCHAIN_PREFIX = 'aarch64-none-elf-'
TOOLCHAIN_CC = TOOLCHAIN_PREFIX + 'gcc'
TOOLCHAIN_CXX = TOOLCHAIN_PREFIX + 'g++'
TOOLCHAIN_AS = TOOLCHAIN_PREFIX + 'gcc'
TOOLCHAIN_AR = TOOLCHAIN_PREFIX + 'ar'
TOOLCHAIN_LINK = TOOLCHAIN_PREFIX + 'gcc'
TOOLCHAIN_SIZE = TOOLCHAIN_PREFIX + 'size'
TOOLCHAIN_OBJCPY = TOOLCHAIN_PREFIX + 'objcopy'
TOOLCHAIN_OBJDMP = TOOLCHAIN_PREFIX + 'objdump'
TOOLCHAIN_PATH = r'/home/liboran/tool_chain/gcc-arm-9.2-2019.12-x86_64-aarch64-none-elf/bin'
#---------------------------------------------------------------------------------
# Prepare steakos env
#---------------------------------------------------------------------------------
env = Environment(tools = ['mingw'],
CC = TOOLCHAIN_CC,
CXX = TOOLCHAIN_CXX,
AS = TOOLCHAIN_AS,
AR = TOOLCHAIN_AR,
LINK = TOOLCHAIN_LINK,
)
env.PrependENVPath('PATH', TOOLCHAIN_PATH) # 配置工具链路径
env['ASCOM'] = env['ASPPCOM']
# env.Replace(
# ARCOMSTR = 'AR $TARGET',
# ASCOMSTR = 'AS $TARGET',
# ASPPCOMSTR = 'ASPP $TARGET',
# CCCOMSTR = 'CC $TARGET',
# CXXCOMSTR = 'CXX $TARGET',
# LINKCOMSTR = 'LINK $TARGET',
# RANLIBCOMSTR = 'RANLIB $TARGET',
# )
Export('env')
#---------------------------------------------------------------------------------
# Main target
#---------------------------------------------------------------------------------
objs = []
objs += env.Program(PKGNAME, SOURCES,
CPPPATH = CPPPATH,
CCFLAGS = CCFLAGS,
ASFLAGS = ASFLAGS,
CPPDEFINES = CPPDEFINES,
LIBS = LIBS,
LIBPATH = LIBPATH,
LINKFLAGS = LINKFLAGS)
env.Depends(objs, "link.lds")
# objs.extend(SConscript(bsp_root + '/lib/SConscript', variant_dir = bsp_root + '/build/lib', duplicate = 0))
POST_ACTION = TOOLCHAIN_OBJCPY + ' -O binary $TARGET build/boot.bin\n' +\
TOOLCHAIN_OBJDMP + ' -DSg $TARGET > build/boot.dis\n' +\
TOOLCHAIN_SIZE + ' $TARGET \n'
# POST_ACTION += RBL_CMD + 'GWS_C0.bin' + ' -v 1.0 ' + ' -p app2 -c lzma -s aes -i 0123456789ABCDEF -k 0123456789ABCDEF0123456789ABCDEF \n'
env.AddPostAction(objs, POST_ACTION)
Return("objs")
#---------------------------------------------------------------------------------
# End
#---------------------------------------------------------------------------------
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。