1021 lines
32 KiB
Python
1021 lines
32 KiB
Python
from pathlib import Path
|
||
from typing import Any
|
||
from functools import wraps
|
||
import sys, os
|
||
sys.path.append(os.path.join(os.path.dirname(__file__), '..'))
|
||
import core.logger as logger
|
||
log = logger.get_logger()
|
||
from database.base import BaseConfig, AutoInstanceDecorator
|
||
from database.options import ReleaseOptions
|
||
from database.common import *
|
||
|
||
@AutoInstanceDecorator
|
||
class DirAlias(BaseConfig):
|
||
"""给alkaid相关的目录文件其一个别名,方便其他配置进行使用。
|
||
1. 所有的路径都是相对于ReleaseOptions.AlkaidRootPath的相对路径
|
||
2. 所有的路径都是字符串
|
||
3. 所有的路径都是列表
|
||
"""
|
||
_config = {
|
||
"mi_default": [
|
||
"sdk/makefile",
|
||
"sdk/sdk.mk",
|
||
"sdk/.clang-format",
|
||
"sdk/.clang-tidy",
|
||
"sdk/interface/add-config.mk",
|
||
"sdk/interface/clear-config.mk",
|
||
"sdk/interface/compile_options.mk",
|
||
"sdk/interface/hal-impl-config.mk",
|
||
"sdk/interface/makefile",
|
||
"sdk/interface/modules.mk",
|
||
"sdk/interface/raw-impl-config.mk",
|
||
"sdk/interface/tag-maker.mk",
|
||
"sdk/interface/tidy_ignore.mk",
|
||
"sdk/interface/tidy_ruler.mk",
|
||
"sdk/interface/include_scanner.sh",
|
||
"sdk/interface/header_blacklist.txt",
|
||
"sdk/interface/src_whitelist.txt",
|
||
"sdk/interface/sdk_coding_style_sanitize.py",
|
||
"sdk/interface/.scan_header_whitelist.json",
|
||
"sdk/interface/include/common/",
|
||
"sdk/interface/include/internal/kernel/",
|
||
"sdk/interface/include/internal/rtos/",
|
||
"sdk/interface/include/internal/user/",
|
||
"sdk/interface/include/sys/",
|
||
],
|
||
"mi_ai": [
|
||
"sdk/interface/include/aio/",
|
||
"sdk/interface/include/ai/",
|
||
"sdk/interface/src/ai/",
|
||
"sdk/impl/ai/",
|
||
],
|
||
"mi_aio": [
|
||
"sdk/interface/include/aio/",
|
||
"sdk/interface/src/aio/",
|
||
"sdk/impl/aio/",
|
||
],
|
||
"mi_ao": [
|
||
"sdk/interface/include/aio/",
|
||
"sdk/interface/include/ao/",
|
||
"sdk/interface/src/ao/",
|
||
"sdk/impl/ao/",
|
||
],
|
||
"mi_alsa": [
|
||
"sdk/interface/include/alsa/",
|
||
"sdk/interface/src/alsa/",
|
||
"sdk/impl/alsa/",
|
||
],
|
||
"mi_cipher": [
|
||
"sdk/interface/include/cipher/",
|
||
"sdk/interface/src/cipher/",
|
||
"sdk/impl/cipher/",
|
||
],
|
||
"mi_common": [
|
||
"sdk/interface/src/common/",
|
||
"sdk/impl/common/",
|
||
],
|
||
"mi_cus3a": [
|
||
"sdk/interface/include/cus3a/",
|
||
"sdk/interface/src/cus3a/",
|
||
],
|
||
"mi_debug": [
|
||
"sdk/interface/include/debug/",
|
||
"sdk/interface/src/debug/",
|
||
"sdk/impl/debug/",
|
||
],
|
||
"mi_dummy": [
|
||
"sdk/interface/include/dummy/",
|
||
"sdk/interface/src/dummy/",
|
||
"sdk/impl/dummy/",
|
||
],
|
||
"mi_disp": [
|
||
"sdk/interface/include/disp/",
|
||
"sdk/interface/src/disp/",
|
||
"sdk/impl/disp/",
|
||
],
|
||
"mi_dpu": [
|
||
"sdk/interface/include/dpu/",
|
||
"sdk/interface/src/dpu/",
|
||
"sdk/impl/dpu/",
|
||
],
|
||
"mi_dsp": [
|
||
"sdk/interface/include/dsp/",
|
||
"sdk/interface/src/dsp/",
|
||
"sdk/impl/dsp/",
|
||
],
|
||
"mi_fb": [
|
||
"sdk/interface/include/fb/",
|
||
"sdk/interface/src/fb/",
|
||
"sdk/impl/fb/",
|
||
],
|
||
"mi_gfx": [
|
||
"sdk/interface/include/gfx/",
|
||
"sdk/interface/src/gfx/",
|
||
"sdk/impl/gfx/",
|
||
],
|
||
"mi_hdmi": [
|
||
"sdk/interface/include/hdmi/",
|
||
"sdk/interface/src/hdmi/",
|
||
"sdk/impl/hdmi/",
|
||
],
|
||
"mi_hdmirx": [
|
||
"sdk/interface/include/hdmirx/",
|
||
"sdk/interface/src/hdmirx/",
|
||
"sdk/impl/hdmirx/",
|
||
],
|
||
"mi_hvp": [
|
||
"sdk/interface/include/hvp/",
|
||
"sdk/interface/src/hvp/",
|
||
"sdk/impl/hvp/",
|
||
],
|
||
"mi_ipu": [
|
||
"sdk/interface/include/ipu/",
|
||
"sdk/interface/src/ipu/",
|
||
"sdk/impl/ipu/",
|
||
],
|
||
"mi_iqserver": [
|
||
"sdk/interface/include/iqserver/",
|
||
"sdk/interface/src/iqserver/",
|
||
],
|
||
"mi_isp": [
|
||
"sdk/interface/include/isp/",
|
||
"sdk/interface/src/isp/",
|
||
"sdk/impl/isp/",
|
||
],
|
||
"mi_ispalgo": [
|
||
"sdk/interface/include/ispalgo/",
|
||
"sdk/interface/src/ispalgo/",
|
||
],
|
||
"mi_ive": [
|
||
"sdk/interface/include/ive/",
|
||
"sdk/interface/src/ive/",
|
||
"sdk/impl/ive/",
|
||
],
|
||
"mi_jpd": [
|
||
"sdk/interface/include/jpd/",
|
||
"sdk/interface/src/jpd/",
|
||
"sdk/impl/jpd",
|
||
],
|
||
"mi_ldc": [
|
||
"sdk/interface/include/ldc/",
|
||
"sdk/interface/src/ldc/",
|
||
"sdk/impl/ldc/",
|
||
],
|
||
"mi_mipitx": [
|
||
"sdk/interface/include/mipitx/",
|
||
"sdk/interface/src/mipitx/",
|
||
"sdk/impl/mipitx/",
|
||
],
|
||
"mi_nir": [
|
||
"sdk/interface/include/nir/",
|
||
"sdk/interface/src/nir/",
|
||
"sdk/impl/nir/",
|
||
],
|
||
"mi_panel": [
|
||
"sdk/interface/include/panel/",
|
||
"sdk/interface/src/panel/",
|
||
"sdk/impl/panel/",
|
||
],
|
||
"mi_pcie": [
|
||
"sdk/interface/include/pcie/",
|
||
"sdk/interface/src/pcie/",
|
||
"sdk/impl/pcie/",
|
||
],
|
||
"mi_pspi": [
|
||
"sdk/interface/include/pspi/",
|
||
"sdk/interface/src/pspi/",
|
||
"sdk/impl/pspi/",
|
||
],
|
||
"mi_rgn": [
|
||
"sdk/interface/include/rgn/",
|
||
"sdk/interface/src/rgn/",
|
||
"sdk/impl/rgn/",
|
||
],
|
||
"mi_scl": [
|
||
"sdk/interface/include/scl/",
|
||
"sdk/interface/src/scl/",
|
||
"sdk/impl/scl/",
|
||
],
|
||
"mi_sed": [
|
||
"sdk/interface/include/sed/",
|
||
"sdk/interface/include/vg/",
|
||
"sdk/interface/src/sed/",
|
||
],
|
||
"mi_sensor": [
|
||
"sdk/interface/include/sensor/",
|
||
"sdk/interface/src/sensor/",
|
||
"sdk/impl/sensor/",
|
||
],
|
||
"mi_shadow": [
|
||
"sdk/interface/include/shadow/",
|
||
"sdk/interface/src/shadow/",
|
||
"sdk/impl/shadow/",
|
||
],
|
||
"mi_sys": [
|
||
"sdk/interface/include/sys/",
|
||
"sdk/interface/src/sys/",
|
||
"sdk/impl/sys/",
|
||
],
|
||
"mi_sys_earlyinit": [
|
||
"sdk/interface/include/sys_earlyinit/",
|
||
"sdk/interface/src/sys_earlyinit/",
|
||
"sdk/impl/sys_earlyinit/",
|
||
],
|
||
"mi_vdec": [
|
||
"sdk/interface/include/vdec/",
|
||
"sdk/interface/src/vdec/",
|
||
"sdk/impl/vdec/",
|
||
],
|
||
"mi_vdf": [
|
||
"sdk/interface/include/md/",
|
||
"sdk/interface/include/od/",
|
||
"sdk/interface/include/vg/",
|
||
"sdk/interface/include/vdf/",
|
||
"sdk/interface/src/vdf/",
|
||
],
|
||
"mi_vcodec": [
|
||
"sdk/interface/src/vcodec/",
|
||
"sdk/interface/src/vcodec/config.mk",
|
||
],
|
||
"mi_vdisp": [
|
||
"sdk/interface/include/vdisp/",
|
||
"sdk/interface/src/vdisp/",
|
||
"sdk/impl/vdisp/",
|
||
],
|
||
"mi_venc": [
|
||
"sdk/interface/include/venc/",
|
||
"sdk/interface/src/venc/",
|
||
"sdk/impl/venc/",
|
||
],
|
||
"mi_vif": [
|
||
"sdk/interface/include/vif/",
|
||
"sdk/interface/src/vif/",
|
||
"sdk/impl/vif/",
|
||
],
|
||
"mi_wlan": [
|
||
"sdk/interface/include/wlan/",
|
||
"sdk/interface/src/wlan/",
|
||
],
|
||
"bench": [
|
||
"rtos/proj/sc/application/bench"
|
||
],
|
||
"bootloader": [
|
||
"rtos/proj/sc/application/bootloader"
|
||
],
|
||
"coremark": [
|
||
"rtos/proj/sc/application/coremark"
|
||
],
|
||
"common": [
|
||
"rtos/proj/sc/application/pipeline_demo/common"
|
||
],
|
||
"font": [
|
||
"rtos/proj/sc/application/pipeline_demo/font"
|
||
],
|
||
"iqserver": [
|
||
"rtos/proj/sc/application/pipeline_demo/iqserver"
|
||
],
|
||
"audio_app": [
|
||
"rtos/proj/sc/application/pipeline_demo/audio_app"
|
||
],
|
||
"disp_app": [
|
||
"rtos/proj/sc/application/pipeline_demo/disp_app"
|
||
],
|
||
"dualos_camera": [
|
||
"rtos/proj/sc/application/pipeline_demo/dualos_camera"
|
||
],
|
||
"dualos_pipeline": [
|
||
"rtos/proj/sc/application/pipeline_demo/dualos_pipeline"
|
||
],
|
||
"application_selector": [
|
||
"rtos/proj/sc/application/pipeline_demo/application_selector"
|
||
],
|
||
"ptree": [
|
||
"sdk/verify/ptree"
|
||
],
|
||
"rtos_bsp_demo": [
|
||
"sdk/verify/bsp_demo/rtos_bsp_demo"
|
||
],
|
||
"preload_rtos": [
|
||
r"sdk/verify/sample_code/source/{SWBoardAlias}/preload/rtos"
|
||
],
|
||
"preload_sample": [
|
||
r"sdk/verify/sample_code/source/{SWBoardAlias}/preload_sample/rtos"
|
||
],
|
||
"aov_preload": [
|
||
r"sdk/verify/sample_code/source/{SWBoardAlias}/aov/preload/rtos/aov_preload"
|
||
],
|
||
"cm4_preload": [
|
||
r"sdk/verify/sample_code/source/{SWBoardAlias}/cm4/preload/rtos/cm4_preload"
|
||
],
|
||
"sample_code": [
|
||
"sdk/verify/sample_code/build"
|
||
],
|
||
"sensordriver": [
|
||
"sdk/driver/SensorDriver"
|
||
],
|
||
"lvgl": [
|
||
"rtos/proj/sc/application/pipeline_demo/lvgl"
|
||
],
|
||
"usb_gadget_app": [
|
||
"rtos/proj/sc/application/pipeline_demo/usb_gadget_app"
|
||
],
|
||
"usb_gadget_app_uvc": [
|
||
"rtos/proj/sc/application/pipeline_demo/usb_gadget_app"
|
||
],
|
||
"cust_isp": [
|
||
"rtos/proj/sc/customer/cust_isp"
|
||
],
|
||
"cust_usb_gadget": [
|
||
"rtos/proj/sc/customer/usb_gadget"
|
||
],
|
||
"adc": [
|
||
"rtos/proj/sc/driver/sysdriver_common/adc"
|
||
],
|
||
"aesdma": [
|
||
"rtos/proj/sc/driver/sysdriver/aesdma"
|
||
],
|
||
"bdma": [
|
||
"rtos/proj/sc/driver/sysdriver/bdma",
|
||
"rtos/proj/sc/driver/sysdriver_common/bdma"
|
||
],
|
||
"capture": [
|
||
"rtos/proj/sc/driver/sysdriver_common/capture"
|
||
],
|
||
"crypto": [
|
||
"rtos/proj/sc/driver/sysdriver_common/crypto"
|
||
],
|
||
"camclk": [
|
||
"rtos/proj/sc/driver/sysdriver/camclk",
|
||
"rtos/proj/sc/driver/sysdriver_common/clk"
|
||
],
|
||
"cpufreq": [
|
||
"rtos/proj/sc/driver/sysdriver/cpufreq"
|
||
],
|
||
"drvutil": [
|
||
"rtos/proj/sc/driver/sysdriver/drvutil"
|
||
],
|
||
"dualos": [
|
||
"rtos/proj/sc/driver/sysdriver/dualos",
|
||
"rtos/proj/sc_priv/driver/sysdriver/dualos"
|
||
],
|
||
"earlyinit_setting": [
|
||
"rtos/proj/sc/customer/earlyinit_setting"
|
||
],
|
||
"earlyinit_main": [
|
||
"rtos/proj/sc/driver/sysdriver/earlyinit_main"
|
||
],
|
||
"earlyinit_impl": [
|
||
"rtos/proj/sc/driver/sysdriver/earlyinit_impl",
|
||
"rtos/proj/sc/driver/sysdriver/sensor_init/impl"
|
||
],
|
||
"earlyinit_rtos_api": [
|
||
"rtos/proj/sc/driver/sysdriver/earlyinit_rtos_api",
|
||
"rtos/proj/sc/driver/sysdriver/sensor_init/rtos_api"
|
||
],
|
||
"earlyinit_vsrc": [
|
||
"rtos/proj/sc/driver/sysdriver/sensor_init/vsrc"
|
||
],
|
||
"ipl_early_fw": [
|
||
"rtos/proj/sc/driver/sysdriver/ipl_early_fw"
|
||
],
|
||
"emac": [
|
||
"rtos/proj/sc/driver/sysdriver/emac"
|
||
],
|
||
"fcie": [
|
||
"rtos/proj/sc/driver/sysdriver/fcie",
|
||
"rtos/proj/sc/driver/sysdriver_common/fcie"
|
||
],
|
||
"flash": [
|
||
"rtos/proj/sc/driver/sysdriver/flash",
|
||
"rtos/proj/sc/driver/sysdriver_common/flash"
|
||
],
|
||
"fsp_qspi": [
|
||
"rtos/proj/sc/driver/sysdriver/fsp_qspi",
|
||
"rtos/proj/sc/driver/sysdriver_common/fsp_qspi"
|
||
],
|
||
"gpio": [
|
||
"rtos/proj/sc/driver/sysdriver/gpio",
|
||
"rtos/proj/sc/driver/sysdriver_common/gpio"
|
||
],
|
||
"i2c": [
|
||
"rtos/proj/sc/driver/sysdriver/i2c",
|
||
"rtos/proj/sc/driver/sysdriver_common/i2c"
|
||
],
|
||
"input": [
|
||
"rtos/proj/sc/driver/sysdriver/input"
|
||
],
|
||
"int": [
|
||
"rtos/proj/sc/driver/sysdriver/int"
|
||
],
|
||
"ir": [
|
||
"rtos/proj/sc/driver/sysdriver/ir",
|
||
"rtos/proj/sc/driver/sysdriver_common/ir"
|
||
],
|
||
"ive": [
|
||
"rtos/proj/sc/driver/sysdriver/ive",
|
||
"rtos/proj/sc_priv/driver/sysdriver/ive"
|
||
],
|
||
"kernel": [
|
||
"rtos/proj/sc/driver/sysdriver/kernel"
|
||
],
|
||
"loadns": [
|
||
"rtos/proj/sc/driver/sysdriver/loadns"
|
||
],
|
||
"mbx": [
|
||
"rtos/proj/sc/driver/sysdriver/mbx"
|
||
],
|
||
"miu": [
|
||
"rtos/proj/sc/driver/sysdriver/miu",
|
||
"rtos/proj/sc/driver/sysdriver_common/miu",
|
||
"rtos/proj/sc/driver/sysdriver_common/miu_dq"
|
||
],
|
||
"mmupte": [
|
||
"rtos/proj/sc/driver/sysdriver/mmupte"
|
||
],
|
||
"mspi": [
|
||
"rtos/proj/sc/driver/sysdriver/mspi",
|
||
"rtos/proj/sc/driver/sysdriver_common/mspi"
|
||
],
|
||
"riu": [
|
||
"rtos/proj/sc/driver/sysdriver/riu"
|
||
],
|
||
"msys": [
|
||
"rtos/proj/sc/driver/sysdriver/msys"
|
||
],
|
||
"otp": [
|
||
"rtos/proj/sc/driver/sysdriver/otp",
|
||
"rtos/proj/sc_priv/driver/sysdriver/otp"
|
||
],
|
||
"padmux": [
|
||
"rtos/proj/sc/driver/sysdriver/padmux",
|
||
"rtos/proj/sc/driver/sysdriver_common/padmux"
|
||
],
|
||
"pcie": [
|
||
"rtos/proj/sc/driver/sysdriver/pcie"
|
||
],
|
||
"pl011": [
|
||
"rtos/proj/sc/driver/sysdriver/pl011"
|
||
],
|
||
"power_manag": [
|
||
"rtos/proj/sc/driver/sysdriver/power_manag",
|
||
"rtos/proj/sc_priv/driver/sysdriver/power_manag"
|
||
],
|
||
"pwm": [
|
||
"rtos/proj/sc/driver/sysdriver/pwm",
|
||
"rtos/proj/sc/driver/sysdriver_common/pwm"
|
||
],
|
||
"rpmsg_lite": [
|
||
"rtos/proj/sc/driver/sysdriver/rpmsg-lite",
|
||
"rtos/proj/sc_priv/driver/sysdriver/rpmsg-lite"
|
||
],
|
||
"rtc": [
|
||
"rtos/proj/sc/driver/sysdriver/rtc"
|
||
],
|
||
"rtcpwc": [
|
||
"rtos/proj/sc/driver/sysdriver/rtcpwc",
|
||
"rtos/proj/sc/driver/sysdriver_common/rtcpwc"
|
||
],
|
||
"saradc": [
|
||
"rtos/proj/sc/driver/sysdriver/saradc"
|
||
],
|
||
"sdmmc": [
|
||
"rtos/proj/sc/driver/sysdriver/sdmmc",
|
||
"rtos/proj/sc/driver/sysdriver_common/sdmmc"
|
||
],
|
||
"str": [
|
||
"rtos/proj/sc/driver/sysdriver/str"
|
||
],
|
||
"sysdesc": [
|
||
"rtos/proj/sc/driver/sysdriver/sysdesc",
|
||
"rtos/proj/sc/driver/sysdriver_common/include"
|
||
],
|
||
"timer": [
|
||
"rtos/proj/sc/driver/sysdriver/timer",
|
||
"rtos/proj/sc/driver/sysdriver_common/timer"
|
||
],
|
||
"tsensor": [
|
||
"rtos/proj/sc/driver/sysdriver/tsensor",
|
||
"rtos/proj/sc/driver/sysdriver_common/tsensor"
|
||
],
|
||
"uart": [
|
||
"rtos/proj/sc/driver/sysdriver/uart"
|
||
],
|
||
"usb_gadget_udc_usb20": [
|
||
"rtos/proj/sc/driver/sysdriver/usb_gadget/udc/usb20",
|
||
"rtos/proj/sc_priv/driver/sysdriver/usb_gadget/udc/usb20"
|
||
],
|
||
"usb_gadget_udc_usb30": [
|
||
"rtos/proj/sc/driver/sysdriver/usb_gadget/udc/usb30",
|
||
"rtos/proj/sc_priv/driver/sysdriver/usb_gadget/udc/usb30"
|
||
],
|
||
"usbphy_drv": [
|
||
"rtos/proj/sc/driver/sysdriver/usb_gadget/udc/usbphy",
|
||
"rtos/proj/sc_priv/driver/sysdriver/usb_gadget/udc/usbphy"
|
||
],
|
||
"usbhost": [
|
||
"rtos/proj/sc/driver/sysdriver/usbhost",
|
||
"rtos/proj/sc_priv/driver/sysdriver/usbhost"
|
||
],
|
||
"voltage": [
|
||
"rtos/proj/sc/driver/sysdriver/voltage",
|
||
"rtos/proj/sc/driver/sysdriver_common/voltage"
|
||
],
|
||
"watchdog": [
|
||
"rtos/proj/sc/driver/sysdriver/watchdog",
|
||
"rtos/proj/sc/driver/sysdriver_common/watchdog"
|
||
],
|
||
"wifi_ssw6x5x": [
|
||
"rtos/proj/sc/driver/thirdparty/wifi/ssw6x5x"
|
||
],
|
||
"algo": [
|
||
"rtos/proj/sc/middleware/algo"
|
||
],
|
||
"decompress": [
|
||
"rtos/proj/sc/middleware/decompress"
|
||
],
|
||
"firmwarefs": [
|
||
"rtos/proj/sc/middleware/fs/firmwarefs",
|
||
"rtos/proj/sc_priv/middleware/fs/firmwarefs"
|
||
],
|
||
"freertos_plus_fat": [
|
||
"rtos/proj/sc/middleware/fs/Lab-Project-FreeRTOS-FAT"
|
||
],
|
||
"littlefs": [
|
||
"rtos/proj/sc/middleware/fs/littlefs",
|
||
"rtos/proj/sc_priv/middleware/fs/littlefs"
|
||
],
|
||
"lwfs": [
|
||
"rtos/proj/sc/middleware/fs/lwfs"
|
||
],
|
||
"nfs": [
|
||
"rtos/proj/sc/middleware/fs/nfs",
|
||
"rtos/proj/sc_priv/middleware/fs/nfs"
|
||
],
|
||
"proxyfs": [
|
||
"rtos/proj/sc/middleware/fs/proxyfs"
|
||
],
|
||
"tcpip": [
|
||
"rtos/proj/sc/middleware/tcpip"
|
||
],
|
||
"arm": [
|
||
"rtos/proj/sc/system/arch"
|
||
],
|
||
"riscv": [
|
||
"rtos/proj/sc/system/riscv"
|
||
],
|
||
"cam_dev_wrapper": [
|
||
"rtos/proj/sc/system/cam_dev_wrapper",
|
||
"rtos/proj/sc/driver/sysdriver_common/cam_dev_wrapper"
|
||
],
|
||
"cam_drv_poll": [
|
||
"rtos/proj/sc/system/cam_drv_poll",
|
||
"rtos/proj/sc/driver/sysdriver_common/cam_drv_poll"
|
||
],
|
||
"cam_fs_wrapper": [
|
||
"rtos/proj/sc/system/cam_fs_wrapper",
|
||
"rtos/proj/sc/driver/sysdriver_common/cam_fs_wrapper"
|
||
],
|
||
"cam_os_wrapper": [
|
||
"rtos/proj/sc/system/cam_os_wrapper",
|
||
"rtos/proj/sc/driver/sysdriver_common/cam_os_wrapper"
|
||
],
|
||
"cam_proc_wrapper": [
|
||
"rtos/proj/sc/system/cam_proc_wrapper",
|
||
"rtos/proj/sc/driver/sysdriver_common/cam_proc_wrapper"
|
||
],
|
||
"env_util": [
|
||
"rtos/proj/sc/system/env_util"
|
||
],
|
||
"initcall": [
|
||
"rtos/proj/sc/system/initcall"
|
||
],
|
||
"libc": [
|
||
"rtos/proj/sc/system/libc"
|
||
],
|
||
"libstdcpp_plugin": [
|
||
"rtos/proj/sc/system/libstdcpp_plugin",
|
||
"rtos/proj/sc_priv/system/libstdcpp_plugin"
|
||
],
|
||
"newlib_stub": [
|
||
"rtos/proj/sc/system/newlib_stub"
|
||
],
|
||
"loadable_module": [
|
||
"rtos/proj/sc/system/loadable_module"
|
||
],
|
||
"memmang": [
|
||
"rtos/proj/sc/system/memmang"
|
||
],
|
||
"memmap": [
|
||
"rtos/proj/sc/system/memmap"
|
||
],
|
||
"mempool": [
|
||
"rtos/proj/sc/system/mempool"
|
||
],
|
||
"MsWrapper": [
|
||
"rtos/proj/sc/system/MsWrapper"
|
||
],
|
||
"newlib_stub": [
|
||
"rtos/proj/sc/system/newlib_stub"
|
||
],
|
||
"freertos": [
|
||
"rtos/proj/sc/system/rtos/freertos",
|
||
"rtos/proj/sc_priv/system/rtos/freertos"
|
||
],
|
||
"freertos_main": [
|
||
"rtos/proj/sc/system/rtos/freertos_main"
|
||
],
|
||
"freertos_posix": [
|
||
"rtos/proj/sc/system/rtos/freertos_posix"
|
||
],
|
||
"sys_I_SW": [
|
||
"rtos/proj/sc/system/sys"
|
||
],
|
||
"context_switch": [
|
||
"rtos/proj/sc_priv/arch/arm/cortex-a/v7_aarch32/context_switch"
|
||
],
|
||
"lh_monitor": [
|
||
"rtos/proj/sc_priv/arch/arm/cortex-a/v7_aarch32/lh_monitor"
|
||
],
|
||
"pm_bench": [
|
||
"pm_rtos/proj/sc/bench"
|
||
],
|
||
"pm_bootloader": [
|
||
"pm_rtos/proj/sc/application/bootloader"
|
||
],
|
||
"pm_coremark": [
|
||
"pm_rtos/proj/sc/application/coremark"
|
||
],
|
||
"pm_common": [
|
||
"pm_rtos/proj/sc/application/common"
|
||
],
|
||
"pm_dhrystone": [
|
||
"pm_rtos/proj/sc/application/dhrystone"
|
||
],
|
||
"pm_dualos_pipeline": [
|
||
"pm_rtos/proj/sc/application/dualos_pipeline"
|
||
],
|
||
"pm_dualos_camera": [
|
||
"pm_rtos/proj/sc/application/dualos_camera"
|
||
],
|
||
"pm_usb_gadget_app": [
|
||
"pm_rtos/proj/sc/application/usb_gadget_app"
|
||
],
|
||
"pm_algo_test_app": [
|
||
"pm_rtos/proj/sc/application/algo_test_app"
|
||
],
|
||
"pm_slnn_raw_hpd": [
|
||
"pm_rtos/proj/sc/application/slnn_raw_hpd"
|
||
],
|
||
"pm_slnn_sypd": [
|
||
"pm_rtos/proj/sc/application/slnn_sypd"
|
||
],
|
||
"pm_slnn_syfd": [
|
||
"pm_rtos/proj/sc/application/slnn_syfd"
|
||
],
|
||
"pm_cm4_pipeline": [
|
||
"pm_rtos/proj/sc/application/cm4_pipeline"
|
||
],
|
||
"pm_audio_aed": [
|
||
"pm_rtos/proj/sc/application/audio_aed"
|
||
],
|
||
"pm_audio_wos": [
|
||
"pm_rtos/proj/sc/application/audio_wos"
|
||
],
|
||
"pm_cust_isp": [
|
||
"pm_rtos/proj/sc/customer/cust_isp"
|
||
],
|
||
"pm_cust_usb_gadget": [
|
||
"pm_rtos/proj/sc/customer/usb_gadget"
|
||
],
|
||
"pm_aesdma": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/aesdma"
|
||
],
|
||
"pm_bdma": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/bdma"
|
||
],
|
||
"pm_camclk": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/camclk"
|
||
],
|
||
"pm_cpufreq": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/cpufreq"
|
||
],
|
||
"pm_drvutil": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/drvutil"
|
||
],
|
||
"pm_dualos": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/dualos"
|
||
],
|
||
"pm_loadns": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/loadns"
|
||
],
|
||
"pm_emac": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/emac"
|
||
],
|
||
"pm_flash": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/flash"
|
||
],
|
||
"pm_fsp_qspi": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/fsp_qspi"
|
||
],
|
||
"pm_gpio": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/gpio"
|
||
],
|
||
"pm_i2c": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/i2c"
|
||
],
|
||
"pm_int": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/int"
|
||
],
|
||
"pm_ir": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/ir"
|
||
],
|
||
"pm_ive": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/ive"
|
||
],
|
||
"pm_kernel": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/kernel"
|
||
],
|
||
"pm_miu": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/miu"
|
||
],
|
||
"pm_mmupte": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/mmupte"
|
||
],
|
||
"pm_mspi": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/mspi"
|
||
],
|
||
"pm_msys": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/msys"
|
||
],
|
||
"pm_padmux": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/padmux"
|
||
],
|
||
"pm_pcie": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/pcie"
|
||
],
|
||
"pm_pl011": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/pl011"
|
||
],
|
||
"pm_mhal_pm_clk": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/pm_clk"
|
||
],
|
||
"pm_pm_idle": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/pm_idle"
|
||
],
|
||
"pm_mhal_pm_mbx": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/pm_mbx"
|
||
],
|
||
"pm_pm_power": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/pm_power"
|
||
],
|
||
"pm_pm_rtcpwc": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/pm_rtcpwc"
|
||
],
|
||
"pm_mhal_pm_sys": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/pm_sys"
|
||
],
|
||
"pm_mhal_pm_wdt": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/pm_wdt"
|
||
],
|
||
"pm_power_manag": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/power_manag"
|
||
],
|
||
"pm_pspi": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/pspi"
|
||
],
|
||
"pm_pwm": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/pwm"
|
||
],
|
||
"pm_rpmsg_lite": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/rpmsg-lite"
|
||
],
|
||
"pm_rtc": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/rtc"
|
||
],
|
||
"pm_rtcpwc": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/rtcpwc"
|
||
],
|
||
"pm_saradc": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/saradc"
|
||
],
|
||
"pm_sdmmc": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/sdmmc"
|
||
],
|
||
"pm_sysdesc": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/sysdesc"
|
||
],
|
||
"pm_timer": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/timer"
|
||
],
|
||
"pm_tsensor": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/tsensor"
|
||
],
|
||
"pm_uart": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/uart"
|
||
],
|
||
"pm_usb_gadget_udc_usb20": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/usb_gadget/udc/usb20"
|
||
],
|
||
"pm_usb_gadget_udc_usb30": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/usb_gadget/udc/usb30"
|
||
],
|
||
"pm_usbphy_drv": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/usb_gadget/udc/usbphy"
|
||
],
|
||
"pm_usbhost": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/usbhost"
|
||
],
|
||
"pm_voltage": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/voltage"
|
||
],
|
||
"pm_watchdog": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/watchdog"
|
||
],
|
||
"pm_decompress": [
|
||
"pm_rtos/proj/sc/middleware/decompress"
|
||
],
|
||
"pm_firmwarefs": [
|
||
"pm_rtos/proj/sc/middleware/fs/firmwarefs"
|
||
],
|
||
"pm_freertos_plus_fat": [
|
||
"pm_rtos/proj/sc/middleware/fs/Lab-Project-FreeRTOS-FAT"
|
||
],
|
||
"pm_littlefs": [
|
||
"pm_rtos/proj/sc/middleware/fs/littlefs"
|
||
],
|
||
"pm_lwfs": [
|
||
"pm_rtos/proj/sc/middleware/fs/lwfs"
|
||
],
|
||
"pm_proxyfs": [
|
||
"pm_rtos/proj/sc/middleware/fs/proxyfs"
|
||
],
|
||
"pm_tcpip": [
|
||
"pm_rtos/proj/sc/middleware/tcpip"
|
||
],
|
||
"pm_arm": [
|
||
"pm_rtos/proj/sc/system/arch"
|
||
],
|
||
"pm_riscv": [
|
||
"pm_rtos/proj/sc/system/riscv"
|
||
],
|
||
"pm_cam_dev_wrapper": [
|
||
"pm_rtos/proj/sc/system/cam_dev_wrapper"
|
||
],
|
||
"pm_cam_drv_poll": [
|
||
"pm_rtos/proj/sc/system/cam_drv_poll"
|
||
],
|
||
"pm_cam_fs_wrapper": [
|
||
"pm_rtos/proj/sc/system/cam_fs_wrapper"
|
||
],
|
||
"pm_cam_os_wrapper": [
|
||
"pm_rtos/proj/sc/system/cam_os_wrapper"
|
||
],
|
||
"pm_cam_proc_wrapper": [
|
||
"pm_rtos/proj/sc/system/cam_proc_wrapper"
|
||
],
|
||
"pm_env_util": [
|
||
"pm_rtos/proj/sc/system/env_util"
|
||
],
|
||
"pm_initcall": [
|
||
"pm_rtos/proj/sc/system/initcall"
|
||
],
|
||
"pm_libc": [
|
||
"pm_rtos/proj/sc/system/libc"
|
||
],
|
||
"pm_memmang": [
|
||
"pm_rtos/proj/sc/system/memmang"
|
||
],
|
||
"pm_memmap": [
|
||
"pm_rtos/proj/sc/system/memmap"
|
||
],
|
||
"pm_mempool": [
|
||
"pm_rtos/proj/sc/system/mempool"
|
||
],
|
||
"pm_MsWrapper": [
|
||
"pm_rtos/proj/sc/system/MsWrapper"
|
||
],
|
||
"pm_freertos": [
|
||
"pm_rtos/proj/sc/system/rtos/freertos"
|
||
],
|
||
"pm_freertos_posix": [
|
||
"pm_rtos/proj/sc/system/rtos/freertos_posix"
|
||
],
|
||
"pm_sys_I_SW": [
|
||
"pm_rtos/proj/sc/system/sys"
|
||
],
|
||
"pm_mhal_pm_default": [
|
||
"pm_rtos/proj/sc/driver/camdriver/common"
|
||
],
|
||
"pm_mhal_imi_heap": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/imi_heap"
|
||
],
|
||
"pm_mhal_pm_aio": [
|
||
"pm_rtos/proj/sc/driver/camdriver/pm_aio"
|
||
],
|
||
"pm_mhal_pm_idle": [
|
||
"pm_rtos/proj/sc/driver/camdriver/pm_idle"
|
||
],
|
||
"pm_mhal_pm_isp": [
|
||
"pm_rtos/proj/sc/driver/camdriver/pm_isp"
|
||
],
|
||
"pm_mhal_pm_ispalgo": [
|
||
"pm_rtos/proj/sc/driver/camdriver/pm_ispalgo"
|
||
],
|
||
"pm_mhal_pm_jpe": [
|
||
"pm_rtos/proj/sc/driver/camdriver/pm_jpe"
|
||
],
|
||
"pm_mhal_pm_md": [
|
||
"pm_rtos/proj/sc/driver/camdriver/pm_md"
|
||
],
|
||
"pm_mhal_pm_pir": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/pm_pir"
|
||
],
|
||
"pm_mhal_pm_radar": [
|
||
"pm_rtos/proj/sc/driver/camdriver/pm_radar"
|
||
],
|
||
"pm_mhal_pm_radar_algo": [
|
||
"pm_rtos/proj/sc/driver/camdriver/pm_radar_algo"
|
||
],
|
||
"pm_mhal_pm_usb_gadget_udc_usb30": [
|
||
"pm_rtos/proj/sc/driver/sysdriver/usb_gadget/udc/usb30"
|
||
],
|
||
"pm_mhal_pm_usbpoc": [
|
||
"pm_rtos/proj/sc/driver/camdriver/pm_usbpoc"
|
||
],
|
||
"pm_mhal_pm_vif": [
|
||
"pm_rtos/proj/sc/driver/camdriver/pm_vif"
|
||
]
|
||
}
|
||
|
||
def check(self) -> bool:
|
||
for key, value in self.items():
|
||
if not isinstance(value, list):
|
||
raise ValueError(f"Invalid value type for {key}: {type(value)}")
|
||
for item in value:
|
||
if not isinstance(item, str):
|
||
raise ValueError(f"Invalid item type for {key}: {type(item)}")
|
||
# 格式化路径 将一些动态路径在运行时确定下来
|
||
file = self._path_format(item)
|
||
if not check_file_exists(file):
|
||
log.warning(f"{self.__class__.__name__} config [{file}] not exists")
|
||
self[key] = file # 将格式化后的路径更新到_dict中
|
||
return True
|
||
|
||
def _path_format(self, item: str) -> str:
|
||
return str_format(Path(ReleaseOptions.AlkaidRootPath) / item)
|
||
|
||
|
||
def str_format(item: Any) -> str:
|
||
"""格式化字符串,将字符串中的{key}替换为ReleaseOptions._dict[key]
|
||
我们目的是将一些会跟随实际chip分支会变化的文件路径在运行时才确定下来
|
||
## 例如:
|
||
```python
|
||
item = "sdk/verify/sample_code/source/{SWBoardAlias}/preload/rtos"
|
||
item = str_format(item)
|
||
print(item)
|
||
```
|
||
## 输出:
|
||
sdk/verify/sample_code/source/iford/preload/rtos
|
||
|
||
Args:
|
||
item (str): 需要格式化的字符串
|
||
|
||
Returns:
|
||
str: 格式化后的字符串
|
||
"""
|
||
item = str(item)
|
||
if '{' in item:
|
||
# log.info(f"format item: {item}")
|
||
item = item.format(**ReleaseOptions._dict) # 使用keyargs的方式格式化字符串
|
||
# log.info(f"formated item: {item} use {ReleaseOptions._dict}")
|
||
return item
|
||
|
||
def CheckDirAliasDecorator(cls):
|
||
"""配置检查装饰器:检查配置类中的所有项是否在 DirAlias 中存在, 如果是一个路径则检查其是否存在
|
||
例如:
|
||
```python
|
||
@CheckDirAliasDecorator
|
||
class Test(BaseConfig):
|
||
_config = ["mi_sys", "mi_isp", "sdk/verify/sample_code/source/{SWBoardAlias}/preload/rtos"]
|
||
```
|
||
那么会检查mi_sys和mi_isp是否在DirAlias中存在,如果存在则返回True,否则返回False
|
||
同时会检查sdk/verify/sample_code/source/{SWBoardAlias}/preload/rtos是否存在
|
||
Args:
|
||
cls: 被装饰的类
|
||
Returns:
|
||
cls: 装饰后的类
|
||
"""
|
||
original_check = cls.check
|
||
@wraps(original_check)
|
||
def wrapped_check(self) -> bool:
|
||
for item in self:
|
||
# 如果不是一个路径那么判断其是否在DirAlias中存在
|
||
if '/' not in item and not DirAlias[item]:
|
||
raise ValueError(f"{item} not found in DirAlias")
|
||
# 如果是路径那么判断其是否存在
|
||
if '/' in item:
|
||
if not check_file_exists(item):
|
||
log.warning(f"{self.__class__.__name__} config [{item}] not exists")
|
||
return True
|
||
cls.check = wrapped_check
|
||
return cls |