一个小脚本----各种编译命令合入到同一个脚本

本文介绍了一个用于快速编译特定模块并复制输出文件到指定目录的bash脚本。该脚本支持多种编译选项,包括相机模块、调制解调器更新、重新编译等,并提供了帮助信息。

快速编译命令脚本

#/bin/bash

PROJECT=${1}
OPTION="${2}"
DIR="${3}"
if [ -d ${DIR} ];then
        rm -rf ${DIR}
        mkdir -p ${DIR}
    else
        mkdir -p ${DIR}    
fi


help_info() {
        echo
        echo "#################################################################################" 
        echo "#   Usage:                                                                       #"
        echo "#   ./fast_compiler.sh project_name option target_dir                                   #"
        echo "#   Example:                                                                     #"
        echo "#   ./fast_compiler.sh 项目名 camera camera_so                                           #"
        echo "#   If not exist directory camera_so, it will be created in current directory.   #"
        echo "#################################################################################"
        echo
}

if [  $# -lt 1 ];then
        help_info
        exit
elif [ "-h" = $1 ] || [ "help" = $1 ] || [ "-help" = $1 ];then
        help_info
        exit
fi


if [    $2 = "camera"   ];then
echo "fast compiler module:camera"
./mk mm mediatek/platform/mt6582/hardware/mtkcam/
cp out/target/product/${PROJECT}/system/lib/libcameracustom.so ./${DIR}/ -v
cp out/target/product/${PROJECT}/system/lib/libcam.utils.so ./${DIR}/ -v
cp out/target/product/${PROJECT}/system/lib/hw/camera.default.so ./${DIR}/ -v


elif [    $2 = "update_modem"   ];then
echo "fast compiler module:modem"
./mk ${PROJECT} update-modem
cp out/target/product/${PROJECT}/{*.txt,*.bin,*.img,DSP*,EBR2,EBR2,MBR} ./${DIR}/ -v
cp out/target/product/${PROJECT}/obj/CODEGEN/cgen/APDB_* ./${DIR}/ -v
cp out/target/product/${PROJECT}/system/etc/mddb/BPLG* ./${DIR}/ -v
 
elif [    $2 = "remake"   ];then
echo "fast compiler module:remake"

./mk ${PROJECT} remake
# Copy bin(s) for download
cp out/target/product/${PROJECT}/{*.txt,*.bin,*.img,DSP*,EBR1,EBR2,MBR} ./${DIR}/ -v

# Copy AP Database
#MTK_CGEN_AP_Editor_DB := $(MTK_CGEN_OUT_DIR)/APDB_$(MTK_PLATFORM)_$(MTK_CHIP_VER)_$(MTK_BRANCH)_$(MTK_WEEK_NO)
cp out/target/product/${PROJECT}/obj/CODEGEN/cgen/APDB_* ./${DIR}/ -v

# Copy Modem Database
cp out/target/product/${PROJECT}/system/etc/mddb/BPLG* ./${DIR}/ -v

elif [    $2 = "new"   ];then
echo "fast compiler module:new"

./mk ${PROJECT} new
# Copy bin(s) for download
cp out/target/product/${PROJECT}/{*.txt,*.bin,*.img,DSP*,EBR1,EBR2,MBR} ./${DIR}/ -v

# Copy AP Database
#MTK_CGEN_AP_Editor_DB := $(MTK_CGEN_OUT_DIR)/APDB_$(MTK_PLATFORM)_$(MTK_CHIP_VER)_$(MTK_BRANCH)_$(MTK_WEEK_NO)
cp out/target/product/${PROJECT}/obj/CODEGEN/cgen/APDB_* ./${DIR}/ -v

# Copy Modem Database
cp out/target/product/${PROJECT}/system/etc/mddb/BPLG* ./${DIR}/ -v


elif [    $2 = "lk"   ];then
echo "fast compiler module:lk"

./mk ${PROJECT} remake lk
cp out/target/product/${PROJECT}/lk.bin ./${DIR}/ -v

elif [    $2 = "kernel"   ];then
echo "fast compiler module:kernel"

./mk ${PROJECT} remake kernel
./mk bootimage
cp out/target/product/${PROJECT}/boot.img ./${DIR}/ -v

elif [    $2 = "pl"   ];then
echo "fast compiler module:pl"

./mk ${PROJECT} remake preloader
cp out/target/product/${PROJECT}/preloader*.bin ./${DIR}/ -v

elif [    $2 = "system"   ];then
echo "fast compiler module:system"

./mk ${PROJECT} remake dr
cp out/target/product/${PROJECT}/system.img ./${DIR}/ -v


else
echo "error"
fi



### Xilinx JTAG-AXI IP TCL 脚本中引用或导文件的方法 在Xilinx Vivado环境中,TCL脚本是自动化设计流程的重要工具。为了在TCL脚本中引用或导文件,可以使用以下方法: #### 1. 使用 `source` 命令加载外部TCL脚本 `source` 命令用于加载并执行另一个TCL脚本文件。此命令适用于需要将复杂的操作分解为多个脚本文件时。例如: ```tcl source path/to/your_script.tcl ``` 通过这种方式,可以将一个包含配置或功能的TCL脚本加载到当前脚本中[^1]。 #### 2. 使用 `read` 或 `add_files` 命令硬件描述文件 如果需要在TCL脚本中导硬件描述文件(如Verilog、VHDL等),可以使用 `read_verilog`、`read_vhdl` 或 `add_files` 命令。例如: ```tcl # 导Verilog文件 read_verilog path/to/your_file.v # 导VHDL文件 read_vhdl path/to/your_file.vhd # 添加多个文件到项目中 add_files [list path/to/file1.v path/to/file2.vhd] ``` 这些命令通常用于在创建或修改设计时引新的IP核或模块[^2]。 #### 3. 使用 `open_checkpoint` 加载检查点文件 检查点文件(`.dcp`)保存了设计的状态,可以在TCL脚本中通过 `open_checkpoint` 命令加载。这在增量编译或恢复特定设计状态时非常有用: ```tcl open_checkpoint path/to/your_checkpoint.dcp ``` #### 4. 配置消息显示设置 在某些情况下,可能需要调整TCL脚本中的消息显示行为以避免重复警告或错误信息。例如,针对引用中提到的消息问题[^3],可以使用以下命令: ```tcl set_msg_config -id {Labtoolstcl 44-481} -severity warning -action suppress ``` 该命令会抑制指定ID的消息显示。 #### 示例:完整TCL脚本示例 以下是一个完整的TCL脚本示例,展示了如何结上述方法实现文件的引用与导: ```tcl # 加载外部TCL脚本 source path/to/configurations.tcl # 导Verilog文件 read_verilog path/to/jtag_axi_module.v # 添加其他设计文件 add_files [list path/to/axi_interface.v path/to/reset_logic.v] # 打开检查点文件 open_checkpoint path/to/design_state.dcp # 配置消息显示设置 set_msg_config -id {Labtoolstcl 44-481} -severity warning -action suppress ``` #### 注意事项 - 确保所有路径名正确无误,并且文件存在于指定位置。 - 在使用 `source` 或 `add_files` 命令时,建议使用绝对路径以避免相对路径解析问题。 - 如果脚本中涉及复杂逻辑,建议将其拆分为多个小脚本以便维护调试[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值