1 Star 0 Fork 0

Boran/Armv8_test

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
SConscript 4.04 KB
一键复制 编辑 原始数据 按行查看 历史
#-*- 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
#---------------------------------------------------------------------------------
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/liboran05/armv8_test.git
git@gitee.com:liboran05/armv8_test.git
liboran05
armv8_test
Armv8_test
master

搜索帮助