feat(build): support Kconfig
Kconfig usages are the same with liteos_a Signed-off-by: Caoruihong <crh.cao@huawei.com> Change-Id: I9aacbb69da88d5427cced89d1a49cb1041afa998
This commit is contained in:
parent
f3631fa266
commit
7e673430dc
|
@ -14,3 +14,8 @@ targets/cortex-m7_nucleo_f767zi_gcc/build
|
|||
*.o
|
||||
*.d
|
||||
*.su
|
||||
|
||||
# Menuconfig temp files
|
||||
/config.h
|
||||
/.config
|
||||
/.config.old
|
||||
|
|
328
BUILD.gn
328
BUILD.gn
|
@ -27,67 +27,293 @@
|
|||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("config.gni")
|
||||
import("//build/lite/config/component/lite_component.gni")
|
||||
|
||||
LITEOS_LOS_CONFIG_H = rebase_path("$LITEOSTOPDIR/kernel/include/los_config.h")
|
||||
LITEOS_MENUCONFIG_H = rebase_path("$root_out_dir/config.h")
|
||||
|
||||
declare_args() {
|
||||
liteos_name = "OHOS_Image"
|
||||
liteos_config_file = "${ohos_build_type}.config"
|
||||
liteos_kernel_only = false
|
||||
}
|
||||
|
||||
liteos_config_file =
|
||||
rebase_path(liteos_config_file, "", "$product_path/kernel_configs")
|
||||
print("liteos_config_file:", liteos_config_file)
|
||||
|
||||
exec_script("//build/lite/run_shell_cmd.py",
|
||||
[ "env" + " CONFIG_=LOSCFG_" + " KCONFIG_CONFIG_HEADER='y=true'" +
|
||||
" KCONFIG_CONFIG=$liteos_config_file" +
|
||||
" DEVICE_PATH=$device_path" + " srctree=" + rebase_path(".") +
|
||||
" genconfig" + " --header-path $LITEOS_MENUCONFIG_H" +
|
||||
" --file-list kconfig_files.txt" +
|
||||
" --env-list kconfig_env.txt" + " --config-out config.gni" ],
|
||||
"",
|
||||
[ liteos_config_file ])
|
||||
|
||||
import("liteos.gni")
|
||||
|
||||
visibility = [ "$LITEOSTOPDIR/*" ]
|
||||
|
||||
liteos_arch_cflags = []
|
||||
if (defined(LOSCFG_ARCH_ARM)) {
|
||||
mcpu = LOSCFG_ARCH_CPU
|
||||
if (defined(LOSCFG_ARCH_ARM_AARCH64) && defined(LOSCFG_ARCH_FPU_DISABLE)) {
|
||||
mcpu += "+nofp"
|
||||
}
|
||||
liteos_arch_cflags += [ "-mcpu=$mcpu" ]
|
||||
if (defined(LOSCFG_ARCH_ARM_AARCH32) && defined(LOSCFG_ARCH_FPU)) {
|
||||
liteos_arch_cflags += [ "-mfpu=$LOSCFG_ARCH_FPU" ]
|
||||
}
|
||||
}
|
||||
|
||||
cc = "$ohos_current_cc_command " + string_join(" ", liteos_arch_cflags)
|
||||
if (ohos_build_compiler == "clang") {
|
||||
cc += " --target=$target_triple"
|
||||
}
|
||||
|
||||
config("arch_config") {
|
||||
cflags = liteos_arch_cflags
|
||||
asmflags = cflags
|
||||
ldflags = cflags
|
||||
if (defined(LOSCFG_ARCH_ARM_AARCH32)) {
|
||||
if (!defined(LOSCFG_COMPILER_CLANG_LLVM)) {
|
||||
cflags += [ "-mthumb-interwork" ]
|
||||
}
|
||||
}
|
||||
if (defined(LOSCFG_THUMB)) {
|
||||
cflags += [ "-mthumb" ]
|
||||
if (defined(LOSCFG_COMPILER_CLANG_LLVM)) {
|
||||
cflags += [ "-mimplicit-it=thumb" ]
|
||||
} else {
|
||||
cflags += [ "-Wa,-mimplicit-it=thumb" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
config("stdinc_config") {
|
||||
std_include = exec_script("//build/lite/run_shell_cmd.py",
|
||||
[ "$cc -print-file-name=include" ],
|
||||
"trim string")
|
||||
cflags = [
|
||||
"-isystem",
|
||||
std_include,
|
||||
]
|
||||
cflags += [ "-nostdinc" ]
|
||||
asmflags = cflags
|
||||
}
|
||||
|
||||
config("ssp_config") {
|
||||
cflags = []
|
||||
if (defined(LOSCFG_CC_STACKPROTECTOR_ALL)) {
|
||||
cflags += [ "-fstack-protector-all" ]
|
||||
} else if (defined(LOSCFG_CC_STACKPROTECTOR_STRONG)) {
|
||||
cflags += [ "-fstack-protector-strong" ]
|
||||
} else if (defined(LOSCFG_CC_STACKPROTECTOR)) {
|
||||
cflags += [
|
||||
"-fstack-protector",
|
||||
"--param",
|
||||
"ssp-buffer-size=4",
|
||||
]
|
||||
} else {
|
||||
cflags += [ "-fno-stack-protector" ]
|
||||
}
|
||||
asmflags = cflags
|
||||
}
|
||||
|
||||
config("optimize_config") {
|
||||
cflags = []
|
||||
if (defined(LOSCFG_COMPILE_DEBUG)) {
|
||||
cflags += [
|
||||
"-g",
|
||||
"-gdwarf-2",
|
||||
]
|
||||
optimization_cflag = "-O0"
|
||||
}
|
||||
if (defined(LOSCFG_COMPILE_OPTIMIZE)) {
|
||||
optimization_cflag = "-O2"
|
||||
}
|
||||
if (defined(LOSCFG_COMPILE_OPTIMIZE_SIZE)) {
|
||||
if (defined(LOSCFG_COMPILER_CLANG_LLVM)) {
|
||||
optimization_cflag = "-Oz"
|
||||
} else {
|
||||
optimization_cflag = "-Os"
|
||||
}
|
||||
}
|
||||
if (defined(LOSCFG_COMPILE_LTO)) {
|
||||
if (defined(LOSCFG_COMPILER_CLANG_LLVM)) {
|
||||
cflags += [ "-flto=thin" ]
|
||||
} else {
|
||||
#cflags += [ "-flto" ]
|
||||
}
|
||||
}
|
||||
cflags += [ optimization_cflag ]
|
||||
asmflags = cflags
|
||||
}
|
||||
|
||||
config("kconfig_config") {
|
||||
cflags = [
|
||||
"-imacros",
|
||||
"$LITEOS_MENUCONFIG_H",
|
||||
]
|
||||
asmflags = cflags
|
||||
}
|
||||
|
||||
config("warn_config") {
|
||||
cflags = [
|
||||
"-Wall",
|
||||
"-Werror",
|
||||
"-Wpointer-arith",
|
||||
"-Wstrict-prototypes",
|
||||
"-Winvalid-pch",
|
||||
"-Wno-address-of-packed-member",
|
||||
]
|
||||
asmflags = cflags
|
||||
}
|
||||
|
||||
config("dialect_config") {
|
||||
cflags_c = [ "-std=c99" ]
|
||||
cflags_cc = [ "-std=c++11" ]
|
||||
}
|
||||
|
||||
config("misc_config") {
|
||||
defines = [ "__LITEOS__" ]
|
||||
defines += [ "__LITEOS_M__" ]
|
||||
if (!defined(LOSCFG_DEBUG_VERSION)) {
|
||||
defines += [ "NDEBUG" ]
|
||||
}
|
||||
|
||||
cflags = [
|
||||
"-fno-pic",
|
||||
"-fno-builtin",
|
||||
"-fms-extensions",
|
||||
"-fno-strict-aliasing",
|
||||
"-fno-common",
|
||||
"-fsigned-char",
|
||||
"-ffunction-sections",
|
||||
"-fdata-sections",
|
||||
"-fno-exceptions",
|
||||
"-fno-omit-frame-pointer",
|
||||
"-fno-short-enums",
|
||||
]
|
||||
|
||||
if (!defined(LOSCFG_COMPILER_CLANG_LLVM)) {
|
||||
cflags += [ "-fno-aggressive-loop-optimizations" ]
|
||||
}
|
||||
|
||||
asmflags = cflags
|
||||
asmflags += [ "-DCLZ=CLZ" ]
|
||||
}
|
||||
|
||||
config("los_config") {
|
||||
cflags = [ "-Werror" ]
|
||||
configs = [
|
||||
":arch_config",
|
||||
":kconfig_config",
|
||||
|
||||
asmflags = [
|
||||
"-DCLZ=CLZ",
|
||||
"-imacros",
|
||||
"$LITEOS_LOS_CONFIG_H",
|
||||
#":stdinc_config",
|
||||
":dialect_config",
|
||||
":optimize_config",
|
||||
":ssp_config",
|
||||
|
||||
#":warn_config",
|
||||
":misc_config",
|
||||
]
|
||||
}
|
||||
|
||||
cmd = "if [ -f $device_path/BUILD.gn ]; then echo true; else echo false; fi"
|
||||
HAVE_DEVICE_SDK = exec_script("//build/lite/run_shell_cmd.py", [ cmd ], "value")
|
||||
|
||||
config("public") {
|
||||
configs = [
|
||||
"kernel/arch:public",
|
||||
"kernel:public",
|
||||
"kal:public",
|
||||
"components:public",
|
||||
"utils:public",
|
||||
]
|
||||
|
||||
include_dirs = [
|
||||
"//kernel/liteos_m/kernel/include",
|
||||
"//kernel/liteos_m/kernel/arch/include",
|
||||
"//kernel/liteos_m/utils",
|
||||
"//third_party/bounds_checking_function/include",
|
||||
if (HAVE_DEVICE_SDK) {
|
||||
configs += [ "$device_path:public" ]
|
||||
}
|
||||
|
||||
configs +=
|
||||
[ "$LITEOSTHIRDPARTY/bounds_checking_function:libsec_public_config" ]
|
||||
configs += [ "$LITEOSTHIRDPARTY/musl/porting/liteos_m/kernel:include" ]
|
||||
}
|
||||
|
||||
group("modules") {
|
||||
deps = [
|
||||
"components",
|
||||
"kal",
|
||||
"kernel",
|
||||
"kernel/arch",
|
||||
"testsuites",
|
||||
"utils",
|
||||
HDFTOPDIR,
|
||||
]
|
||||
|
||||
if (HAVE_DEVICE_SDK) {
|
||||
deps += [ device_path ]
|
||||
}
|
||||
|
||||
deps += [ "$LITEOSTHIRDPARTY/bounds_checking_function:libsec_static" ]
|
||||
deps += [ "$LITEOSTHIRDPARTY/musl/porting/liteos_m/kernel" ]
|
||||
}
|
||||
|
||||
static_library("libkernel") {
|
||||
deps = [ ":modules" ]
|
||||
public_configs = [
|
||||
":public",
|
||||
":los_config",
|
||||
]
|
||||
complete_static_lib = true
|
||||
visibility += []
|
||||
}
|
||||
|
||||
group("kernel") {
|
||||
deps = [
|
||||
"kernel:kernel",
|
||||
"utils:utils",
|
||||
"//third_party/bounds_checking_function:libsec_static",
|
||||
public_deps = [ ":libkernel" ]
|
||||
visibility += [ "//build/lite:ohos" ]
|
||||
}
|
||||
|
||||
group("liteos_m") {
|
||||
}
|
||||
|
||||
executable("liteos") {
|
||||
configs += [
|
||||
":public",
|
||||
":los_config",
|
||||
]
|
||||
if (enable_ohos_kernel_liteos_m_cppsupport) {
|
||||
deps += [ "components/cppsupport:cppsupport" ]
|
||||
}
|
||||
if (enable_ohos_kernel_liteos_m_cpup) {
|
||||
deps += [ "components/cpup:cpup" ]
|
||||
}
|
||||
if (enable_ohos_kernel_liteos_m_exchook) {
|
||||
deps += [ "components/exchook:exchook" ]
|
||||
}
|
||||
if (enable_ohos_kernel_liteos_m_backtrace) {
|
||||
deps += [ "components/backtrace:backtrace" ]
|
||||
}
|
||||
if (enable_ohos_kernel_liteos_m_fs) {
|
||||
deps += [ "components/fs:fs" ]
|
||||
}
|
||||
if (enable_ohos_kernel_liteos_m_pm) {
|
||||
deps += [ "components/power:pm" ]
|
||||
}
|
||||
if (enable_ohos_kernel_liteos_m_trace) {
|
||||
deps += [ "components/trace:trace" ]
|
||||
}
|
||||
if (enable_ohos_kernel_liteos_m_kal) {
|
||||
deps += [ "kal:kal" ]
|
||||
}
|
||||
if (enable_ohos_kernel_liteos_m_shell) {
|
||||
deps += [ "components/shell:shell" ]
|
||||
}
|
||||
if (enable_ohos_kernel_liteos_m_test) {
|
||||
deps += [ "testsuites:test" ]
|
||||
}
|
||||
if (enable_ohos_kernel_liteos_m_lwip) {
|
||||
deps += [ ohos_kernel_liteos_m_lwip_path ]
|
||||
}
|
||||
if (enable_ohos_kernel_liteos_m_dynlink) {
|
||||
deps += [ "components/dynlink:dynlink" ]
|
||||
|
||||
ldflags = [
|
||||
"-static",
|
||||
"-Wl,--gc-sections",
|
||||
"-Wl,-Map=$liteos_name.map",
|
||||
]
|
||||
|
||||
output_dir = target_out_dir
|
||||
|
||||
if (liteos_kernel_only) {
|
||||
deps = [ ":kernel" ]
|
||||
} else {
|
||||
deps = [ "//build/lite:ohos" ]
|
||||
}
|
||||
}
|
||||
|
||||
copy("copy_liteos") {
|
||||
deps = [ ":liteos" ]
|
||||
sources = [ "$target_out_dir/unstripped/bin/liteos" ]
|
||||
outputs = [ "$root_out_dir/$liteos_name" ]
|
||||
}
|
||||
|
||||
build_ext_component("build_kernel_image") {
|
||||
deps = [ ":copy_liteos" ]
|
||||
exec_path = rebase_path(root_out_dir)
|
||||
|
||||
objcopy = "${compile_prefix}objcopy$toolchain_cmd_suffix"
|
||||
objdump = "${compile_prefix}objdump$toolchain_cmd_suffix"
|
||||
|
||||
command = "$objcopy -O binary $liteos_name $liteos_name.bin"
|
||||
command +=
|
||||
" && sh -c '$objdump -t $liteos_name | sort >$liteos_name.sym.sorted'"
|
||||
command += " && sh -c '$objdump -d $liteos_name >$liteos_name.asm'"
|
||||
}
|
||||
|
|
|
@ -0,0 +1,647 @@
|
|||
# Copyright (c) 2013-2019 Huawei Technologies Co., Ltd. All rights reserved.
|
||||
# Copyright (c) 2020-2021 Huawei Device Co., Ltd. All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without modification,
|
||||
# are permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||
# conditions and the following disclaimer.
|
||||
#
|
||||
# 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
# of conditions and the following disclaimer in the documentation and/or other materials
|
||||
# provided with the distribution.
|
||||
#
|
||||
# 3. Neither the name of the copyright holder nor the names of its contributors may be used
|
||||
# to endorse or promote products derived from this software without specific prior written
|
||||
# permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||||
# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
mainmenu "Huawei LiteOS Configuration"
|
||||
|
||||
menu "Compiler"
|
||||
choice
|
||||
prompt "Compiler type"
|
||||
default COMPILER_GCC
|
||||
help
|
||||
Choose compiler type.
|
||||
|
||||
config COMPILER_GCC
|
||||
bool "GCC"
|
||||
|
||||
config CROSS_COMPILE
|
||||
string "GCC cross-compile toolchain prefix"
|
||||
depends on COMPILER_GCC
|
||||
default "arm-none-eabi-" if ARCH_ARM_AARCH32
|
||||
|
||||
config COMPILER_CLANG_LLVM
|
||||
bool "Clang"
|
||||
|
||||
config LLVM_TARGET
|
||||
string "Clang LLVM target"
|
||||
depends on COMPILER_CLANG_LLVM
|
||||
default "arm-liteos" if ARCH_ARM_AARCH32
|
||||
|
||||
endchoice
|
||||
|
||||
config COMPILE_DEBUG
|
||||
bool "Enable debug options"
|
||||
default n
|
||||
help
|
||||
Answer Y to add -g option in compile command.
|
||||
|
||||
config COMPILE_OPTIMIZE
|
||||
bool "Enable code optimization options"
|
||||
default y
|
||||
help
|
||||
Answer Y to add optimization options for efficient code.
|
||||
The final binary size will be smaller and execute faster.
|
||||
But the debugging experience may be worst somehow.
|
||||
|
||||
config COMPILE_OPTIMIZE_SIZE
|
||||
bool "Enable code size optimization options" if COMPILE_OPTIMIZE
|
||||
default y
|
||||
help
|
||||
Answer Y to add optimization options for small code size.
|
||||
The final binary size will be smaller.
|
||||
But the compile time may be a bit longer.
|
||||
|
||||
config COMPILE_LTO
|
||||
bool "Enable link time optimization (LTO)" if COMPILE_OPTIMIZE_SIZE
|
||||
default y
|
||||
help
|
||||
Answer Y to add lto options for more smaller code size.
|
||||
The final binary size will be smaller.
|
||||
But the compile time may be much longer.
|
||||
|
||||
endmenu
|
||||
|
||||
menu "Platform"
|
||||
|
||||
######################### config options of bsp #####################
|
||||
config PLATFORM
|
||||
string
|
||||
default "virt" if PLATFORM_QEMU_ARM_VIRT_CM7 || PLATFORM_QEMU_ARM_VIRT_CM4 || PRODUCT_QEMU_RISCV32_VIRT || PLATFORM_QEMU_CSKY_SMARTL || PLATFORM_QEMU_XTENSA_ESP32
|
||||
|
||||
config PRODUCT_NAME
|
||||
string
|
||||
default "arm_virt" if PRODUCT_QEMU_ARM
|
||||
default "arm_mps2_an386" if PRODUCT_QEMU_ARM_MPS2_AN386
|
||||
default "riscv32_virt" if PRODUCT_QEMU_RISCV32_VIRT
|
||||
default "csky_smartl_e802" if PRODUCT_QEMU_CSKY_SMARTL_E802
|
||||
default "xtensa_esp32" if PRODUCT_QEMU_XTENSA_ESP32
|
||||
|
||||
config DEVICE_COMPANY
|
||||
string
|
||||
default "qemu" if PLATFORM_QEMU_ARM_VIRT_CM7 || PLATFORM_QEMU_ARM_VIRT_CM4 || PRODUCT_QEMU_RISCV32_VIRT || PLATFORM_QEMU_CSKY_SMARTL || PLATFORM_QEMU_XTENSA_ESP32
|
||||
|
||||
choice
|
||||
prompt "Chip"
|
||||
default PLATFORM_QEMU_ARM_VIRT_CM7
|
||||
help
|
||||
Qemu ARM Virt variants (based on different CPU types):
|
||||
- qemu_arm_virt_cm7
|
||||
- qemu_arm_virt_cm4
|
||||
- qemu_riscv32_virt
|
||||
- qemu_csky_smartl
|
||||
- qemu_xtensa_esp32
|
||||
|
||||
config PLATFORM_QEMU_ARM_VIRT_CM7
|
||||
bool "qemu_arm_virt_cm7"
|
||||
select ARCH_CORTEX_M7
|
||||
help
|
||||
QEMU ARM Virtual Platform using Cortex-M7 CPU.
|
||||
|
||||
config PLATFORM_QEMU_ARM_VIRT_CM4
|
||||
bool "qemu_arm_virt_cm4"
|
||||
select ARCH_CORTEX_M4
|
||||
help
|
||||
QEMU ARM Virtual Platform using Cortex-M4 CPU.
|
||||
|
||||
config PLATFORM_QEMU_RISCV32_VIRT
|
||||
bool "qemu_riscv32_virt"
|
||||
select ARCH_RISCV32
|
||||
help
|
||||
QEMU RISCV Virtual Platform using riscv32 CPU.
|
||||
|
||||
config PLATFORM_QEMU_CSKY_SMARTL
|
||||
bool "qemu_csky_smartl"
|
||||
select ARCH_CSKY
|
||||
help
|
||||
QEMU SmartL Virtual Platform using csky CPU.
|
||||
|
||||
config PLATFORM_QEMU_XTENSA_ESP32
|
||||
bool "qemu_xtensa_esp32"
|
||||
select ARCH_XTENSA
|
||||
help
|
||||
QEMU ESP32 Virtual Platform using xtensa CPU.
|
||||
|
||||
endchoice
|
||||
|
||||
choice
|
||||
prompt "Product"
|
||||
help
|
||||
Select your target board.
|
||||
|
||||
config PRODUCT_QEMU_ARM
|
||||
bool "arm_virt" if PLATFORM_QEMU_ARM_VIRT_CM7
|
||||
|
||||
config PRODUCT_QEMU_ARM_MPS2_AN386
|
||||
bool "arm_mps2_an386" if PLATFORM_QEMU_ARM_VIRT_CM4
|
||||
|
||||
config PRODUCT_QEMU_RISCV32_VIRT
|
||||
bool "riscv32_virt" if PLATFORM_QEMU_RISCV32_VIRT
|
||||
|
||||
config PRODUCT_QEMU_CSKY_SMARTL_E802
|
||||
bool "csky_smartl_e802" if PLATFORM_QEMU_CSKY_SMARTL
|
||||
|
||||
config PRODUCT_QEMU_XTENSA_ESP32
|
||||
bool "xtensa_esp32" if PLATFORM_QEMU_XTENSA_ESP32
|
||||
|
||||
endchoice
|
||||
|
||||
|
||||
######################### config options of cpu arch ################
|
||||
source "kernel/arch/Kconfig"
|
||||
|
||||
# Device Kconfig import
|
||||
osource "$(DEVICE_PATH)/Kconfig"
|
||||
|
||||
config QUICK_START
|
||||
bool "Enable QUICK_START"
|
||||
default n
|
||||
depends on DRIVERS && FS_VFS
|
||||
help
|
||||
Answer Y to enable LiteOS support quick start.
|
||||
endmenu
|
||||
|
||||
######################### config options of kernel #####################
|
||||
menu "Kernel"
|
||||
|
||||
######################### config options of extended #####################
|
||||
|
||||
config KERNEL_EXTKERNEL
|
||||
bool "Enable Extend Kernel"
|
||||
default y
|
||||
help
|
||||
This option will enable extend Kernel of LiteOS. Extend kernel include
|
||||
cppsupport, cpup, etc. You can select one or some
|
||||
of them.
|
||||
|
||||
config KERNEL_BACKTRACE
|
||||
bool "Enable Backtrace"
|
||||
default n
|
||||
depends on KERNEL_EXTKERNEL
|
||||
help
|
||||
If you wish to build LiteOS with support for backtrace.
|
||||
|
||||
choice
|
||||
prompt "Select Backtrace Type"
|
||||
depends on KERNEL_BACKTRACE
|
||||
|
||||
config BACKTRACE_TYPE_1
|
||||
bool "1: Call stack analysis for cortex-m series by scanning the stack"
|
||||
depends on ARCH_ARM && !ARCH_ARM9
|
||||
|
||||
config BACKTRACE_TYPE_2
|
||||
bool "2: Call stack analysis for risc-v by using frame pointer"
|
||||
depends on ARCH_RISCV
|
||||
|
||||
config BACKTRACE_TYPE_3
|
||||
bool "3: Call stack analysis for risc-v by scanning the stack"
|
||||
depends on ARCH_RISCV
|
||||
|
||||
config BACKTRACE_TYPE_4
|
||||
bool "4: Call stack analysis for xtensa by scanning the stack"
|
||||
depends on ARCH_XTENSA
|
||||
|
||||
config BACKTRACE_TYPE_5
|
||||
bool "5: Call stack analysis for c-sky by scanning the stack"
|
||||
depends on ARCH_CSKY
|
||||
|
||||
config BACKTRACE_TYPE_6
|
||||
bool "6: Call stack analysis for arm9 by scanning the stack"
|
||||
depends on ARCH_ARM9
|
||||
|
||||
endchoice
|
||||
|
||||
config BACKTRACE_TYPE
|
||||
int
|
||||
default 0 if ! KERNEL_BACKTRACE
|
||||
default 1 if BACKTRACE_TYPE_1
|
||||
default 2 if BACKTRACE_TYPE_2
|
||||
default 3 if BACKTRACE_TYPE_3
|
||||
default 4 if BACKTRACE_TYPE_4
|
||||
default 5 if BACKTRACE_TYPE_5
|
||||
default 6 if BACKTRACE_TYPE_6
|
||||
|
||||
config BACKTRACE_DEPTH
|
||||
int "Backtrace depth"
|
||||
default 15
|
||||
depends on KERNEL_BACKTRACE
|
||||
|
||||
config KERNEL_CPPSUPPORT
|
||||
bool "Enable C++ Support"
|
||||
default n
|
||||
depends on KERNEL_EXTKERNEL
|
||||
help
|
||||
If you wish to build LiteOS with support for C++.
|
||||
|
||||
config BASE_CORE_CPUP
|
||||
bool
|
||||
default n
|
||||
|
||||
config KERNEL_CPUP
|
||||
bool "Enable Cpup"
|
||||
default n
|
||||
depends on KERNEL_EXTKERNEL
|
||||
select BASE_CORE_CPUP
|
||||
help
|
||||
If you wish to build LiteOS with support for cpup.
|
||||
|
||||
config CPUP_INCLUDE_IRQ
|
||||
bool "Enable Cpup include irq"
|
||||
default y
|
||||
depends on KERNEL_CPUP
|
||||
help
|
||||
If you wish to include irq usage for cpup.
|
||||
|
||||
config DYNLINK
|
||||
bool "Enable Dynamic Link Feature"
|
||||
default n
|
||||
depends on KERNEL_EXTKERNEL && ARCH_ARM
|
||||
help
|
||||
If you wish to build LiteOS with support for dynamic link.
|
||||
|
||||
config KERNEL_PM
|
||||
bool "Enable Power Management"
|
||||
default n
|
||||
depends on KERNEL_EXTKERNEL
|
||||
help
|
||||
Configuration item for low power frame tailoring.
|
||||
If you wish to build LiteOS with support for power management.
|
||||
|
||||
config KERNEL_PM_TASK_PTIORITY
|
||||
int "Power Management Task Priority"
|
||||
default 1
|
||||
range 1 31
|
||||
depends on KERNEL_PM
|
||||
help
|
||||
Configuration item for priority of low-power task.
|
||||
|
||||
config KERNEL_PM_TASK_STACKSIZE
|
||||
int "Power Management Task Stack Size"
|
||||
default 1024
|
||||
depends on KERNEL_PM
|
||||
help
|
||||
Configuration item for stack size of low-power task.
|
||||
|
||||
config KERNEL_PM_DEBUG
|
||||
bool "Power Management Debug"
|
||||
default n
|
||||
depends on KERNEL_PM
|
||||
help
|
||||
Configuration item for low power frame debug tailoring.
|
||||
|
||||
config DEBUG_HOOK
|
||||
bool
|
||||
default n
|
||||
|
||||
config PLATFORM_EXC
|
||||
bool "Enable Hook Feature"
|
||||
default n
|
||||
depends on KERNEL_EXTKERNEL
|
||||
select DEBUG_HOOK
|
||||
|
||||
######################### config options of trace #########################
|
||||
source "components/trace/Kconfig"
|
||||
|
||||
endmenu
|
||||
|
||||
######################### config options of lib ########################
|
||||
menu "Lib"
|
||||
config LIB_LIBC
|
||||
bool "Enable Libc"
|
||||
default y
|
||||
help
|
||||
Answer Y to enable libc for full code.
|
||||
|
||||
endmenu
|
||||
|
||||
|
||||
######################### config options of compatibility ##############
|
||||
menu "Compat"
|
||||
config COMPAT_POSIX
|
||||
bool "Enable Posix"
|
||||
default y
|
||||
|
||||
help
|
||||
Answer Y to enable LiteOS support posix interface.
|
||||
|
||||
config COMPAT_CMSIS
|
||||
bool "Enable CMSIS v2"
|
||||
default n
|
||||
|
||||
help
|
||||
Answer Y to enable LiteOS support CMSIS v2 interface.
|
||||
|
||||
endmenu
|
||||
|
||||
######################## config options of filesystem ##################
|
||||
menu "FileSystem"
|
||||
config FS_VFS
|
||||
bool "Enable VFS"
|
||||
default y
|
||||
|
||||
help
|
||||
Answer Y to enable LiteOS support virtual filesystem.
|
||||
|
||||
source "components/fs/fatfs/Kconfig"
|
||||
|
||||
config FS_LITTLEFS
|
||||
bool "Enable littlefs"
|
||||
default n
|
||||
depends on FS_VFS
|
||||
select SUPPORT_LITTLEFS
|
||||
help
|
||||
Answer Y to enable LiteOS support littlefs.
|
||||
|
||||
config LFS_MAX_MOUNT_SIZE
|
||||
int "Littlefs max mounts"
|
||||
default 3
|
||||
depends on FS_LITTLEFS
|
||||
|
||||
config SUPPORT_FATFS
|
||||
bool
|
||||
default n
|
||||
|
||||
config SUPPORT_LITTLEFS
|
||||
bool
|
||||
default n
|
||||
|
||||
endmenu
|
||||
|
||||
######################## config options of net ############################
|
||||
menu "Net"
|
||||
config NET_LWIP
|
||||
bool "Enable Lwip"
|
||||
default n
|
||||
select NET_LWIP_SACK
|
||||
select COMPAT_CMSIS
|
||||
|
||||
help
|
||||
Answer Y to enable LiteOS support lwip.
|
||||
|
||||
config NET_LWIP_SACK
|
||||
bool
|
||||
default n
|
||||
|
||||
endmenu
|
||||
|
||||
######################## config options of debug ########################
|
||||
menu "Debug"
|
||||
config GDB
|
||||
bool "Enable gdb functions"
|
||||
default n
|
||||
help
|
||||
Answer Y to enable gdb functions.
|
||||
|
||||
config PLATFORM_ADAPT
|
||||
bool "Enable Os_adapt"
|
||||
default y
|
||||
help
|
||||
Answer Y to add os_adapt.c to LiteOS.
|
||||
|
||||
config ENABLE_OOM_LOOP_TASK
|
||||
bool "Enable Oom loop task"
|
||||
default n
|
||||
depends on KERNEL_VM
|
||||
help
|
||||
Answer Y to enable oom loop kthread to check system out of memory.
|
||||
|
||||
config DO_ALIGN
|
||||
bool "Enable do align for hi3518e"
|
||||
default y
|
||||
depends on PLATFORM_HI3518EV200
|
||||
help
|
||||
Answer Y to enable do align for hi3518e.
|
||||
|
||||
|
||||
config ENABLE_MAGICKEY
|
||||
bool "Enable MAGIC KEY"
|
||||
default y
|
||||
help
|
||||
Answer Y to enable LiteOS Magic key.
|
||||
ctrl + r : Magic key check switch;
|
||||
ctrl + z : Show all magic op key;
|
||||
ctrl + t : Show task information;
|
||||
ctrl + p : System panic;
|
||||
ctrl + e : Check system memory pool.
|
||||
|
||||
config THUMB
|
||||
bool "Enable Thumb"
|
||||
default n
|
||||
depends on ARCH_ARM
|
||||
help
|
||||
Answer Y to build thumb version. This will make LiteOS smaller.
|
||||
|
||||
config PLATFORM_DVFS
|
||||
bool "Enable Dvfs"
|
||||
default n
|
||||
depends on COMPAT_LINUXKPI
|
||||
help
|
||||
Answer Y to enable LiteOS support dynamic voltage and frequency scaling feature for
|
||||
low power consumption.
|
||||
|
||||
config SAVE_EXCINFO
|
||||
bool "Enable Saving Exception Information"
|
||||
default n
|
||||
help
|
||||
Answer Y to enable LiteOS support saving exception information to storage medium.
|
||||
|
||||
config DEBUG_VERSION
|
||||
bool "Enable a Debug Version"
|
||||
default y
|
||||
help
|
||||
If you do not select this option that means you enable a release version for LiteOS.
|
||||
It also means you do not want to use debug modules, like shell,telnet,tftp,nfs and
|
||||
memory check, etc.
|
||||
If you select this option that means you enable a debug version for LiteOS.
|
||||
That means you want a opposite behaviour compared to release version.
|
||||
|
||||
config DEBUG_KERNEL
|
||||
bool "Enable Debug LiteOS Kernel Resource"
|
||||
default n
|
||||
depends on DEBUG_VERSION
|
||||
help
|
||||
If you select this option that means you enable debugging kernel resource.
|
||||
It also means you want to get queue, mutex, semaphore, memory debug information.
|
||||
That means you want a opposite behaviour compared to release version.
|
||||
|
||||
config DEBUG_QUEUE
|
||||
bool "Enable Queue Debugging"
|
||||
default n
|
||||
depends on DEBUG_KERNEL
|
||||
help
|
||||
Answer Y to enable debug queue.
|
||||
|
||||
config DEBUG_DEADLOCK
|
||||
bool "Enable Mutex Deadlock Debugging"
|
||||
default n
|
||||
depends on DEBUG_KERNEL
|
||||
help
|
||||
Answer Y to enable debug mutex deadlock.
|
||||
|
||||
config DEBUG_SEMAPHORE
|
||||
bool "Enable Semaphore Debugging"
|
||||
default n
|
||||
depends on DEBUG_KERNEL
|
||||
help
|
||||
Answer Y to enable debug semaphore.
|
||||
|
||||
source "components/shell/Kconfig"
|
||||
config NET_LWIP_SACK_TFTP
|
||||
bool "Enable Tftp"
|
||||
default y
|
||||
depends on SHELL && NET_LWIP_SACK && DEBUG_VERSION
|
||||
help
|
||||
Answer Y to enable LiteOS support tftp cmd and tftp tool.
|
||||
osource "net/telnet/Kconfig"
|
||||
config SCHED_DEBUG
|
||||
bool "Enable sched debug Feature"
|
||||
default n
|
||||
depends on DEBUG_VERSION
|
||||
help
|
||||
If you wish to build LiteOS with support for sched debug.
|
||||
|
||||
config USER_INIT_DEBUG
|
||||
bool "Enable user init Debug"
|
||||
default n
|
||||
depends on DEBUG_VERSION
|
||||
|
||||
config SHELL_CMD_DEBUG
|
||||
bool "Enable shell cmd Debug"
|
||||
default n
|
||||
depends on DEBUG_VERSION && SHELL
|
||||
|
||||
config USB_DEBUG
|
||||
bool "Enable USB Debug"
|
||||
default n
|
||||
depends on SHELL && DRIVERS_USB && DEBUG_VERSION
|
||||
help
|
||||
Answer Y to enable LiteOS support usb debug.
|
||||
use shell command to open the specified debug level print.
|
||||
config MEM_DEBUG
|
||||
bool "Enable MEM Debug"
|
||||
default n
|
||||
depends on DEBUG_VERSION
|
||||
help
|
||||
Answer Y to enable LiteOS support mem debug.
|
||||
|
||||
config MEM_LEAKCHECK
|
||||
bool "Enable Function call stack of Mem operation recorded"
|
||||
default n
|
||||
depends on DEBUG_VERSION && MEM_DEBUG
|
||||
select KERNEL_BACKTRACE
|
||||
help
|
||||
Answer Y to enable record the LR of Function call stack of Mem operation, it can check the mem leak through the infomations of mem node.
|
||||
config BASE_MEM_NODE_INTEGRITY_CHECK
|
||||
bool "Enable integrity check or not"
|
||||
default n
|
||||
depends on DEBUG_VERSION && MEM_DEBUG
|
||||
config MEM_WATERLINE
|
||||
bool "Enable memory pool waterline or not"
|
||||
default n
|
||||
depends on DEBUG_VERSION && MEM_DEBUG
|
||||
|
||||
config VM_OVERLAP_CHECK
|
||||
bool "Enable VM overlap check or not"
|
||||
default n
|
||||
depends on DEBUG_VERSION && MEM_DEBUG
|
||||
help
|
||||
Answer Y to enable vm overlap check.
|
||||
|
||||
endmenu
|
||||
|
||||
######################## config options os drivers ########################
|
||||
menu "Driver"
|
||||
source "drivers/Kconfig"
|
||||
endmenu
|
||||
|
||||
######################## config options os security #######################
|
||||
menu "Security"
|
||||
osource "security/Kconfig"
|
||||
config SECURE_TRUSTZONE
|
||||
bool "Enable ARM TrustZone"
|
||||
default n
|
||||
depends on ARCH_ARM
|
||||
config SECURE_HEAP_SIZE
|
||||
int "TrustZone Heap Size (bytes)"
|
||||
default 2048
|
||||
depends on SECURE_TRUSTZONE
|
||||
config SECURE_STACK_DEFAULT_SIZE
|
||||
int "TrustZone Stack Size (bytes)"
|
||||
default 512
|
||||
depends on SECURE_TRUSTZONE
|
||||
help
|
||||
The secure stack must be allocated before the task calls non-secure functions.
|
||||
endmenu
|
||||
|
||||
menu "Test"
|
||||
config TEST
|
||||
bool
|
||||
default n
|
||||
config KERNEL_TEST
|
||||
bool "Enable Kernel Test"
|
||||
default n
|
||||
select TEST
|
||||
config KERNEL_TEST_FULL
|
||||
bool "Full Kernel Test"
|
||||
default n
|
||||
depends on KERNEL_TEST
|
||||
endmenu
|
||||
|
||||
menu "Stack Smashing Protector (SSP) Compiler Feature"
|
||||
|
||||
choice
|
||||
prompt "Enable stack buffer overflow detection"
|
||||
default CC_STACKPROTECTOR_STRONG
|
||||
---help---
|
||||
This option turns on the -fstack-protector GCC feature. This
|
||||
feature puts, at the beginning of functions, a canary value on
|
||||
the stack just before the return address, and validates
|
||||
the value just before actually returning. Stack based buffer
|
||||
overflows (that need to overwrite this return address) now also
|
||||
overwrite the canary, which gets detected and the attack is then
|
||||
neutralized via a kernel panic.
|
||||
|
||||
This feature requires gcc version 4.2 or above, or a distribution
|
||||
gcc with the feature backported. Older versions are automatically
|
||||
detected and for those versions, this configuration option is
|
||||
ignored. (and a warning is printed during bootup)
|
||||
|
||||
config CC_NO_STACKPROTECTOR
|
||||
bool "-fno-stack-protector"
|
||||
|
||||
config CC_STACKPROTECTOR
|
||||
bool "-fstack-protector"
|
||||
|
||||
config CC_STACKPROTECTOR_STRONG
|
||||
bool "-fstack-protector-strong"
|
||||
|
||||
config CC_STACKPROTECTOR_ALL
|
||||
bool "-fstack-protector-all"
|
||||
|
||||
endchoice
|
||||
|
||||
endmenu
|
|
@ -0,0 +1,115 @@
|
|||
# Copyright (c) 2013-2019 Huawei Technologies Co., Ltd. All rights reserved.
|
||||
# Copyright (c) 2020-2021 Huawei Device Co., Ltd. All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without modification,
|
||||
# are permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||
# conditions and the following disclaimer.
|
||||
#
|
||||
# 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
# of conditions and the following disclaimer in the documentation and/or other materials
|
||||
# provided with the distribution.
|
||||
#
|
||||
# 3. Neither the name of the copyright holder nor the names of its contributors may be used
|
||||
# to endorse or promote products derived from this software without specific prior written
|
||||
# permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||||
# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
LITEOSTOPDIR := $(realpath $(dir $(lastword $(MAKEFILE_LIST))))
|
||||
export LITEOSTOPDIR
|
||||
|
||||
LITEOS_TARGET = liteos
|
||||
HIDE := @
|
||||
KCONFIG_CMDS := $(notdir $(wildcard $(dir $(shell which menuconfig))*config))
|
||||
|
||||
ohos_kernel ?= liteos_m
|
||||
$(foreach line,$(shell hb env | sed 's/\[OHOS INFO\]/ohos/g;s/ /_/g;s/:_/=/g' || true),$(eval $(line)))
|
||||
ifneq ($(ohos_kernel),liteos_m)
|
||||
$(error The selected product ($(ohos_product)) is not a liteos_m kernel type product)
|
||||
endif
|
||||
|
||||
ifeq ($(PRODUCT_PATH),)
|
||||
PRODUCT_PATH:=$(ohos_product_path)
|
||||
endif
|
||||
|
||||
ifeq ($(DEVICE_PATH),)
|
||||
DEVICE_PATH:=$(ohos_device_path)
|
||||
endif
|
||||
|
||||
ifeq ($(TEE:1=y),y)
|
||||
tee = _tee
|
||||
endif
|
||||
ifeq ($(RELEASE:1=y),y)
|
||||
CONFIG ?= $(PRODUCT_PATH)/kernel_configs/release$(tee).config
|
||||
else
|
||||
CONFIG ?= $(PRODUCT_PATH)/kernel_configs/debug$(tee).config
|
||||
endif
|
||||
|
||||
KCONFIG_CONFIG ?= $(CONFIG)
|
||||
LITEOS_MENUCONFIG_H ?= $(LITEOSTOPDIR)/config.h
|
||||
LITEOS_CONFIG_FILE ?= $(LITEOSTOPDIR)/.config
|
||||
|
||||
# export los_config.mk related environment variables
|
||||
export LITEOS_MENUCONFIG_H
|
||||
export LITEOS_CONFIG_FILE
|
||||
|
||||
# export kconfig related environment variables
|
||||
export CONFIG_=LOSCFG_
|
||||
export srctree=$(LITEOSTOPDIR)
|
||||
|
||||
-include $(LITEOS_CONFIG_FILE)
|
||||
|
||||
define HELP =
|
||||
Usage: make [TARGET]... [PARAMETER=VALUE]...
|
||||
|
||||
Targets:
|
||||
help: display this help and exit
|
||||
clean: clean compiled objects
|
||||
cleanall: clean all build outputs
|
||||
all: do build (Default target)
|
||||
update_config: update product kernel config (use menuconfig)
|
||||
xxconfig: invoke xxconfig command of kconfiglib (xxconfig is one of $(KCONFIG_CMDS))
|
||||
|
||||
Parameters:
|
||||
TEE: boolean value(1 or y for true), enable tee
|
||||
RELEASE: boolean value(1 or y for true), build release version
|
||||
CONFIG: kernel config file to be use
|
||||
args: arguments for xxconfig command
|
||||
endef
|
||||
export HELP
|
||||
|
||||
all:
|
||||
$(HIDE)hb build -f --gn-args "liteos_kernel_only=true liteos_name=$(LITEOS_TARGET)"
|
||||
|
||||
help:
|
||||
$(HIDE)echo "$$HELP"
|
||||
|
||||
$(filter-out menuconfig,$(KCONFIG_CMDS)):
|
||||
$(HIDE)$@ $(args)
|
||||
|
||||
$(LITEOS_CONFIG_FILE): $(KCONFIG_CONFIG)
|
||||
$(HIDE)env KCONFIG_CONFIG=$< genconfig --config-out $@ --header-path $(LITEOS_MENUCONFIG_H)
|
||||
|
||||
update_config menuconfig:
|
||||
$(HIDE)test -f "$(CONFIG)" && cp -v "$(CONFIG)" .config && menuconfig $(args) && savedefconfig --out "$(CONFIG)"
|
||||
|
||||
clean:
|
||||
$(HIDE)hb clean
|
||||
$(HIDE)echo "clean $(LOSCFG_PLATFORM) finish"
|
||||
|
||||
cleanall: clean
|
||||
$(HIDE)echo "clean all done"
|
||||
|
||||
.PHONY: all clean cleanall help update_config $(KCONFIG_CMDS) $(KCONFIG_CONFIG)
|
|
@ -0,0 +1,60 @@
|
|||
# Copyright (c) 2013-2019 Huawei Technologies Co., Ltd. All rights reserved.
|
||||
# Copyright (c) 2020-2021 Huawei Device Co., Ltd. All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without modification,
|
||||
# are permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||
# conditions and the following disclaimer.
|
||||
#
|
||||
# 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
# of conditions and the following disclaimer in the documentation and/or other materials
|
||||
# provided with the distribution.
|
||||
#
|
||||
# 3. Neither the name of the copyright holder nor the names of its contributors may be used
|
||||
# to endorse or promote products derived from this software without specific prior written
|
||||
# permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||||
# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("//kernel/liteos_m/liteos.gni")
|
||||
|
||||
group("components") {
|
||||
deps = [
|
||||
"backtrace",
|
||||
"cppsupport",
|
||||
"cpup",
|
||||
"dynlink",
|
||||
"exchook",
|
||||
"fs",
|
||||
"net",
|
||||
"power",
|
||||
"shell",
|
||||
"trace",
|
||||
]
|
||||
}
|
||||
|
||||
config("public") {
|
||||
configs = [
|
||||
"backtrace:public",
|
||||
"cppsupport:public",
|
||||
"cpup:public",
|
||||
"dynlink:public",
|
||||
"exchook:public",
|
||||
"fs:public",
|
||||
"net:public",
|
||||
"power:public",
|
||||
"shell:public",
|
||||
"trace:public",
|
||||
]
|
||||
}
|
|
@ -27,10 +27,14 @@
|
|||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("//kernel/liteos_m/config.gni")
|
||||
import("//kernel/liteos_m/liteos.gni")
|
||||
|
||||
static_library("backtrace") {
|
||||
module_switch = defined(LOSCFG_KERNEL_BACKTRACE)
|
||||
module_name = get_path_info(rebase_path("."), "name")
|
||||
kernel_module(module_name) {
|
||||
sources = [ "los_backtrace.c" ]
|
||||
|
||||
configs += [ "$LITEOSTOPDIR:los_config" ]
|
||||
}
|
||||
|
||||
config("public") {
|
||||
include_dirs = [ "." ]
|
||||
}
|
||||
|
|
|
@ -27,10 +27,14 @@
|
|||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("//kernel/liteos_m/config.gni")
|
||||
import("//kernel/liteos_m/liteos.gni")
|
||||
|
||||
static_library("cppsupport") {
|
||||
module_switch = defined(LOSCFG_KERNEL_CPPSUPPORT)
|
||||
module_name = get_path_info(rebase_path("."), "name")
|
||||
kernel_module(module_name) {
|
||||
sources = [ "los_cppsupport.c" ]
|
||||
|
||||
configs += [ "$LITEOSTOPDIR:los_config" ]
|
||||
}
|
||||
|
||||
config("public") {
|
||||
include_dirs = [ "." ]
|
||||
}
|
||||
|
|
|
@ -27,10 +27,14 @@
|
|||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("//kernel/liteos_m/config.gni")
|
||||
import("//kernel/liteos_m/liteos.gni")
|
||||
|
||||
static_library("cpup") {
|
||||
module_switch = defined(LOSCFG_BASE_CORE_CPUP)
|
||||
module_name = get_path_info(rebase_path("."), "name")
|
||||
kernel_module(module_name) {
|
||||
sources = [ "los_cpup.c" ]
|
||||
|
||||
configs += [ "$LITEOSTOPDIR:los_config" ]
|
||||
}
|
||||
|
||||
config("public") {
|
||||
include_dirs = [ "." ]
|
||||
}
|
||||
|
|
|
@ -26,23 +26,14 @@
|
|||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("//kernel/liteos_m/config.gni")
|
||||
import("//kernel/liteos_m/liteos.gni")
|
||||
|
||||
config("dynlink_config") {
|
||||
include_dirs = [ "./" ]
|
||||
if (arch == "arm") {
|
||||
include_dirs += [ "../../kernel/arch/arm/include" ]
|
||||
} else {
|
||||
assert(false,
|
||||
"Dynlink module does not support for other archs except for arm!")
|
||||
}
|
||||
}
|
||||
|
||||
static_library("dynlink") {
|
||||
module_switch = defined(LOSCFG_KERNEL_DYNLINK)
|
||||
module_name = get_path_info(rebase_path("."), "name")
|
||||
kernel_module(module_name) {
|
||||
sources = [ "los_dynlink.c" ]
|
||||
|
||||
public_configs = [ ":dynlink_config" ]
|
||||
configs += [ "$LITEOSTOPDIR:los_config" ]
|
||||
|
||||
deps = [ "//kernel/liteos_m/kal/posix" ]
|
||||
}
|
||||
|
||||
config("public") {
|
||||
include_dirs = [ "." ]
|
||||
}
|
||||
|
|
|
@ -27,13 +27,17 @@
|
|||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("//kernel/liteos_m/config.gni")
|
||||
import("//kernel/liteos_m/liteos.gni")
|
||||
|
||||
static_library("exchook") {
|
||||
module_switch = defined(LOSCFG_PLATFORM_EXC)
|
||||
module_name = get_path_info(rebase_path("."), "name")
|
||||
kernel_module(module_name) {
|
||||
sources = [
|
||||
"los_exc_info.c",
|
||||
"los_exchook.c",
|
||||
]
|
||||
|
||||
configs += [ "$LITEOSTOPDIR:los_config" ]
|
||||
}
|
||||
|
||||
config("public") {
|
||||
include_dirs = [ "." ]
|
||||
}
|
||||
|
|
|
@ -27,32 +27,26 @@
|
|||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
static_library("fs_operations") {
|
||||
sources = [ "./fs.c" ]
|
||||
import("//kernel/liteos_m/liteos.gni")
|
||||
|
||||
include_dirs = [
|
||||
"../../../kernel/arch/include",
|
||||
"../../../kernel/include",
|
||||
"../../../utils",
|
||||
"../../../kal/posix/include",
|
||||
"./",
|
||||
]
|
||||
|
||||
deps = [ "//kernel/liteos_m/kal/posix" ]
|
||||
}
|
||||
|
||||
declare_args() {
|
||||
enable_ohos_kernel_liteos_m_fatfs = true
|
||||
enable_ohos_kernel_liteos_m_littlefs = true
|
||||
module_switch = defined(LOSCFG_FS_VFS)
|
||||
module_name = "fs_operations"
|
||||
kernel_module(module_name) {
|
||||
sources = [ "fs.c" ]
|
||||
}
|
||||
|
||||
group("fs") {
|
||||
deps = []
|
||||
deps += [ ".:fs_operations" ]
|
||||
if (enable_ohos_kernel_liteos_m_fatfs) {
|
||||
deps += [ "fatfs:fatfs" ]
|
||||
}
|
||||
if (enable_ohos_kernel_liteos_m_littlefs) {
|
||||
deps += [ "littlefs:littlefs" ]
|
||||
}
|
||||
deps = [ ":$module_name" ]
|
||||
deps += [
|
||||
"fatfs",
|
||||
"littlefs",
|
||||
]
|
||||
}
|
||||
|
||||
config("public") {
|
||||
include_dirs = [ "." ]
|
||||
configs = [
|
||||
"fatfs:public",
|
||||
"littlefs:public",
|
||||
]
|
||||
}
|
||||
|
|
|
@ -27,25 +27,21 @@
|
|||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
static_library("fatfs") {
|
||||
import("//kernel/liteos_m/liteos.gni")
|
||||
|
||||
module_switch = defined(LOSCFG_FS_FAT)
|
||||
module_name = get_path_info(rebase_path("."), "name")
|
||||
kernel_module(module_name) {
|
||||
sources = [
|
||||
"//third_party/FatFs/source/diskio.c",
|
||||
"//third_party/FatFs/source/ff.c",
|
||||
"//third_party/FatFs/source/ffsystem.c",
|
||||
"//third_party/FatFs/source/ffunicode.c",
|
||||
"$LITEOSTHIRDPARTY/FatFs/source/diskio.c",
|
||||
"$LITEOSTHIRDPARTY/FatFs/source/ff.c",
|
||||
"$LITEOSTHIRDPARTY/FatFs/source/ffsystem.c",
|
||||
"$LITEOSTHIRDPARTY/FatFs/source/ffunicode.c",
|
||||
"fatfs.c",
|
||||
]
|
||||
|
||||
include_dirs = [
|
||||
"../",
|
||||
"../../../kernel/arch/include",
|
||||
"../../../kernel/include",
|
||||
"../../../utils",
|
||||
"../../../kal/cmsis",
|
||||
"../../../kal/posix/include",
|
||||
"//third_party/bounds_checking_function/include",
|
||||
"//third_party/FatFs/source/",
|
||||
]
|
||||
|
||||
deps = [ "//kernel/liteos_m/kal/posix" ]
|
||||
}
|
||||
|
||||
config("public") {
|
||||
include_dirs = [ "." ]
|
||||
include_dirs += [ "$LITEOSTHIRDPARTY/FatFs/source" ]
|
||||
}
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
config FS_FAT
|
||||
bool "Enable FAT"
|
||||
default n
|
||||
depends on FS_VFS
|
||||
select SUPPORT_FATFS
|
||||
select COMPAT_CMSIS
|
||||
help
|
||||
Answer Y to enable LiteOS support fat filesystem.
|
||||
|
||||
config FS_FAT_CACHE
|
||||
bool "Enable FAT Cache"
|
||||
default y
|
||||
depends on FS_FAT
|
||||
help
|
||||
Answer Y to enable LiteOS fat filesystem support cache.
|
||||
|
||||
config FS_FAT_CACHE_SYNC_THREAD
|
||||
bool "Enable FAT Cache Sync Thread"
|
||||
default n
|
||||
depends on FS_FAT_CACHE
|
||||
help
|
||||
Answer Y to enable LiteOS fat filesystem support cache sync thread.
|
||||
|
||||
config FS_FAT_CHINESE
|
||||
bool "Enable Chinese"
|
||||
default y
|
||||
depends on FS_FAT
|
||||
help
|
||||
Answer Y to enable LiteOS fat filesystem support Chinese.
|
||||
|
||||
config FS_FAT_VIRTUAL_PARTITION
|
||||
bool "Enabel Virtual Partition"
|
||||
default n
|
||||
depends on FS_FAT
|
||||
|
||||
config FS_FAT_VOLUMES
|
||||
int
|
||||
depends on FS_FAT
|
||||
default 32 if PLATFORM_HI3731
|
||||
default 16
|
||||
|
||||
config FS_FAT_DISK
|
||||
bool "Enable partinfo for storage device"
|
||||
depends on FS_FAT
|
||||
default y
|
|
@ -45,18 +45,12 @@
|
|||
#include "sys/stat.h"
|
||||
#include "unistd.h"
|
||||
|
||||
struct FsMap g_fsmap[MAX_FILESYSTEM_LEN] = {0};
|
||||
struct FsMap *g_fs = NULL;
|
||||
|
||||
#ifdef LOSCFG_NET_LWIP_SACK
|
||||
#include "lwip/lwipopts.h"
|
||||
#define _BSD_SOURCE
|
||||
#include "lwip/sockets.h"
|
||||
#define CONFIG_NSOCKET_DESCRIPTORS LWIP_CONFIG_NUM_SOCKETS
|
||||
#else
|
||||
#define CONFIG_NSOCKET_DESCRIPTORS 0
|
||||
#endif
|
||||
|
||||
#define CONFIG_NFILE_DESCRIPTORS FAT_MAX_OPEN_FILES /* only for random currently */
|
||||
#include "vfs_config.h"
|
||||
|
||||
#ifdef LOSCFG_RANDOM_DEV
|
||||
#include "hks_client.h"
|
||||
|
@ -159,6 +153,9 @@ static size_t GetCanonicalPath(const char *cwd, const char *path, char *buf, siz
|
|||
}
|
||||
#endif
|
||||
|
||||
static struct FsMap g_fsmap[MAX_FILESYSTEM_LEN] = {0};
|
||||
static struct FsMap *g_fs = NULL;
|
||||
|
||||
static void InitMountInfo(void)
|
||||
{
|
||||
#if (LOSCFG_SUPPORT_FATFS == 1)
|
||||
|
|
|
@ -27,23 +27,21 @@
|
|||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
static_library("littlefs") {
|
||||
import("//kernel/liteos_m/liteos.gni")
|
||||
|
||||
module_switch = defined(LOSCFG_FS_LITTLEFS)
|
||||
module_name = get_path_info(rebase_path("."), "name")
|
||||
kernel_module(module_name) {
|
||||
sources = [
|
||||
"//third_party/littlefs/lfs.c",
|
||||
"//third_party/littlefs/lfs_util.c",
|
||||
"$LITEOSTHIRDPARTY/littlefs/bd/lfs_rambd.c",
|
||||
"$LITEOSTHIRDPARTY/littlefs/lfs.c",
|
||||
"$LITEOSTHIRDPARTY/littlefs/lfs_util.c",
|
||||
"lfs_api.c",
|
||||
]
|
||||
|
||||
include_dirs = [
|
||||
"../../../kernel/arch/include",
|
||||
"../../../kernel/include",
|
||||
"../../../utils",
|
||||
"../../../kal/cmsis",
|
||||
"../../../kal/posix/include",
|
||||
"./",
|
||||
"../",
|
||||
"//third_party/littlefs",
|
||||
]
|
||||
|
||||
deps = [ "//kernel/liteos_m/kal/posix" ]
|
||||
}
|
||||
|
||||
config("public") {
|
||||
include_dirs = [ "." ]
|
||||
include_dirs += [ "$LITEOSTHIRDPARTY/littlefs" ]
|
||||
include_dirs += [ "$LITEOSTHIRDPARTY/littlefs/bd" ]
|
||||
}
|
||||
|
|
|
@ -93,7 +93,6 @@ typedef struct {
|
|||
|
||||
LittleFsHandleStruct *GetFreeFd(int *fd);
|
||||
|
||||
int InitMountInfo(const char *fileSystemType, const struct MountOps *fsMops);
|
||||
int LfsMount(const char *source, const char *target, const char *fileSystemType, unsigned long mountflags,
|
||||
const void *data);
|
||||
|
||||
|
@ -114,7 +113,5 @@ int LfsStat(const char *path, struct stat *buf);
|
|||
int LfsFsync(int fd);
|
||||
int SetDefaultMountPath(int pathNameIndex, const char* target);
|
||||
|
||||
const struct FsMap *MountFindfs(const char *filesystemtype);
|
||||
|
||||
#endif /* _LFS_API_H_ */
|
||||
|
||||
|
|
|
@ -0,0 +1,142 @@
|
|||
/*
|
||||
* Copyright (c) 2013-2019 Huawei Technologies Co., Ltd. All rights reserved.
|
||||
* Copyright (c) 2020-2021 Huawei Device Co., Ltd. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification,
|
||||
* are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||
* conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
* of conditions and the following disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* 3. Neither the name of the copyright holder nor the names of its contributors may be used
|
||||
* to endorse or promote products derived from this software without specific prior written
|
||||
* permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _VFS_CONFIG_H_
|
||||
#define _VFS_CONFIG_H_
|
||||
|
||||
#define PATH_MAX 256
|
||||
#define CONFIG_DISABLE_MQUEUE // disable posix mqueue inode configure
|
||||
|
||||
/* file system configur */
|
||||
|
||||
#define CONFIG_FS_WRITABLE // enable file system can be written
|
||||
#define CONFIG_FS_READABLE // enable file system can be read
|
||||
#define CONFIG_DEBUG_FS // enable vfs debug function
|
||||
|
||||
|
||||
/* fatfs cache configur */
|
||||
/* config block size for fat file system, only can be 0,32,64,128,256,512,1024 */
|
||||
#define CONFIG_FS_FAT_SECTOR_PER_BLOCK 64
|
||||
|
||||
/* config block num for fat file system */
|
||||
#define CONFIG_FS_FAT_READ_NUMS 7
|
||||
#define CONFIG_FS_FAT_BLOCK_NUMS 28
|
||||
|
||||
#ifdef LOSCFG_FS_FAT_CACHE_SYNC_THREAD
|
||||
|
||||
/* config the priority of sync task */
|
||||
|
||||
#define CONFIG_FS_FAT_SYNC_THREAD_PRIO 10
|
||||
|
||||
/* config dirty ratio of bcache for fat file system */
|
||||
|
||||
#define CONFIG_FS_FAT_DIRTY_RATIO 60
|
||||
|
||||
/* config time interval of sync thread for fat file system, in milliseconds */
|
||||
|
||||
#define CONFIG_FS_FAT_SYNC_INTERVAL 5000
|
||||
#endif
|
||||
|
||||
#define CONFIG_FS_FLASH_BLOCK_NUM 1
|
||||
|
||||
#define CONFIG_FS_MAX_LNK_CNT 40
|
||||
|
||||
/* nfs configure */
|
||||
|
||||
#define CONFIG_NFS_MACHINE_NAME "IPC" // nfs device name is IPC
|
||||
#define CONFIG_NFS_MACHINE_NAME_SIZE 3 // size of nfs machine name
|
||||
|
||||
|
||||
/* file descriptors configure */
|
||||
|
||||
#define CONFIG_NFILE_STREAMS 1 // enable file stream
|
||||
#define CONFIG_STDIO_BUFFER_SIZE 0
|
||||
#define CONFIG_NUNGET_CHARS 0
|
||||
#define MIN_START_FD 3 // 0,1,2 are used for stdin,stdout,stderr respectively
|
||||
|
||||
#define FD_SET_TOTAL_SIZE (FD_SETSIZE + CONFIG_NEXPANED_DESCRIPTORS)
|
||||
#define FD_SETSIZE (CONFIG_NFILE_DESCRIPTORS + CONFIG_NSOCKET_DESCRIPTORS)
|
||||
#define CONFIG_NEXPANED_DESCRIPTORS (CONFIG_NTIME_DESCRIPTORS + CONFIG_NQUEUE_DESCRIPTORS)
|
||||
#define TIMER_FD_OFFSET FD_SETSIZE
|
||||
#define MQUEUE_FD_OFFSET (FD_SETSIZE + CONFIG_NTIME_DESCRIPTORS)
|
||||
|
||||
/* net configure */
|
||||
|
||||
#ifdef LOSCFG_NET_LWIP_SACK // enable socket and net function
|
||||
#include "lwip/lwipopts.h"
|
||||
#define CONFIG_NSOCKET_DESCRIPTORS LWIP_CONFIG_NUM_SOCKETS // max numbers of socket descriptor
|
||||
#define CONFIG_NET_SENDFILE 1 // enable sendfile function
|
||||
#define CONFIG_NET_TCP 1 // enable sendfile and send function
|
||||
#else
|
||||
#define CONFIG_NSOCKET_DESCRIPTORS 0
|
||||
#define CONFIG_NET_SENDFILE 0 // disable sendfile function
|
||||
#define CONFIG_NET_TCP 0 // disable sendfile and send function
|
||||
#endif
|
||||
|
||||
/* max numbers of other descriptors except socket descriptors */
|
||||
|
||||
#ifdef LOSCFG_FS_FAT
|
||||
#include "fatfs.h"
|
||||
#define __FAT_NFILE FAT_MAX_OPEN_FILES
|
||||
#else
|
||||
#define __FAT_NFILE 0
|
||||
#endif
|
||||
|
||||
#ifdef LOSCFG_FS_LITTLEFS
|
||||
#include "lfs_api.h"
|
||||
#define __LFS_NFILE LITTLE_FS_MAX_OPEN_FILES
|
||||
#else
|
||||
#define __LFS_NFILE 0
|
||||
#endif
|
||||
|
||||
#define CONFIG_NFILE_DESCRIPTORS (__FAT_NFILE + __LFS_NFILE)
|
||||
|
||||
#define NR_OPEN_DEFAULT CONFIG_NFILE_DESCRIPTORS
|
||||
|
||||
/* time configure */
|
||||
|
||||
#define CONFIG_NTIME_DESCRIPTORS 0
|
||||
|
||||
/* mqueue configure */
|
||||
|
||||
#define CONFIG_NQUEUE_DESCRIPTORS 256
|
||||
|
||||
/* directory configure */
|
||||
|
||||
#define VFS_USING_WORKDIR // enable current working directory
|
||||
|
||||
/* permission configure */
|
||||
#define DEFAULT_DIR_MODE 0777
|
||||
#define DEFAULT_FILE_MODE 0666
|
||||
|
||||
#define MAX_DIRENT_NUM 14 // 14 means 4096 length buffer can store 14 dirent, see struct DIR
|
||||
|
||||
#endif
|
|
@ -27,21 +27,16 @@
|
|||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("//kernel/liteos_m/liteos.gni")
|
||||
|
||||
declare_args() {
|
||||
enable_ohos_kernel_liteos_m_cppsupport = true
|
||||
enable_ohos_kernel_liteos_m_cpup = true
|
||||
enable_ohos_kernel_liteos_m_exchook = true
|
||||
enable_ohos_kernel_liteos_m_kal = true
|
||||
enable_ohos_kernel_liteos_m_fs = true
|
||||
enable_ohos_kernel_liteos_m_shell = true
|
||||
enable_ohos_kernel_liteos_m_backtrace = true
|
||||
enable_ohos_kernel_liteos_m_test = false
|
||||
enable_ohos_kernel_liteos_m_pm = true
|
||||
enable_ohos_kernel_liteos_m_trace = false
|
||||
enable_ohos_kernel_liteos_m_lwip = false
|
||||
enable_ohos_kernel_liteos_m_dynlink = false
|
||||
enable_ohos_kernel_liteos_m_tz = false
|
||||
ohos_kernel_liteos_m_lwip_path = "components/net/lwip-2.1:lwip"
|
||||
ohos_kernel_liteos_m_lwip_path = "lwip-2.1"
|
||||
}
|
||||
|
||||
LITEOSTOPDIR = "//kernel/liteos_m"
|
||||
config("public") {
|
||||
configs = [ "$ohos_kernel_liteos_m_lwip_path:public" ]
|
||||
}
|
||||
|
||||
group("net") {
|
||||
deps = [ "$ohos_kernel_liteos_m_lwip_path" ]
|
||||
}
|
|
@ -26,27 +26,18 @@
|
|||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("//third_party/lwip/lwip.gni")
|
||||
import("//kernel/liteos_m/liteos.gni")
|
||||
import("$LITEOSTHIRDPARTY/lwip/lwip.gni")
|
||||
import("lwip_porting.gni")
|
||||
|
||||
config("lwip_depends") {
|
||||
defines = [ "_BSD_SOURCE = 1" ]
|
||||
module_switch = defined(LOSCFG_NET_LWIP_SACK)
|
||||
module_name = "lwip"
|
||||
kernel_module(module_name) {
|
||||
sources = LWIP_PORTING_FILES + LWIPNOAPPSFILES - [ "$LWIPDIR/api/sockets.c" ]
|
||||
defines = [ "_BSD_SOURCE=1" ]
|
||||
include_dirs = [ "//utils/native/lite/include" ]
|
||||
}
|
||||
|
||||
static_library("lwip") {
|
||||
include_dirs = [
|
||||
"//kernel/liteos_m/kal/posix/include",
|
||||
"//kernel/liteos_m/kernel/arch/include",
|
||||
]
|
||||
|
||||
include_dirs += LWIP_PORTING_INCLUDE_DIRS
|
||||
include_dirs += LWIP_INCLUDE_DIRS
|
||||
|
||||
sources = LWIP_PORTING_FILES + LWIPNOAPPSFILES
|
||||
|
||||
sources -= [ "$LWIPDIR/api/sockets.c" ]
|
||||
|
||||
configs += [ ":lwip_depends" ]
|
||||
|
||||
deps = [ "//kernel/liteos_m/kal/posix" ]
|
||||
config("public") {
|
||||
include_dirs = LWIP_PORTING_INCLUDE_DIRS + LWIP_INCLUDE_DIRS
|
||||
}
|
||||
|
|
|
@ -25,8 +25,10 @@
|
|||
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
import("//kernel/liteos_m/config.gni")
|
||||
LWIP_PORTING_DIR = "//kernel/liteos_m/components/net/lwip-2.1"
|
||||
|
||||
import("//kernel/liteos_m/liteos.gni")
|
||||
|
||||
LWIP_PORTING_DIR = get_path_info(".", "abspath")
|
||||
|
||||
LWIP_PORTING_INCLUDE_DIRS = [ "$LWIP_PORTING_DIR/porting/include" ]
|
||||
|
||||
|
@ -40,6 +42,6 @@ LWIP_PORTING_FILES = [
|
|||
"$LWIP_PORTING_DIR/enhancement/src/lwip_ifaddrs.c",
|
||||
]
|
||||
|
||||
if (enable_ohos_kernel_liteos_m_shell) {
|
||||
if (defined(LOSCFG_SHELL)) {
|
||||
LWIP_PORTING_FILES += [ "$LWIP_PORTING_DIR/porting/src/api_shell.c" ]
|
||||
}
|
||||
|
|
|
@ -134,7 +134,10 @@
|
|||
#define LWIP_NETIF_LOOPBACK 1
|
||||
#define LWIP_POSIX_SOCKETS_IO_NAMES 0
|
||||
#define LWIP_RAW 1
|
||||
#define LWIP_SOCKET_OFFSET 0
|
||||
#ifdef LOSCFG_FS_VFS
|
||||
#include "vfs_config.h"
|
||||
#define LWIP_SOCKET_OFFSET CONFIG_NFILE_DESCRIPTORS
|
||||
#endif
|
||||
#define LWIP_SO_RCVBUF 1
|
||||
#define LWIP_SO_RCVTIMEO 1
|
||||
#define LWIP_SO_SNDTIMEO 1
|
||||
|
|
|
@ -27,10 +27,14 @@
|
|||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("//kernel/liteos_m/config.gni")
|
||||
import("//kernel/liteos_m/liteos.gni")
|
||||
|
||||
static_library("pm") {
|
||||
module_switch = defined(LOSCFG_KERNEL_PM)
|
||||
module_name = get_path_info(rebase_path("."), "name")
|
||||
kernel_module(module_name) {
|
||||
sources = [ "los_pm.c" ]
|
||||
|
||||
configs += [ "$LITEOSTOPDIR:los_config" ]
|
||||
}
|
||||
|
||||
config("public") {
|
||||
include_dirs = [ "." ]
|
||||
}
|
||||
|
|
|
@ -27,9 +27,11 @@
|
|||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("//kernel/liteos_m/config.gni")
|
||||
import("//kernel/liteos_m/liteos.gni")
|
||||
|
||||
static_library("shell") {
|
||||
module_switch = defined(LOSCFG_SHELL)
|
||||
module_name = get_path_info(rebase_path("."), "name")
|
||||
kernel_module(module_name) {
|
||||
sources = [
|
||||
"src/base/shcmd.c",
|
||||
"src/base/shcmdparse.c",
|
||||
|
@ -42,21 +44,11 @@ static_library("shell") {
|
|||
"src/cmds/task_shellcmd.c",
|
||||
"src/cmds/vfs_shellcmd.c",
|
||||
]
|
||||
|
||||
include_dirs = [
|
||||
"../../kernel/arch/include",
|
||||
"../../kernel/include",
|
||||
"../../utils",
|
||||
"./include",
|
||||
]
|
||||
|
||||
configs += [ "$LITEOSTOPDIR:los_config" ]
|
||||
|
||||
if (enable_ohos_kernel_liteos_m_lwip) {
|
||||
if (defined(LOSCFG_NET_LWIP_SACK)) {
|
||||
defines = [ "LWIP_SHELLCMD_ENABLE" ]
|
||||
}
|
||||
deps = [
|
||||
"//kernel/liteos_m/kal/posix",
|
||||
"//third_party/bounds_checking_function:libsec_static",
|
||||
]
|
||||
}
|
||||
|
||||
config("public") {
|
||||
include_dirs = [ "include" ]
|
||||
}
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
config SHELL
|
||||
bool "Enable Shell"
|
||||
default n
|
||||
depends on DEBUG_VERSION
|
||||
select USE_SHELL
|
||||
help
|
||||
Answer Y to enable LiteOS support shell cmd.
|
||||
|
||||
config USE_SHELL
|
||||
bool
|
||||
default n
|
||||
|
||||
menu "Functionality of Shell"
|
||||
depends on SHELL
|
||||
|
||||
config SHELL_PRIO
|
||||
int "Shell Task Priority"
|
||||
default 3
|
||||
range 1 31
|
||||
depends on SHELL
|
||||
|
||||
config SHELL_LK
|
||||
bool "Enable Shell lk"
|
||||
default y
|
||||
depends on DEBUG_VERSION && SHELL
|
||||
help
|
||||
Answer Y to enable LiteOS support shell lk.
|
||||
|
||||
config SHELL_DMESG
|
||||
bool "Enable Shell dmesg"
|
||||
default n
|
||||
depends on DEBUG_VERSION && SHELL && SHELL_CMD_DEBUG
|
||||
help
|
||||
Answer Y to enable LiteOS support shell dmesg.
|
||||
|
||||
endmenu
|
|
@ -27,24 +27,39 @@
|
|||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("//kernel/liteos_m/config.gni")
|
||||
import("//kernel/liteos_m/liteos.gni")
|
||||
|
||||
static_library("trace") {
|
||||
module_switch = defined(LOSCFG_KERNEL_TRACE)
|
||||
module_name = get_path_info(rebase_path("."), "name")
|
||||
kernel_module(module_name) {
|
||||
sources = [
|
||||
"cnv/trace_cnv.c",
|
||||
"los_trace.c",
|
||||
"pipeline/serial/trace_pipeline_serial.c",
|
||||
"pipeline/trace_pipeline.c",
|
||||
"pipeline/trace_tlv.c",
|
||||
"trace_offline.c",
|
||||
"trace_online.c",
|
||||
]
|
||||
|
||||
include_dirs = [
|
||||
"./",
|
||||
".",
|
||||
"cnv",
|
||||
"pipeline",
|
||||
"pipeline/serial",
|
||||
]
|
||||
configs += [ "$LITEOSTOPDIR:los_config" ]
|
||||
|
||||
if (defined(LOSCFG_RECORDER_MODE_OFFLINE)) {
|
||||
sources += [ "trace_offline.c" ]
|
||||
}
|
||||
|
||||
if (defined(LOSCFG_RECORDER_MODE_ONLINE)) {
|
||||
sources += [ "trace_online.c" ]
|
||||
}
|
||||
|
||||
if (defined(LOSCFG_TRACE_CLIENT_INTERACT)) {
|
||||
sources += [
|
||||
"pipeline/trace_pipeline.c",
|
||||
"pipeline/trace_tlv.c",
|
||||
]
|
||||
}
|
||||
|
||||
if (defined(LOSCFG_TRACE_PIPELINE_SERIAL)) {
|
||||
sources += [ "pipeline/serial/trace_pipeline_serial.c" ]
|
||||
include_dirs += [ "pipeline/serial" ]
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,78 @@
|
|||
config KERNEL_TRACE
|
||||
bool "Enable Trace Feature"
|
||||
default n
|
||||
depends on DEBUG_HOOK
|
||||
|
||||
config TRACE_MSG_EXTEND
|
||||
bool "Enable Record more extended content"
|
||||
default n
|
||||
depends on KERNEL_TRACE
|
||||
|
||||
config TRACE_FRAME_CORE_MSG
|
||||
bool "Record cpuid, hardware interrupt status, task lock status"
|
||||
default n
|
||||
depends on TRACE_MSG_EXTEND
|
||||
|
||||
config TRACE_FRAME_EVENT_COUNT
|
||||
bool "Record event count, which indicate the sequence of happend events"
|
||||
default n
|
||||
depends on TRACE_MSG_EXTEND
|
||||
|
||||
config TRACE_FRAME_MAX_PARAMS
|
||||
int "Record max params"
|
||||
default 3
|
||||
depends on KERNEL_TRACE
|
||||
help
|
||||
Make sure the max value is bigger than the number defined by each #MODULE#_#TYPE#_PARMAS in los_trace.h, e.g. TASK_SWITCH_PARAMS
|
||||
|
||||
choice
|
||||
prompt "Trace work mode"
|
||||
default RECORDER_MODE_OFFLINE
|
||||
depends on KERNEL_TRACE
|
||||
|
||||
config RECORDER_MODE_ONLINE
|
||||
bool "Online mode"
|
||||
select TRACE_CLIENT_INTERACT
|
||||
|
||||
config RECORDER_MODE_OFFLINE
|
||||
bool "Offline mode"
|
||||
|
||||
endchoice
|
||||
|
||||
config TRACE_BUFFER_SIZE
|
||||
int "Trace record buffer size"
|
||||
default 2048
|
||||
depends on RECORDER_MODE_OFFLINE
|
||||
|
||||
config TRACE_CLIENT_INTERACT
|
||||
bool "Enable Trace Client Visualization and Control"
|
||||
default n
|
||||
depends on KERNEL_TRACE
|
||||
|
||||
choice
|
||||
prompt "Trace Pipeline for Data Transmission"
|
||||
depends on TRACE_CLIENT_INTERACT
|
||||
|
||||
config TRACE_PIPELINE_SERIAL
|
||||
bool "Via Serial"
|
||||
|
||||
endchoice
|
||||
|
||||
choice
|
||||
prompt "Trace Control"
|
||||
default TRACE_CONTROL_VIA_SHELL
|
||||
depends on TRACE_CLIENT_INTERACT
|
||||
help
|
||||
If you wish to control Trace's start/stop etc.,dynamically by Trace Client.
|
||||
|
||||
config TRACE_CONTROL_VIA_SHELL
|
||||
bool "Via Shell"
|
||||
select LOSCFG_SHELL
|
||||
|
||||
config TRACE_CONTROL_AGENT
|
||||
bool "Via Trace Agent Task"
|
||||
|
||||
config TRACE_NO_CONTROL
|
||||
bool "No Control"
|
||||
|
||||
endchoice
|
|
@ -0,0 +1,10 @@
|
|||
config DRIVERS
|
||||
bool "Enable Driver"
|
||||
default y
|
||||
help
|
||||
Answer Y to enable LiteOS support driver.
|
||||
|
||||
source "../../drivers/adapter/khdf/liteos_m/Kconfig"
|
||||
|
||||
# Device driver Kconfig import
|
||||
osource "$(DEVICE_PATH)/drivers/Kconfig"
|
23
kal/BUILD.gn
23
kal/BUILD.gn
|
@ -27,21 +27,16 @@
|
|||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("//build/lite/config/component/lite_component.gni")
|
||||
import("//kernel/liteos_m/liteos.gni")
|
||||
|
||||
declare_args() {
|
||||
enable_ohos_kernel_liteos_m_cmsis = true
|
||||
enable_ohos_kernel_liteos_m_posix = true
|
||||
group("kal") {
|
||||
deps = [ "cmsis" ]
|
||||
deps += [ "posix" ]
|
||||
}
|
||||
|
||||
lite_component("kal") {
|
||||
features = []
|
||||
|
||||
if (enable_ohos_kernel_liteos_m_cmsis) {
|
||||
features += [ "cmsis" ]
|
||||
}
|
||||
|
||||
if (enable_ohos_kernel_liteos_m_posix) {
|
||||
features += [ "posix" ]
|
||||
}
|
||||
config("public") {
|
||||
configs = [
|
||||
"cmsis:public",
|
||||
"posix:public",
|
||||
]
|
||||
}
|
||||
|
|
|
@ -27,18 +27,18 @@
|
|||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("//kernel/liteos_m/config.gni")
|
||||
import("//kernel/liteos_m/liteos.gni")
|
||||
|
||||
static_library("cmsis") {
|
||||
module_switch = defined(LOSCFG_COMPAT_CMSIS)
|
||||
module_name = get_path_info(rebase_path("."), "name")
|
||||
kernel_module(module_name) {
|
||||
sources = [ "cmsis_liteos2.c" ]
|
||||
|
||||
public_configs = [ ":include" ]
|
||||
configs += [ "$LITEOSTOPDIR:los_config" ]
|
||||
}
|
||||
|
||||
config("include") {
|
||||
config("public") {
|
||||
include_dirs = [
|
||||
".",
|
||||
"//third_party/cmsis/CMSIS/RTOS2/Include",
|
||||
"$LITEOSTHIRDPARTY/cmsis/CMSIS/RTOS2/Include",
|
||||
"$LITEOSTHIRDPARTY/cmsis/CMSIS/Core/Include",
|
||||
]
|
||||
}
|
||||
|
|
|
@ -27,13 +27,11 @@
|
|||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("//kernel/liteos_m/config.gni")
|
||||
import("//kernel/liteos_m/liteos.gni")
|
||||
|
||||
config("include") {
|
||||
include_dirs = [ "include" ]
|
||||
}
|
||||
|
||||
static_library("posix") {
|
||||
module_switch = defined(LOSCFG_COMPAT_POSIX)
|
||||
module_name = get_path_info(rebase_path("."), "name")
|
||||
kernel_module(module_name) {
|
||||
sources = [
|
||||
"src/errno.c",
|
||||
"src/libc.c",
|
||||
|
@ -46,9 +44,8 @@ static_library("posix") {
|
|||
"src/semaphore.c",
|
||||
"src/time.c",
|
||||
]
|
||||
|
||||
public_configs = [ ":include" ]
|
||||
configs += [ "$LITEOSTOPDIR:los_config" ]
|
||||
|
||||
public_deps = [ "//third_party/musl/porting/liteos_m/kernel" ]
|
||||
}
|
||||
|
||||
config("public") {
|
||||
include_dirs = [ "include" ]
|
||||
}
|
||||
|
|
|
@ -27,9 +27,10 @@
|
|||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("//kernel/liteos_m/config.gni")
|
||||
import("//kernel/liteos_m/liteos.gni")
|
||||
|
||||
static_library("kernel") {
|
||||
module_name = get_path_info(rebase_path("."), "name")
|
||||
kernel_module(module_name) {
|
||||
sources = [
|
||||
"src/los_event.c",
|
||||
"src/los_init.c",
|
||||
|
@ -44,36 +45,8 @@ static_library("kernel") {
|
|||
"src/mm/los_membox.c",
|
||||
"src/mm/los_memory.c",
|
||||
]
|
||||
|
||||
include_dirs = [
|
||||
"../components/cpup",
|
||||
"../components/exchook",
|
||||
"../components/backtrace",
|
||||
"../components/power",
|
||||
"../components/dynlink",
|
||||
]
|
||||
|
||||
configs += [ "$LITEOSTOPDIR:los_config" ]
|
||||
|
||||
if ("$board_cpu" == "cortex-m3") {
|
||||
deps = [ "arch/arm/cortex-m3/gcc/:arch" ]
|
||||
} else if ("$board_cpu" == "cortex-m4") {
|
||||
deps = [ "arch/arm/cortex-m4/gcc/:arch" ]
|
||||
} else if ("$board_cpu" == "cortex-m7") {
|
||||
deps = [ "arch/arm/cortex-m7/gcc/:arch" ]
|
||||
} else if ("$board_cpu" == "cortex-m33") {
|
||||
if (enable_ohos_kernel_liteos_m_tz) {
|
||||
deps = [ "arch/arm/cortex-m33/gcc/TZ:arch" ]
|
||||
} else {
|
||||
deps = [ "arch/arm/cortex-m33/gcc/NTZ:arch" ]
|
||||
}
|
||||
} else if ("$board_cpu" == "ck802" || "$board_cpu" == "e802") {
|
||||
deps = [ "arch/csky/v2/gcc:arch" ]
|
||||
} else if ("$board_cpu" == "") {
|
||||
if ("$board_arch" == "rv32imac" || "$board_arch" == "rv32imafdc") {
|
||||
deps = [ "arch/risc-v/riscv32/gcc:arch" ]
|
||||
} else if ("$board" == "esp32") {
|
||||
deps = [ "arch/xtensa/lx6/gcc:arch" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
config("public") {
|
||||
include_dirs = [ "include" ]
|
||||
}
|
||||
|
|
|
@ -0,0 +1,81 @@
|
|||
# Copyright (c) 2013-2019 Huawei Technologies Co., Ltd. All rights reserved.
|
||||
# Copyright (c) 2020-2021 Huawei Device Co., Ltd. All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without modification,
|
||||
# are permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||
# conditions and the following disclaimer.
|
||||
#
|
||||
# 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
# of conditions and the following disclaimer in the documentation and/or other materials
|
||||
# provided with the distribution.
|
||||
#
|
||||
# 3. Neither the name of the copyright holder nor the names of its contributors may be used
|
||||
# to endorse or promote products derived from this software without specific prior written
|
||||
# permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||||
# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("//kernel/liteos_m/liteos.gni")
|
||||
|
||||
group("arch") {
|
||||
if ("$board_cpu" == "cortex-m3") {
|
||||
deps = [ "arm/cortex-m3/gcc/:arch" ]
|
||||
} else if ("$board_cpu" == "cortex-m4") {
|
||||
deps = [ "arm/cortex-m4/gcc/:arch" ]
|
||||
} else if ("$board_cpu" == "cortex-m7") {
|
||||
deps = [ "arm/cortex-m7/gcc/:arch" ]
|
||||
} else if ("$board_cpu" == "cortex-m33") {
|
||||
if (defined(LOSCFG_SECURE_TRUSTZONE)) {
|
||||
deps = [ "arm/cortex-m33/gcc/TZ:arch" ]
|
||||
} else {
|
||||
deps = [ "arm/cortex-m33/gcc/NTZ:arch" ]
|
||||
}
|
||||
} else if ("$board_cpu" == "ck802" || "$board_cpu" == "e802") {
|
||||
deps = [ "csky/v2/gcc:arch" ]
|
||||
} else if ("$board_cpu" == "") {
|
||||
if ("$board_arch" == "rv32imac" || "$board_arch" == "rv32imafdc") {
|
||||
deps = [ "risc-v/riscv32/gcc:arch" ]
|
||||
} else if ("$board" == "esp32") {
|
||||
deps = [ "xtensa/lx6/gcc:arch" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
config("public") {
|
||||
include_dirs = [ "include" ]
|
||||
if (defined(LOSCFG_ARCH_ARM)) {
|
||||
include_dirs += [ "arm/include" ]
|
||||
if (defined(LOSCFG_ARCH_CORTEX_M3)) {
|
||||
include_dirs += [ "arm/cortex-m3/gcc" ]
|
||||
} else if (defined(LOSCFG_ARCH_CORTEX_M4)) {
|
||||
include_dirs += [ "arm/cortex-m4/gcc" ]
|
||||
} else if (defined(LOSCFG_ARCH_CORTEX_M7)) {
|
||||
include_dirs += [ "arm/cortex-m7/gcc" ]
|
||||
} else if (defined(LOSCFG_ARCH_CORTEX_M33)) {
|
||||
if (defined(LOSCFG_TRUSTZONE)) {
|
||||
include_dirs += [ "arm/cortex-m33/gcc/TZ/non_secure" ]
|
||||
} else {
|
||||
include_dirs += [ "arm/cortex-m33/gcc/NTZ" ]
|
||||
}
|
||||
}
|
||||
} else if (defined(LOSCFG_ARCH_RISCV32)) {
|
||||
include_dirs += [ "risc-v/riscv32/gcc" ]
|
||||
include_dirs += [ "risc-v/riscv32/gcc/asm" ]
|
||||
} else if (defined(LOSCFG_ARCH_CSKY)) {
|
||||
include_dirs += [ "csky/v2/gcc" ]
|
||||
} else if (defined(LOSCFG_ARCH_XTENSA)) {
|
||||
include_dirs += [ "xtensa/lx6/gcc" ]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,46 @@
|
|||
config ARCH_ARM
|
||||
bool
|
||||
|
||||
rsource "arm/Kconfig"
|
||||
|
||||
config ARCH_CSKY
|
||||
bool
|
||||
|
||||
config ARCH_RISCV
|
||||
bool
|
||||
|
||||
config ARCH_RISCV32
|
||||
bool
|
||||
select ARCH_RISCV
|
||||
|
||||
config ARCH_XTENSA
|
||||
bool
|
||||
|
||||
comment "Extra Configurations"
|
||||
|
||||
config ARCH_FPU_DISABLE
|
||||
bool "Disable Floating Pointer Unit"
|
||||
default n
|
||||
help
|
||||
This option will bypass floating procedure in system.
|
||||
|
||||
config ARCH_SECURE_MONITOR_MODE
|
||||
bool "Run On Secure Monitor Mode"
|
||||
default n
|
||||
depends on ARCH_ARM_AARCH64
|
||||
help
|
||||
This option will make the system run on EL3.
|
||||
|
||||
config ARCH_INTERRUPT_PREEMPTION
|
||||
bool "Enable Interrupt Preemption"
|
||||
default n
|
||||
depends on ARCH_ARM_AARCH64
|
||||
help
|
||||
This option will support high priority interrupt preemption.
|
||||
|
||||
config IRQ_USE_STANDALONE_STACK
|
||||
bool "Use Interrupt Stack"
|
||||
default y
|
||||
depends on ARCH_ARM_AARCH64 || ARCH_ARM_AARCH32
|
||||
help
|
||||
This option will support using standalone interrupt stack.
|
|
@ -0,0 +1,108 @@
|
|||
# ARM Architecture
|
||||
|
||||
#
|
||||
# ARM has 32-bit(Aarch32) and 64-bit(Aarch64) implementations
|
||||
#
|
||||
config ARCH_ARM_AARCH32
|
||||
bool
|
||||
select ARCH_ARM
|
||||
help
|
||||
32-bit ARM architecture implementations, Except the M-profile.
|
||||
It is not limited to ARMv7-A but also ARMv7-R, ARMv8-A 32-bit and etc.
|
||||
|
||||
#
|
||||
# Architecture Versions
|
||||
#
|
||||
config ARCH_ARM_V7M
|
||||
bool
|
||||
|
||||
config ARCH_ARM_V5TE
|
||||
bool
|
||||
|
||||
config ARCH_ARM_VER
|
||||
string
|
||||
default "armv7-m" if ARCH_ARM_V7M
|
||||
default "armv5te" if ARCH_ARM_V5TE
|
||||
|
||||
#
|
||||
# VFP Hardware
|
||||
#
|
||||
config ARCH_FPU_VFP_V3
|
||||
bool
|
||||
help
|
||||
An optional extension to the Arm, Thumb, and ThumbEE instruction sets in the ARMv7-A and ARMv7-R profiles.
|
||||
VFPv3U is a variant of VFPv3 that supports the trapping of floating-point exceptions to support code.
|
||||
|
||||
config ARCH_FPU_VFP_V4
|
||||
bool
|
||||
help
|
||||
An optional extension to the Arm, Thumb, and ThumbEE instruction sets in the ARMv7-A and ARMv7-R profiles.
|
||||
VFPv4U is a variant of VFPv4 that supports the trapping of floating-point exceptions to support code.
|
||||
VFPv4 and VFPv4U add both the Half-precision Extension and the fused multiply-add instructions to the features of VFPv3.
|
||||
|
||||
config ARCH_FPU_VFP_D16
|
||||
bool
|
||||
depends on ARCH_ARM_AARCH32
|
||||
help
|
||||
VPU implemented with 16 doubleword registers (16 x 64-bit).
|
||||
|
||||
config ARCH_FPU_VFP_D32
|
||||
bool
|
||||
depends on ARCH_ARM_AARCH32
|
||||
help
|
||||
VPU implemented with 32 doubleword registers (32 x 64-bit).
|
||||
|
||||
config ARCH_FPU_VFP_NEON
|
||||
bool
|
||||
help
|
||||
Advanced SIMD extension (NEON) support.
|
||||
|
||||
config ARCH_FPU
|
||||
string
|
||||
default "vfpv3" if ARCH_FPU_VFP_V3 && ARCH_FPU_VFP_D32
|
||||
default "vfpv3-d16" if ARCH_FPU_VFP_V3 && ARCH_FPU_VFP_D16
|
||||
default "neon-vfpv4" if ARCH_FPU_VFP_V4 && ARCH_FPU_VFP_D32 && ARCH_FPU_VFP_NEON
|
||||
default "vfpv4" if ARCH_FPU_VFP_V4 && ARCH_FPU_VFP_D32
|
||||
default "vfpv4-d16" if ARCH_FPU_VFP_V4 && ARCH_FPU_VFP_D16
|
||||
|
||||
#
|
||||
# Supported Processor Cores
|
||||
#
|
||||
config ARCH_CORTEX_M3
|
||||
bool
|
||||
select ARCH_ARM_V7M
|
||||
select ARCH_ARM_AARCH32
|
||||
|
||||
config ARCH_CORTEX_M4
|
||||
bool
|
||||
select ARCH_ARM_V7M
|
||||
select ARCH_ARM_AARCH32
|
||||
|
||||
config ARCH_CORTEX_M7
|
||||
bool
|
||||
select ARCH_ARM_V7M
|
||||
select ARCH_ARM_AARCH32
|
||||
select ARCH_FPU_VFP_V4
|
||||
select ARCH_FPU_VFP_D32
|
||||
select ARCH_FPU_VFP_NEON
|
||||
|
||||
config ARCH_CORTEX_M33
|
||||
bool
|
||||
select ARCH_ARM_V7M
|
||||
select ARCH_ARM_AARCH32
|
||||
select ARCH_FPU_VFP_V4
|
||||
select ARCH_FPU_VFP_D32
|
||||
select ARCH_FPU_VFP_NEON
|
||||
|
||||
config ARCH_ARM9
|
||||
bool
|
||||
select ARCH_ARM_V5TE
|
||||
select ARCH_ARM_AARCH32
|
||||
|
||||
config ARCH_CPU
|
||||
string
|
||||
default "cortex-m3" if ARCH_CORTEX_M3
|
||||
default "cortex-m4" if ARCH_CORTEX_M4
|
||||
default "cortex-m7" if ARCH_CORTEX_M7
|
||||
default "cortex-m33" if ARCH_CORTEX_M33
|
||||
default "arm9" if ARCH_ARM9
|
|
@ -27,9 +27,10 @@
|
|||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("//kernel/liteos_m/config.gni")
|
||||
import("//kernel/liteos_m/liteos.gni")
|
||||
|
||||
static_library("arch") {
|
||||
module_name = "arch"
|
||||
kernel_module(module_name) {
|
||||
sources = [
|
||||
"los_context.c",
|
||||
"los_dispatch.S",
|
||||
|
@ -38,6 +39,4 @@ static_library("arch") {
|
|||
"los_timer.c",
|
||||
"reset_vector.S",
|
||||
]
|
||||
|
||||
configs += [ "$LITEOSTOPDIR:los_config" ]
|
||||
}
|
||||
|
|
|
@ -27,9 +27,10 @@
|
|||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("//kernel/liteos_m/config.gni")
|
||||
import("//kernel/liteos_m/liteos.gni")
|
||||
|
||||
static_library("arch") {
|
||||
module_name = "arch"
|
||||
kernel_module(module_name) {
|
||||
sources = [
|
||||
"los_context.c",
|
||||
"los_dispatch.S",
|
||||
|
@ -37,6 +38,4 @@ static_library("arch") {
|
|||
"los_interrupt.c",
|
||||
"los_timer.c",
|
||||
]
|
||||
|
||||
configs += [ "$LITEOSTOPDIR:los_config" ]
|
||||
}
|
||||
|
|
|
@ -27,9 +27,10 @@
|
|||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("//kernel/liteos_m/config.gni")
|
||||
import("//kernel/liteos_m/liteos.gni")
|
||||
|
||||
static_library("arch") {
|
||||
module_name = "arch"
|
||||
kernel_module(module_name) {
|
||||
sources = [
|
||||
"los_context.c",
|
||||
"los_dispatch.S",
|
||||
|
@ -37,6 +38,4 @@ static_library("arch") {
|
|||
"los_interrupt.c",
|
||||
"los_timer.c",
|
||||
]
|
||||
|
||||
configs += [ "$LITEOSTOPDIR:los_config" ]
|
||||
}
|
||||
|
|
|
@ -27,9 +27,10 @@
|
|||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("//kernel/liteos_m/config.gni")
|
||||
import("//kernel/liteos_m/liteos.gni")
|
||||
|
||||
static_library("arch") {
|
||||
module_name = "arch"
|
||||
kernel_module(module_name) {
|
||||
sources = [
|
||||
"non_secure/los_context.c",
|
||||
"non_secure/los_dispatch.S",
|
||||
|
@ -40,9 +41,7 @@ static_library("arch") {
|
|||
]
|
||||
|
||||
include_dirs = [
|
||||
"./non_secure",
|
||||
"./secure",
|
||||
"non_secure",
|
||||
"secure",
|
||||
]
|
||||
|
||||
configs += [ "$LITEOSTOPDIR:los_config" ]
|
||||
}
|
||||
|
|
|
@ -27,9 +27,10 @@
|
|||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("//kernel/liteos_m/config.gni")
|
||||
import("//kernel/liteos_m/liteos.gni")
|
||||
|
||||
static_library("arch") {
|
||||
module_name = "arch"
|
||||
kernel_module(module_name) {
|
||||
sources = [
|
||||
"los_context.c",
|
||||
"los_dispatch.S",
|
||||
|
@ -38,6 +39,4 @@ static_library("arch") {
|
|||
"los_mpu.c",
|
||||
"los_timer.c",
|
||||
]
|
||||
|
||||
configs += [ "$LITEOSTOPDIR:los_config" ]
|
||||
}
|
||||
|
|
|
@ -27,9 +27,10 @@
|
|||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("//kernel/liteos_m/config.gni")
|
||||
import("//kernel/liteos_m/liteos.gni")
|
||||
|
||||
static_library("arch") {
|
||||
module_name = "arch"
|
||||
kernel_module(module_name) {
|
||||
sources = [
|
||||
"los_context.c",
|
||||
"los_dispatch.S",
|
||||
|
@ -38,6 +39,4 @@ static_library("arch") {
|
|||
"los_mpu.c",
|
||||
"los_timer.c",
|
||||
]
|
||||
|
||||
configs += [ "$LITEOSTOPDIR:los_config" ]
|
||||
}
|
||||
|
|
|
@ -27,9 +27,10 @@
|
|||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("//kernel/liteos_m/config.gni")
|
||||
import("//kernel/liteos_m/liteos.gni")
|
||||
|
||||
static_library("arch") {
|
||||
module_name = "arch"
|
||||
kernel_module(module_name) {
|
||||
sources = [
|
||||
"los_context.c",
|
||||
"los_dispatch.S",
|
||||
|
@ -37,6 +38,4 @@ static_library("arch") {
|
|||
"los_interrupt.c",
|
||||
"los_timer.c",
|
||||
]
|
||||
|
||||
configs += [ "$LITEOSTOPDIR:los_config" ]
|
||||
}
|
||||
|
|
|
@ -27,10 +27,10 @@
|
|||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("//kernel/liteos_m/config.gni")
|
||||
import("//kernel/liteos_m/liteos.gni")
|
||||
|
||||
static_library("arch") {
|
||||
asmflags = board_asmflags
|
||||
module_name = "arch"
|
||||
kernel_module(module_name) {
|
||||
sources = [
|
||||
"los_context.c",
|
||||
"los_dispatch.S",
|
||||
|
@ -40,6 +40,4 @@ static_library("arch") {
|
|||
]
|
||||
|
||||
include_dirs = [ "asm" ]
|
||||
|
||||
configs += [ "$LITEOSTOPDIR:los_config" ]
|
||||
}
|
||||
|
|
|
@ -27,9 +27,10 @@
|
|||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("//kernel/liteos_m/config.gni")
|
||||
import("//kernel/liteos_m/liteos.gni")
|
||||
|
||||
static_library("arch") {
|
||||
module_name = "arch"
|
||||
kernel_module(module_name) {
|
||||
sources = [
|
||||
"los_context.c",
|
||||
"los_dispatch.S",
|
||||
|
@ -38,6 +39,4 @@ static_library("arch") {
|
|||
"los_timer.c",
|
||||
"los_window.S",
|
||||
]
|
||||
|
||||
configs += [ "$LITEOSTOPDIR:los_config" ]
|
||||
}
|
||||
|
|
|
@ -478,21 +478,6 @@ extern UINT8 *m_aucSysMem0;
|
|||
#define LOSCFG_BASE_MEM_NODE_INTEGRITY_CHECK 0
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @ingroup los_config
|
||||
* Configuration memory leak detection
|
||||
* @attention
|
||||
* Need to enable backtrace module synchronously by configuration LOSCFG_BACKTRACE_TYPE,
|
||||
* and call OsBackTraceInit to complete initialization before the memory pool is initialized.
|
||||
*/
|
||||
#ifndef LOSCFG_MEM_LEAKCHECK
|
||||
#define LOSCFG_MEM_LEAKCHECK 0
|
||||
#endif
|
||||
|
||||
#if (LOSCFG_MEM_LEAKCHECK == 1) && (LOSCFG_BACKTRACE_TYPE == 0)
|
||||
#error "if LOSCFG_MEM_LEAKCHECK is set to 1, then LOSCFG_BACKTRACE_TYPE must be set to 1, 2 or 3."
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @ingroup los_config
|
||||
* The default is 4, which means that the function call stack is recorded from the kernel interface,
|
||||
|
@ -565,14 +550,6 @@ extern UINT8 *m_aucSysMem0;
|
|||
/* =============================================================================
|
||||
Exception module configuration
|
||||
============================================================================= */
|
||||
/**
|
||||
* @ingroup los_config
|
||||
* Configuration item for exception tailoring
|
||||
*/
|
||||
#ifndef LOSCFG_PLATFORM_EXC
|
||||
#define LOSCFG_PLATFORM_EXC 0
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @ingroup los_config
|
||||
* Configuration of hardware stack protection
|
||||
|
@ -582,27 +559,8 @@ extern UINT8 *m_aucSysMem0;
|
|||
#endif
|
||||
|
||||
/* =============================================================================
|
||||
CPUP module configuration
|
||||
KAL module configuration
|
||||
============================================================================= */
|
||||
/**
|
||||
* @ingroup los_config
|
||||
* Configuration item for CPU usage tailoring
|
||||
*/
|
||||
#ifndef LOSCFG_BASE_CORE_CPUP
|
||||
#define LOSCFG_BASE_CORE_CPUP 0
|
||||
#endif
|
||||
|
||||
/* =============================================================================
|
||||
Test module configuration
|
||||
============================================================================= */
|
||||
/**
|
||||
* @ingroup los_config
|
||||
* Configuration test case to open
|
||||
*/
|
||||
#ifndef LOSCFG_TEST
|
||||
#define LOSCFG_TEST 0
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @ingroup los_config
|
||||
* Configuration CMSIS_OS_VER
|
||||
|
@ -611,21 +569,6 @@ extern UINT8 *m_aucSysMem0;
|
|||
#define CMSIS_OS_VER 2
|
||||
#endif
|
||||
|
||||
/* =============================================================================
|
||||
Fs module configuration
|
||||
============================================================================= */
|
||||
#ifndef LOSCFG_SUPPORT_FATFS
|
||||
#define LOSCFG_SUPPORT_FATFS 0
|
||||
#endif
|
||||
|
||||
#ifndef LOSCFG_SUPPORT_LITTLEFS
|
||||
#define LOSCFG_SUPPORT_LITTLEFS 1
|
||||
#endif
|
||||
|
||||
#ifndef LOSCFG_LFS_MAX_MOUNT_SIZE
|
||||
#define LOSCFG_LFS_MAX_MOUNT_SIZE 3
|
||||
#endif
|
||||
|
||||
/* =============================================================================
|
||||
Trace module configuration
|
||||
============================================================================= */
|
||||
|
@ -633,46 +576,9 @@ extern UINT8 *m_aucSysMem0;
|
|||
* @ingroup los_config
|
||||
* Configuration trace tool
|
||||
*/
|
||||
#ifndef LOSCFG_DEBUG_HOOK
|
||||
#define LOSCFG_DEBUG_HOOK 0
|
||||
#endif
|
||||
|
||||
#if (LOSCFG_DEBUG_HOOK == 1)
|
||||
#ifndef LOSCFG_KERNEL_TRACE
|
||||
#define LOSCFG_KERNEL_TRACE 0
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if (LOSCFG_KERNEL_TRACE == 1)
|
||||
|
||||
#ifndef LOSCFG_TRACE_FRAME_MAX_PARAMS
|
||||
#define LOSCFG_TRACE_FRAME_MAX_PARAMS 3
|
||||
#endif
|
||||
|
||||
#ifndef LOSCFG_TRACE_FRAME_EVENT_COUNT
|
||||
#define LOSCFG_TRACE_FRAME_EVENT_COUNT 0
|
||||
#endif
|
||||
|
||||
#ifndef LOSCFG_RECORDER_MODE_OFFLINE
|
||||
#define LOSCFG_RECORDER_MODE_OFFLINE 1
|
||||
#endif
|
||||
|
||||
#ifndef LOSCFG_RECORDER_MODE_ONLINE
|
||||
#define LOSCFG_RECORDER_MODE_ONLINE 0
|
||||
#endif
|
||||
|
||||
#if (!(LOSCFG_RECORDER_MODE_OFFLINE ^ LOSCFG_RECORDER_MODE_ONLINE))
|
||||
#error One of LOSCFG_RECORDER_MODE_OFFLINE and LOSCFG_RECORDER_MODE_ONLINE should be set to 1 and only.
|
||||
#endif
|
||||
|
||||
#ifndef LOSCFG_TRACE_CLIENT_INTERACT
|
||||
#define LOSCFG_TRACE_CLIENT_INTERACT 1
|
||||
#endif
|
||||
|
||||
#ifndef LOSCFG_TRACE_BUFFER_SIZE
|
||||
#define LOSCFG_TRACE_BUFFER_SIZE 2048
|
||||
#endif
|
||||
|
||||
#ifndef NUM_HAL_INTERRUPT_UART
|
||||
#define NUM_HAL_INTERRUPT_UART 0xff
|
||||
#endif
|
||||
|
@ -683,41 +589,6 @@ extern UINT8 *m_aucSysMem0;
|
|||
|
||||
#endif
|
||||
|
||||
/* =============================================================================
|
||||
PM module configuration
|
||||
============================================================================= */
|
||||
/**
|
||||
* @ingroup los_config
|
||||
* Configuration item for low power frame tailoring
|
||||
*/
|
||||
#ifndef LOSCFG_KERNEL_PM
|
||||
#define LOSCFG_KERNEL_PM 1
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @ingroup los_config
|
||||
* Configuration item for priority of low-power task.
|
||||
*/
|
||||
#ifndef LOSCFG_KERNEL_PM_TASK_PTIORITY
|
||||
#define LOSCFG_KERNEL_PM_TASK_PTIORITY 1
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @ingroup los_config
|
||||
* Configuration item for stack size of low-power task.
|
||||
*/
|
||||
#ifndef LOSCFG_KERNEL_PM_TASK_STACKSIZE
|
||||
#define LOSCFG_KERNEL_PM_TASK_STACKSIZE 0x800
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @ingroup los_config
|
||||
* Configuration item for low power frame debug tailoring
|
||||
*/
|
||||
#ifndef LOSCFG_KERNEL_PM_DEBUG
|
||||
#define LOSCFG_KERNEL_PM_DEBUG 0
|
||||
#endif
|
||||
|
||||
/* =============================================================================
|
||||
printf configuration
|
||||
============================================================================= */
|
||||
|
@ -730,52 +601,8 @@ extern UINT8 *m_aucSysMem0;
|
|||
#endif
|
||||
|
||||
/* =============================================================================
|
||||
backtrace configuration
|
||||
misc configuration
|
||||
============================================================================= */
|
||||
/**
|
||||
* @ingroup los_config
|
||||
* Configuration backtrace type
|
||||
* 0: Close stack analysis module.
|
||||
* 1: Call stack analysis for cortex-m series by scanning the stack.
|
||||
* 2: Call stack analysis for risc-v by using frame pointer.
|
||||
* 3: Call stack analysis for risc-v by scanning the stack.
|
||||
* 4: Call stack analysis for xtensa by scanning the stack.
|
||||
* 5: Call stack analysis for c-sky by scanning the stack.
|
||||
* 6: Call stack analysis for arm9 by scanning the stack.
|
||||
* others: Not currently supported.
|
||||
*/
|
||||
#ifndef LOSCFG_BACKTRACE_TYPE
|
||||
#define LOSCFG_BACKTRACE_TYPE 0
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @ingroup los_config
|
||||
* Configuration backtrace depth.
|
||||
*/
|
||||
#ifndef LOSCFG_BACKTRACE_DEPTH
|
||||
#define LOSCFG_BACKTRACE_DEPTH 15
|
||||
#endif
|
||||
|
||||
/* =============================================================================
|
||||
trustzone configuration
|
||||
============================================================================= */
|
||||
/**
|
||||
* @ingroup los_config
|
||||
* Configuration trustzone secure heap size.
|
||||
*/
|
||||
#ifndef LOSCFG_SECURE_HEAP_SIZE
|
||||
#define LOSCFG_SECURE_HEAP_SIZE 2048
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @ingroup los_config
|
||||
* Configuration trustzone secure stack default size.
|
||||
* The secure stack must be allocated before the task calls non-secure callble functions.
|
||||
*/
|
||||
#ifndef LOSCFG_SECURE_STACK_DEFAULT_SIZE
|
||||
#define LOSCFG_SECURE_STACK_DEFAULT_SIZE 512
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @ingroup los_config
|
||||
* Configuration item for mpu.
|
||||
|
@ -788,25 +615,6 @@ extern UINT8 *m_aucSysMem0;
|
|||
#error "if hardware stack protection is enabled, then MPU should be supported and enabled"
|
||||
#endif
|
||||
|
||||
/*=============================================================================
|
||||
shell module configuration
|
||||
=============================================================================*/
|
||||
/**
|
||||
* @ingroup los_config
|
||||
* Configuration item for shell.
|
||||
*/
|
||||
#ifndef LOSCFG_USE_SHELL
|
||||
#define LOSCFG_USE_SHELL 0
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @ingroup los_config
|
||||
* Configuration shell task priority.
|
||||
*/
|
||||
#ifndef LOSCFG_SHELL_PRIO
|
||||
#define LOSCFG_SHELL_PRIO 3
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @ingroup los_config
|
||||
* Configuration item to get task used memory.
|
||||
|
|
|
@ -202,14 +202,6 @@ LITE_OS_SEC_TEXT_INIT UINT32 LOS_KernelInit(VOID)
|
|||
}
|
||||
#endif
|
||||
|
||||
#if (LOSCFG_TEST == 1)
|
||||
ret = los_TestInit();
|
||||
if (ret != LOS_OK) {
|
||||
PRINT_ERR("los_TestInit error\n");
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if (LOSCFG_PLATFORM_EXC == 1)
|
||||
OsExcMsgDumpInit();
|
||||
#endif
|
||||
|
|
|
@ -0,0 +1,126 @@
|
|||
# Copyright (c) 2013-2019 Huawei Technologies Co., Ltd. All rights reserved.
|
||||
# Copyright (c) 2020-2021 Huawei Device Co., Ltd. All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without modification,
|
||||
# are permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||
# conditions and the following disclaimer.
|
||||
#
|
||||
# 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
# of conditions and the following disclaimer in the documentation and/or other materials
|
||||
# provided with the distribution.
|
||||
#
|
||||
# 3. Neither the name of the copyright holder nor the names of its contributors may be used
|
||||
# to endorse or promote products derived from this software without specific prior written
|
||||
# permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||||
# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("$root_out_dir/config.gni")
|
||||
|
||||
LITEOSTOPDIR = "//kernel/liteos_m"
|
||||
LITEOSTHIRDPARTY = "//third_party"
|
||||
HDFTOPDIR = "//drivers/adapter/khdf/liteos_m"
|
||||
|
||||
ARCH = ""
|
||||
if (defined(LOSCFG_ARCH_ARM_AARCH32)) {
|
||||
ARCH = "arm"
|
||||
} else if (defined(LOSCFG_ARCH_ARM_AARCH64)) {
|
||||
ARCH = "aarch64"
|
||||
} else if (defined(LOSCFG_ARCH_RISCV32)) {
|
||||
ARCH = "rv32imac"
|
||||
} else if (defined(LOSCFG_ARCH_CSKY)) {
|
||||
ARCH = "csky"
|
||||
} else if (defined(LOSCFG_ARCH_XTENSA)) {
|
||||
ARCH = "xtensa"
|
||||
}
|
||||
|
||||
template("kernel_module") {
|
||||
build_gn = rebase_path("BUILD.gn")
|
||||
cmd = "grep -c '^\s*\(kernel_module\|hdf_driver\)\s*(\s*\S*\s*)\s*{\s*\$' $build_gn"
|
||||
modules_count = exec_script("//build/lite/run_shell_cmd.py", [ cmd ], "value")
|
||||
if (modules_count == 1) {
|
||||
auto_config = true
|
||||
}
|
||||
|
||||
cmd = "if grep -q '^\s*config\s*(\s*\"public\"\s*)\s*{\s*\$' $build_gn; then echo true; else echo false; fi"
|
||||
has_public_config =
|
||||
exec_script("//build/lite/run_shell_cmd.py", [ cmd ], "value")
|
||||
if (!has_public_config && defined(auto_config)) {
|
||||
config("public") {
|
||||
configs = []
|
||||
}
|
||||
}
|
||||
|
||||
current_dir_name = get_path_info(rebase_path("."), "file")
|
||||
if (target_name != current_dir_name) {
|
||||
cmd = "if grep -q '^\s*group\s*(\s*\"$current_dir_name\"\s*)\s*{\s*\$' $build_gn; then echo true; else echo false; fi"
|
||||
has_current_dir_group =
|
||||
exec_script("//build/lite/run_shell_cmd.py", [ cmd ], "value")
|
||||
if (!has_current_dir_group && defined(auto_config)) {
|
||||
module_name = target_name
|
||||
group(current_dir_name) {
|
||||
public_deps = [ ":$module_name" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (defined(invoker.module_switch) && !invoker.module_switch) {
|
||||
group(target_name) {
|
||||
not_needed(invoker, "*")
|
||||
}
|
||||
} else {
|
||||
source_set(target_name) {
|
||||
public_configs = []
|
||||
forward_variables_from(invoker, "*", [ "configs" ])
|
||||
configs += invoker.configs
|
||||
if (has_public_config) {
|
||||
included_public_config = false
|
||||
foreach(cfg, public_configs) {
|
||||
what = "label_no_toolchain"
|
||||
if (get_label_info(cfg, what) == get_label_info(":public", what)) {
|
||||
included_public_config = true
|
||||
}
|
||||
}
|
||||
if (!included_public_config) {
|
||||
public_configs += [ ":public" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
not_needed([ "auto_config" ])
|
||||
}
|
||||
|
||||
template("config") {
|
||||
config(target_name) {
|
||||
if (defined(invoker.module_switch) && !invoker.module_switch &&
|
||||
target_name == "public") {
|
||||
not_needed(invoker, "*")
|
||||
forward_variables_from(invoker, [ "configs" ])
|
||||
} else {
|
||||
forward_variables_from(invoker, "*")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
set_defaults("kernel_module") {
|
||||
configs = [
|
||||
"$LITEOSTOPDIR:public",
|
||||
"$LITEOSTOPDIR:los_config",
|
||||
]
|
||||
visibility = [
|
||||
"$LITEOSTOPDIR/*",
|
||||
"../*",
|
||||
]
|
||||
}
|
|
@ -27,12 +27,7 @@
|
|||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("//build/lite/config/component/lite_component.gni")
|
||||
import("//kernel/liteos_m/config.gni")
|
||||
|
||||
declare_args() {
|
||||
enable_ohos_kernel_liteos_m_test_full = false
|
||||
}
|
||||
import("//kernel/liteos_m/liteos.gni")
|
||||
|
||||
config("include") {
|
||||
defines = []
|
||||
|
@ -43,12 +38,13 @@ config("include") {
|
|||
"//kernel/liteos_m/components/cpup",
|
||||
]
|
||||
|
||||
if (enable_ohos_kernel_liteos_m_test_full) {
|
||||
if (defined(LOSCFG_KERNEL_TEST_FULL)) {
|
||||
defines += [ "LOS_KERNEL_TEST_FULL=1" ]
|
||||
}
|
||||
}
|
||||
|
||||
static_library("test_init") {
|
||||
module_switch = defined(LOSCFG_TEST)
|
||||
kernel_module("test_init") {
|
||||
sources = [
|
||||
"src/iCunit.c",
|
||||
"src/osTest.c",
|
||||
|
@ -57,22 +53,23 @@ static_library("test_init") {
|
|||
configs += [ ":include" ]
|
||||
}
|
||||
|
||||
lite_component("test") {
|
||||
features = [
|
||||
group("testsuites") {
|
||||
deps = [
|
||||
":test_init",
|
||||
"sample/kernel/event:test_event",
|
||||
"sample/kernel/hwi:test_hwi",
|
||||
"sample/kernel/mem:test_mem",
|
||||
"sample/kernel/mux:test_mux",
|
||||
"sample/kernel/power:test_pm",
|
||||
"sample/kernel/queue:test_queue",
|
||||
"sample/kernel/sem:test_sem",
|
||||
"sample/kernel/swtmr:test_swtmr",
|
||||
"sample/kernel/task:test_task",
|
||||
"sample/kernel/power:test_pm",
|
||||
|
||||
#"sample/kernel/tickless:test_tickless",
|
||||
]
|
||||
if (enable_ohos_kernel_liteos_m_dynlink) {
|
||||
features += [ "sample/kernel/dynlink:test_dynlink" ]
|
||||
if (defined(LOSCFG_DYNLINK)) {
|
||||
deps += [ "sample/kernel/dynlink:test_dynlink" ]
|
||||
}
|
||||
if (!module_switch) {
|
||||
deps = []
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,14 +27,17 @@
|
|||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("//kernel/liteos_m/config.gni")
|
||||
import("//kernel/liteos_m/liteos.gni")
|
||||
|
||||
static_library("utils") {
|
||||
module_name = get_path_info(rebase_path("."), "name")
|
||||
kernel_module(module_name) {
|
||||
sources = [
|
||||
"los_debug.c",
|
||||
"los_error.c",
|
||||
"los_hook.c",
|
||||
]
|
||||
|
||||
configs += [ "$LITEOSTOPDIR:los_config" ]
|
||||
}
|
||||
|
||||
config("public") {
|
||||
include_dirs = [ "." ]
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue