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
|
*.o
|
||||||
*.d
|
*.d
|
||||||
*.su
|
*.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
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# 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") {
|
config("los_config") {
|
||||||
cflags = [ "-Werror" ]
|
configs = [
|
||||||
|
":arch_config",
|
||||||
|
":kconfig_config",
|
||||||
|
|
||||||
asmflags = [
|
#":stdinc_config",
|
||||||
"-DCLZ=CLZ",
|
":dialect_config",
|
||||||
"-imacros",
|
":optimize_config",
|
||||||
"$LITEOS_LOS_CONFIG_H",
|
":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 = [
|
if (HAVE_DEVICE_SDK) {
|
||||||
"//kernel/liteos_m/kernel/include",
|
configs += [ "$device_path:public" ]
|
||||||
"//kernel/liteos_m/kernel/arch/include",
|
}
|
||||||
"//kernel/liteos_m/utils",
|
|
||||||
"//third_party/bounds_checking_function/include",
|
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") {
|
group("kernel") {
|
||||||
deps = [
|
public_deps = [ ":libkernel" ]
|
||||||
"kernel:kernel",
|
visibility += [ "//build/lite:ohos" ]
|
||||||
"utils:utils",
|
}
|
||||||
"//third_party/bounds_checking_function:libsec_static",
|
|
||||||
|
group("liteos_m") {
|
||||||
|
}
|
||||||
|
|
||||||
|
executable("liteos") {
|
||||||
|
configs += [
|
||||||
|
":public",
|
||||||
|
":los_config",
|
||||||
]
|
]
|
||||||
if (enable_ohos_kernel_liteos_m_cppsupport) {
|
|
||||||
deps += [ "components/cppsupport:cppsupport" ]
|
ldflags = [
|
||||||
}
|
"-static",
|
||||||
if (enable_ohos_kernel_liteos_m_cpup) {
|
"-Wl,--gc-sections",
|
||||||
deps += [ "components/cpup:cpup" ]
|
"-Wl,-Map=$liteos_name.map",
|
||||||
}
|
]
|
||||||
if (enable_ohos_kernel_liteos_m_exchook) {
|
|
||||||
deps += [ "components/exchook:exchook" ]
|
output_dir = target_out_dir
|
||||||
}
|
|
||||||
if (enable_ohos_kernel_liteos_m_backtrace) {
|
if (liteos_kernel_only) {
|
||||||
deps += [ "components/backtrace:backtrace" ]
|
deps = [ ":kernel" ]
|
||||||
}
|
} else {
|
||||||
if (enable_ohos_kernel_liteos_m_fs) {
|
deps = [ "//build/lite:ohos" ]
|
||||||
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" ]
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# 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" ]
|
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
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# 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" ]
|
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
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# 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" ]
|
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
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
import("//kernel/liteos_m/config.gni")
|
import("//kernel/liteos_m/liteos.gni")
|
||||||
|
|
||||||
config("dynlink_config") {
|
module_switch = defined(LOSCFG_KERNEL_DYNLINK)
|
||||||
include_dirs = [ "./" ]
|
module_name = get_path_info(rebase_path("."), "name")
|
||||||
if (arch == "arm") {
|
kernel_module(module_name) {
|
||||||
include_dirs += [ "../../kernel/arch/arm/include" ]
|
|
||||||
} else {
|
|
||||||
assert(false,
|
|
||||||
"Dynlink module does not support for other archs except for arm!")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static_library("dynlink") {
|
|
||||||
sources = [ "los_dynlink.c" ]
|
sources = [ "los_dynlink.c" ]
|
||||||
|
}
|
||||||
public_configs = [ ":dynlink_config" ]
|
|
||||||
configs += [ "$LITEOSTOPDIR:los_config" ]
|
config("public") {
|
||||||
|
include_dirs = [ "." ]
|
||||||
deps = [ "//kernel/liteos_m/kal/posix" ]
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,13 +27,17 @@
|
||||||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# 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 = [
|
sources = [
|
||||||
"los_exc_info.c",
|
"los_exc_info.c",
|
||||||
"los_exchook.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
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
static_library("fs_operations") {
|
import("//kernel/liteos_m/liteos.gni")
|
||||||
sources = [ "./fs.c" ]
|
|
||||||
|
|
||||||
include_dirs = [
|
module_switch = defined(LOSCFG_FS_VFS)
|
||||||
"../../../kernel/arch/include",
|
module_name = "fs_operations"
|
||||||
"../../../kernel/include",
|
kernel_module(module_name) {
|
||||||
"../../../utils",
|
sources = [ "fs.c" ]
|
||||||
"../../../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
|
|
||||||
}
|
}
|
||||||
|
|
||||||
group("fs") {
|
group("fs") {
|
||||||
deps = []
|
deps = [ ":$module_name" ]
|
||||||
deps += [ ".:fs_operations" ]
|
deps += [
|
||||||
if (enable_ohos_kernel_liteos_m_fatfs) {
|
"fatfs",
|
||||||
deps += [ "fatfs:fatfs" ]
|
"littlefs",
|
||||||
}
|
]
|
||||||
if (enable_ohos_kernel_liteos_m_littlefs) {
|
}
|
||||||
deps += [ "littlefs: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
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# 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 = [
|
sources = [
|
||||||
"//third_party/FatFs/source/diskio.c",
|
"$LITEOSTHIRDPARTY/FatFs/source/diskio.c",
|
||||||
"//third_party/FatFs/source/ff.c",
|
"$LITEOSTHIRDPARTY/FatFs/source/ff.c",
|
||||||
"//third_party/FatFs/source/ffsystem.c",
|
"$LITEOSTHIRDPARTY/FatFs/source/ffsystem.c",
|
||||||
"//third_party/FatFs/source/ffunicode.c",
|
"$LITEOSTHIRDPARTY/FatFs/source/ffunicode.c",
|
||||||
"fatfs.c",
|
"fatfs.c",
|
||||||
]
|
]
|
||||||
|
}
|
||||||
include_dirs = [
|
|
||||||
"../",
|
config("public") {
|
||||||
"../../../kernel/arch/include",
|
include_dirs = [ "." ]
|
||||||
"../../../kernel/include",
|
include_dirs += [ "$LITEOSTHIRDPARTY/FatFs/source" ]
|
||||||
"../../../utils",
|
|
||||||
"../../../kal/cmsis",
|
|
||||||
"../../../kal/posix/include",
|
|
||||||
"//third_party/bounds_checking_function/include",
|
|
||||||
"//third_party/FatFs/source/",
|
|
||||||
]
|
|
||||||
|
|
||||||
deps = [ "//kernel/liteos_m/kal/posix" ]
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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 "sys/stat.h"
|
||||||
#include "unistd.h"
|
#include "unistd.h"
|
||||||
|
|
||||||
struct FsMap g_fsmap[MAX_FILESYSTEM_LEN] = {0};
|
|
||||||
struct FsMap *g_fs = NULL;
|
|
||||||
|
|
||||||
#ifdef LOSCFG_NET_LWIP_SACK
|
#ifdef LOSCFG_NET_LWIP_SACK
|
||||||
#include "lwip/lwipopts.h"
|
#define _BSD_SOURCE
|
||||||
#include "lwip/sockets.h"
|
#include "lwip/sockets.h"
|
||||||
#define CONFIG_NSOCKET_DESCRIPTORS LWIP_CONFIG_NUM_SOCKETS
|
|
||||||
#else
|
|
||||||
#define CONFIG_NSOCKET_DESCRIPTORS 0
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define CONFIG_NFILE_DESCRIPTORS FAT_MAX_OPEN_FILES /* only for random currently */
|
#include "vfs_config.h"
|
||||||
|
|
||||||
#ifdef LOSCFG_RANDOM_DEV
|
#ifdef LOSCFG_RANDOM_DEV
|
||||||
#include "hks_client.h"
|
#include "hks_client.h"
|
||||||
|
@ -159,6 +153,9 @@ static size_t GetCanonicalPath(const char *cwd, const char *path, char *buf, siz
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static struct FsMap g_fsmap[MAX_FILESYSTEM_LEN] = {0};
|
||||||
|
static struct FsMap *g_fs = NULL;
|
||||||
|
|
||||||
static void InitMountInfo(void)
|
static void InitMountInfo(void)
|
||||||
{
|
{
|
||||||
#if (LOSCFG_SUPPORT_FATFS == 1)
|
#if (LOSCFG_SUPPORT_FATFS == 1)
|
||||||
|
|
|
@ -27,23 +27,21 @@
|
||||||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# 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 = [
|
sources = [
|
||||||
"//third_party/littlefs/lfs.c",
|
"$LITEOSTHIRDPARTY/littlefs/bd/lfs_rambd.c",
|
||||||
"//third_party/littlefs/lfs_util.c",
|
"$LITEOSTHIRDPARTY/littlefs/lfs.c",
|
||||||
|
"$LITEOSTHIRDPARTY/littlefs/lfs_util.c",
|
||||||
"lfs_api.c",
|
"lfs_api.c",
|
||||||
]
|
]
|
||||||
|
}
|
||||||
include_dirs = [
|
|
||||||
"../../../kernel/arch/include",
|
config("public") {
|
||||||
"../../../kernel/include",
|
include_dirs = [ "." ]
|
||||||
"../../../utils",
|
include_dirs += [ "$LITEOSTHIRDPARTY/littlefs" ]
|
||||||
"../../../kal/cmsis",
|
include_dirs += [ "$LITEOSTHIRDPARTY/littlefs/bd" ]
|
||||||
"../../../kal/posix/include",
|
|
||||||
"./",
|
|
||||||
"../",
|
|
||||||
"//third_party/littlefs",
|
|
||||||
]
|
|
||||||
|
|
||||||
deps = [ "//kernel/liteos_m/kal/posix" ]
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -93,7 +93,6 @@ typedef struct {
|
||||||
|
|
||||||
LittleFsHandleStruct *GetFreeFd(int *fd);
|
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,
|
int LfsMount(const char *source, const char *target, const char *fileSystemType, unsigned long mountflags,
|
||||||
const void *data);
|
const void *data);
|
||||||
|
|
||||||
|
@ -114,7 +113,5 @@ int LfsStat(const char *path, struct stat *buf);
|
||||||
int LfsFsync(int fd);
|
int LfsFsync(int fd);
|
||||||
int SetDefaultMountPath(int pathNameIndex, const char* target);
|
int SetDefaultMountPath(int pathNameIndex, const char* target);
|
||||||
|
|
||||||
const struct FsMap *MountFindfs(const char *filesystemtype);
|
|
||||||
|
|
||||||
#endif /* _LFS_API_H_ */
|
#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
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
import("//kernel/liteos_m/liteos.gni")
|
||||||
|
|
||||||
declare_args() {
|
declare_args() {
|
||||||
enable_ohos_kernel_liteos_m_cppsupport = true
|
ohos_kernel_liteos_m_lwip_path = "lwip-2.1"
|
||||||
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"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
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
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# 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")
|
import("lwip_porting.gni")
|
||||||
|
|
||||||
config("lwip_depends") {
|
module_switch = defined(LOSCFG_NET_LWIP_SACK)
|
||||||
defines = [ "_BSD_SOURCE = 1" ]
|
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") {
|
config("public") {
|
||||||
include_dirs = [
|
include_dirs = LWIP_PORTING_INCLUDE_DIRS + 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" ]
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,8 +25,10 @@
|
||||||
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# 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" ]
|
LWIP_PORTING_INCLUDE_DIRS = [ "$LWIP_PORTING_DIR/porting/include" ]
|
||||||
|
|
||||||
|
@ -40,6 +42,6 @@ LWIP_PORTING_FILES = [
|
||||||
"$LWIP_PORTING_DIR/enhancement/src/lwip_ifaddrs.c",
|
"$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" ]
|
LWIP_PORTING_FILES += [ "$LWIP_PORTING_DIR/porting/src/api_shell.c" ]
|
||||||
}
|
}
|
||||||
|
|
|
@ -134,7 +134,10 @@
|
||||||
#define LWIP_NETIF_LOOPBACK 1
|
#define LWIP_NETIF_LOOPBACK 1
|
||||||
#define LWIP_POSIX_SOCKETS_IO_NAMES 0
|
#define LWIP_POSIX_SOCKETS_IO_NAMES 0
|
||||||
#define LWIP_RAW 1
|
#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_RCVBUF 1
|
||||||
#define LWIP_SO_RCVTIMEO 1
|
#define LWIP_SO_RCVTIMEO 1
|
||||||
#define LWIP_SO_SNDTIMEO 1
|
#define LWIP_SO_SNDTIMEO 1
|
||||||
|
|
|
@ -27,10 +27,14 @@
|
||||||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# 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" ]
|
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
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# 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 = [
|
sources = [
|
||||||
"src/base/shcmd.c",
|
"src/base/shcmd.c",
|
||||||
"src/base/shcmdparse.c",
|
"src/base/shcmdparse.c",
|
||||||
|
@ -42,21 +44,11 @@ static_library("shell") {
|
||||||
"src/cmds/task_shellcmd.c",
|
"src/cmds/task_shellcmd.c",
|
||||||
"src/cmds/vfs_shellcmd.c",
|
"src/cmds/vfs_shellcmd.c",
|
||||||
]
|
]
|
||||||
|
if (defined(LOSCFG_NET_LWIP_SACK)) {
|
||||||
include_dirs = [
|
|
||||||
"../../kernel/arch/include",
|
|
||||||
"../../kernel/include",
|
|
||||||
"../../utils",
|
|
||||||
"./include",
|
|
||||||
]
|
|
||||||
|
|
||||||
configs += [ "$LITEOSTOPDIR:los_config" ]
|
|
||||||
|
|
||||||
if (enable_ohos_kernel_liteos_m_lwip) {
|
|
||||||
defines = [ "LWIP_SHELLCMD_ENABLE" ]
|
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
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# 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 = [
|
sources = [
|
||||||
"cnv/trace_cnv.c",
|
"cnv/trace_cnv.c",
|
||||||
"los_trace.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 = [
|
include_dirs = [
|
||||||
"./",
|
".",
|
||||||
"cnv",
|
"cnv",
|
||||||
"pipeline",
|
"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
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
import("//build/lite/config/component/lite_component.gni")
|
import("//kernel/liteos_m/liteos.gni")
|
||||||
|
|
||||||
declare_args() {
|
group("kal") {
|
||||||
enable_ohos_kernel_liteos_m_cmsis = true
|
deps = [ "cmsis" ]
|
||||||
enable_ohos_kernel_liteos_m_posix = true
|
deps += [ "posix" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
lite_component("kal") {
|
config("public") {
|
||||||
features = []
|
configs = [
|
||||||
|
"cmsis:public",
|
||||||
if (enable_ohos_kernel_liteos_m_cmsis) {
|
"posix:public",
|
||||||
features += [ "cmsis" ]
|
]
|
||||||
}
|
|
||||||
|
|
||||||
if (enable_ohos_kernel_liteos_m_posix) {
|
|
||||||
features += [ "posix" ]
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,18 +27,18 @@
|
||||||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# 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" ]
|
sources = [ "cmsis_liteos2.c" ]
|
||||||
|
|
||||||
public_configs = [ ":include" ]
|
|
||||||
configs += [ "$LITEOSTOPDIR:los_config" ]
|
|
||||||
}
|
}
|
||||||
|
|
||||||
config("include") {
|
config("public") {
|
||||||
include_dirs = [
|
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
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
import("//kernel/liteos_m/config.gni")
|
import("//kernel/liteos_m/liteos.gni")
|
||||||
|
|
||||||
config("include") {
|
module_switch = defined(LOSCFG_COMPAT_POSIX)
|
||||||
include_dirs = [ "include" ]
|
module_name = get_path_info(rebase_path("."), "name")
|
||||||
}
|
kernel_module(module_name) {
|
||||||
|
|
||||||
static_library("posix") {
|
|
||||||
sources = [
|
sources = [
|
||||||
"src/errno.c",
|
"src/errno.c",
|
||||||
"src/libc.c",
|
"src/libc.c",
|
||||||
|
@ -46,9 +44,8 @@ static_library("posix") {
|
||||||
"src/semaphore.c",
|
"src/semaphore.c",
|
||||||
"src/time.c",
|
"src/time.c",
|
||||||
]
|
]
|
||||||
|
}
|
||||||
public_configs = [ ":include" ]
|
|
||||||
configs += [ "$LITEOSTOPDIR:los_config" ]
|
config("public") {
|
||||||
|
include_dirs = [ "include" ]
|
||||||
public_deps = [ "//third_party/musl/porting/liteos_m/kernel" ]
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,9 +27,10 @@
|
||||||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# 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 = [
|
sources = [
|
||||||
"src/los_event.c",
|
"src/los_event.c",
|
||||||
"src/los_init.c",
|
"src/los_init.c",
|
||||||
|
@ -44,36 +45,8 @@ static_library("kernel") {
|
||||||
"src/mm/los_membox.c",
|
"src/mm/los_membox.c",
|
||||||
"src/mm/los_memory.c",
|
"src/mm/los_memory.c",
|
||||||
]
|
]
|
||||||
|
}
|
||||||
include_dirs = [
|
|
||||||
"../components/cpup",
|
config("public") {
|
||||||
"../components/exchook",
|
include_dirs = [ "include" ]
|
||||||
"../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" ]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# 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 = [
|
sources = [
|
||||||
"los_context.c",
|
"los_context.c",
|
||||||
"los_dispatch.S",
|
"los_dispatch.S",
|
||||||
|
@ -38,6 +39,4 @@ static_library("arch") {
|
||||||
"los_timer.c",
|
"los_timer.c",
|
||||||
"reset_vector.S",
|
"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
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# 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 = [
|
sources = [
|
||||||
"los_context.c",
|
"los_context.c",
|
||||||
"los_dispatch.S",
|
"los_dispatch.S",
|
||||||
|
@ -37,6 +38,4 @@ static_library("arch") {
|
||||||
"los_interrupt.c",
|
"los_interrupt.c",
|
||||||
"los_timer.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
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# 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 = [
|
sources = [
|
||||||
"los_context.c",
|
"los_context.c",
|
||||||
"los_dispatch.S",
|
"los_dispatch.S",
|
||||||
|
@ -37,6 +38,4 @@ static_library("arch") {
|
||||||
"los_interrupt.c",
|
"los_interrupt.c",
|
||||||
"los_timer.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
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# 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 = [
|
sources = [
|
||||||
"non_secure/los_context.c",
|
"non_secure/los_context.c",
|
||||||
"non_secure/los_dispatch.S",
|
"non_secure/los_dispatch.S",
|
||||||
|
@ -40,9 +41,7 @@ static_library("arch") {
|
||||||
]
|
]
|
||||||
|
|
||||||
include_dirs = [
|
include_dirs = [
|
||||||
"./non_secure",
|
"non_secure",
|
||||||
"./secure",
|
"secure",
|
||||||
]
|
]
|
||||||
|
|
||||||
configs += [ "$LITEOSTOPDIR:los_config" ]
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,9 +27,10 @@
|
||||||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# 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 = [
|
sources = [
|
||||||
"los_context.c",
|
"los_context.c",
|
||||||
"los_dispatch.S",
|
"los_dispatch.S",
|
||||||
|
@ -38,6 +39,4 @@ static_library("arch") {
|
||||||
"los_mpu.c",
|
"los_mpu.c",
|
||||||
"los_timer.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
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# 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 = [
|
sources = [
|
||||||
"los_context.c",
|
"los_context.c",
|
||||||
"los_dispatch.S",
|
"los_dispatch.S",
|
||||||
|
@ -38,6 +39,4 @@ static_library("arch") {
|
||||||
"los_mpu.c",
|
"los_mpu.c",
|
||||||
"los_timer.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
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# 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 = [
|
sources = [
|
||||||
"los_context.c",
|
"los_context.c",
|
||||||
"los_dispatch.S",
|
"los_dispatch.S",
|
||||||
|
@ -37,6 +38,4 @@ static_library("arch") {
|
||||||
"los_interrupt.c",
|
"los_interrupt.c",
|
||||||
"los_timer.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
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# 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"
|
||||||
asmflags = board_asmflags
|
kernel_module(module_name) {
|
||||||
sources = [
|
sources = [
|
||||||
"los_context.c",
|
"los_context.c",
|
||||||
"los_dispatch.S",
|
"los_dispatch.S",
|
||||||
|
@ -40,6 +40,4 @@ static_library("arch") {
|
||||||
]
|
]
|
||||||
|
|
||||||
include_dirs = [ "asm" ]
|
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
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# 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 = [
|
sources = [
|
||||||
"los_context.c",
|
"los_context.c",
|
||||||
"los_dispatch.S",
|
"los_dispatch.S",
|
||||||
|
@ -38,6 +39,4 @@ static_library("arch") {
|
||||||
"los_timer.c",
|
"los_timer.c",
|
||||||
"los_window.S",
|
"los_window.S",
|
||||||
]
|
]
|
||||||
|
|
||||||
configs += [ "$LITEOSTOPDIR:los_config" ]
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -478,21 +478,6 @@ extern UINT8 *m_aucSysMem0;
|
||||||
#define LOSCFG_BASE_MEM_NODE_INTEGRITY_CHECK 0
|
#define LOSCFG_BASE_MEM_NODE_INTEGRITY_CHECK 0
|
||||||
#endif
|
#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
|
* @ingroup los_config
|
||||||
* The default is 4, which means that the function call stack is recorded from the kernel interface,
|
* 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
|
Exception module configuration
|
||||||
============================================================================= */
|
============================================================================= */
|
||||||
/**
|
|
||||||
* @ingroup los_config
|
|
||||||
* Configuration item for exception tailoring
|
|
||||||
*/
|
|
||||||
#ifndef LOSCFG_PLATFORM_EXC
|
|
||||||
#define LOSCFG_PLATFORM_EXC 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ingroup los_config
|
* @ingroup los_config
|
||||||
* Configuration of hardware stack protection
|
* Configuration of hardware stack protection
|
||||||
|
@ -582,27 +559,8 @@ extern UINT8 *m_aucSysMem0;
|
||||||
#endif
|
#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
|
* @ingroup los_config
|
||||||
* Configuration CMSIS_OS_VER
|
* Configuration CMSIS_OS_VER
|
||||||
|
@ -611,21 +569,6 @@ extern UINT8 *m_aucSysMem0;
|
||||||
#define CMSIS_OS_VER 2
|
#define CMSIS_OS_VER 2
|
||||||
#endif
|
#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
|
Trace module configuration
|
||||||
============================================================================= */
|
============================================================================= */
|
||||||
|
@ -633,46 +576,9 @@ extern UINT8 *m_aucSysMem0;
|
||||||
* @ingroup los_config
|
* @ingroup los_config
|
||||||
* Configuration trace tool
|
* 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)
|
#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
|
#ifndef NUM_HAL_INTERRUPT_UART
|
||||||
#define NUM_HAL_INTERRUPT_UART 0xff
|
#define NUM_HAL_INTERRUPT_UART 0xff
|
||||||
#endif
|
#endif
|
||||||
|
@ -683,41 +589,6 @@ extern UINT8 *m_aucSysMem0;
|
||||||
|
|
||||||
#endif
|
#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
|
printf configuration
|
||||||
============================================================================= */
|
============================================================================= */
|
||||||
|
@ -730,52 +601,8 @@ extern UINT8 *m_aucSysMem0;
|
||||||
#endif
|
#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
|
* @ingroup los_config
|
||||||
* Configuration item for mpu.
|
* 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"
|
#error "if hardware stack protection is enabled, then MPU should be supported and enabled"
|
||||||
#endif
|
#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
|
* @ingroup los_config
|
||||||
* Configuration item to get task used memory.
|
* Configuration item to get task used memory.
|
||||||
|
|
|
@ -202,14 +202,6 @@ LITE_OS_SEC_TEXT_INIT UINT32 LOS_KernelInit(VOID)
|
||||||
}
|
}
|
||||||
#endif
|
#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)
|
#if (LOSCFG_PLATFORM_EXC == 1)
|
||||||
OsExcMsgDumpInit();
|
OsExcMsgDumpInit();
|
||||||
#endif
|
#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
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
import("//build/lite/config/component/lite_component.gni")
|
import("//kernel/liteos_m/liteos.gni")
|
||||||
import("//kernel/liteos_m/config.gni")
|
|
||||||
|
|
||||||
declare_args() {
|
|
||||||
enable_ohos_kernel_liteos_m_test_full = false
|
|
||||||
}
|
|
||||||
|
|
||||||
config("include") {
|
config("include") {
|
||||||
defines = []
|
defines = []
|
||||||
|
@ -43,12 +38,13 @@ config("include") {
|
||||||
"//kernel/liteos_m/components/cpup",
|
"//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" ]
|
defines += [ "LOS_KERNEL_TEST_FULL=1" ]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static_library("test_init") {
|
module_switch = defined(LOSCFG_TEST)
|
||||||
|
kernel_module("test_init") {
|
||||||
sources = [
|
sources = [
|
||||||
"src/iCunit.c",
|
"src/iCunit.c",
|
||||||
"src/osTest.c",
|
"src/osTest.c",
|
||||||
|
@ -57,22 +53,23 @@ static_library("test_init") {
|
||||||
configs += [ ":include" ]
|
configs += [ ":include" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
lite_component("test") {
|
group("testsuites") {
|
||||||
features = [
|
deps = [
|
||||||
":test_init",
|
":test_init",
|
||||||
"sample/kernel/event:test_event",
|
"sample/kernel/event:test_event",
|
||||||
"sample/kernel/hwi:test_hwi",
|
"sample/kernel/hwi:test_hwi",
|
||||||
"sample/kernel/mem:test_mem",
|
"sample/kernel/mem:test_mem",
|
||||||
"sample/kernel/mux:test_mux",
|
"sample/kernel/mux:test_mux",
|
||||||
|
"sample/kernel/power:test_pm",
|
||||||
"sample/kernel/queue:test_queue",
|
"sample/kernel/queue:test_queue",
|
||||||
"sample/kernel/sem:test_sem",
|
"sample/kernel/sem:test_sem",
|
||||||
"sample/kernel/swtmr:test_swtmr",
|
"sample/kernel/swtmr:test_swtmr",
|
||||||
"sample/kernel/task:test_task",
|
"sample/kernel/task:test_task",
|
||||||
"sample/kernel/power:test_pm",
|
|
||||||
|
|
||||||
#"sample/kernel/tickless:test_tickless",
|
|
||||||
]
|
]
|
||||||
if (enable_ohos_kernel_liteos_m_dynlink) {
|
if (defined(LOSCFG_DYNLINK)) {
|
||||||
features += [ "sample/kernel/dynlink:test_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
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# 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 = [
|
sources = [
|
||||||
"los_debug.c",
|
"los_debug.c",
|
||||||
"los_error.c",
|
"los_error.c",
|
||||||
"los_hook.c",
|
"los_hook.c",
|
||||||
]
|
]
|
||||||
|
}
|
||||||
configs += [ "$LITEOSTOPDIR:los_config" ]
|
|
||||||
|
config("public") {
|
||||||
|
include_dirs = [ "." ]
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue