304 lines
14 KiB
C
304 lines
14 KiB
C
#include "app_config.h"
|
||
// *INDENT-OFF*
|
||
#ifdef __SHELL__
|
||
|
||
${OBJDUMP} -D -print-dbg -mcpu=r3 $1.elf > ../../../$1.lst
|
||
${OBJDUMP} -section-headers -address-mask=0x1ffffff $1.elf
|
||
${OBJSIZEDUMP} -lite -skip-zero -enable-dbg-info $1.elf | sort -k 1 > symbol_tbl.txt
|
||
|
||
/opt/utils/strip-ini -i isd_config.ini -o isd_config.ini
|
||
|
||
objsizedump -lite -skip-zero sdk.elf | sort -k 1 > ../../../map.lit
|
||
|
||
export PROJ_BUILD=download.bat
|
||
|
||
echo "echo 加一下中文注释,防止服务器导出不了报错" >> ${PROJ_BUILD}
|
||
echo "echo 加一下中文注释,防止服务器导出不了报错" >> ${PROJ_BUILD}
|
||
echo "echo 加一下中文注释,防止服务器导出不了报错,加一下中文注释,防止服务器导出不了报错,加一下中文注释,防止服务器导出不了报错,加一下中文注释,防止服务器导出不了报错,加一下中文注释,防止服务器导出不了报错,加一下中文注释,防止服务器导出不了报错,加一下中文注释,防止服务器导出不了报错,加一下中文注释,防止服务器导出不了报错,加一下中文注释,防止服务器导出不了报错,加一下中文注释,防止服务器导出不了报错,加一下中文注释,防止服务器导出不了报错,加一下中文注释,防止服务器导出不了报错,加一下中文注释,防止服务器导出不了报错,加一下中文注释,防止服务器导出不了报错,加一下中文注释,防止服务器导出不了报错,加一下中文注释,防止服务器导出不了报错,加一下中文注释,防止服务器导出不了报错,加一下中文注释,防止服务器导出不了报错,加一下中文注释,防止服务器导出不了报错,加一下中文注释,防止服务器导出不了报错,加一下中文注释,防止服务器导出不了报错,加一下中文注释,防止服务器导出不了报错,加一下中文注释,防止服务器导出不了报错,加一下中文注释,防止服务器导出不了报错,加一下中文注释,防止服务器导出不了报错,加一下中文注释" >> ${PROJ_BUILD}
|
||
|
||
#if defined CONFIG_UI_ENABLE
|
||
#if defined UI_USE_WIFI_CAMERA_PROJECT
|
||
echo "@echo "是否输出UI资源文件_按Y_不生成继续_按N生成并继续_倒计时3s自动选择Y"" >> ${PROJ_BUILD}
|
||
echo "choice /t 3 /c ync /n /d y" >> ${PROJ_BUILD}
|
||
echo "if %errorlevel%==1 goto end" >> ${PROJ_BUILD}
|
||
echo "if %errorlevel%==2 goto continue" >> ${PROJ_BUILD}
|
||
echo ":continue" >> ${PROJ_BUILD}
|
||
echo "cd ..\..\..\ui_project\3.ui_demo_wifi_camera\ui_320x480_test\project" >> ${PROJ_BUILD}
|
||
echo "start auto_ui_res.bat" >> ${PROJ_BUILD}
|
||
echo "cd ..\..\..\..\cpu\wl82\tools" >> ${PROJ_BUILD}
|
||
echo "TIMEOUT /T 8" >> ${PROJ_BUILD}
|
||
#endif
|
||
echo ":end" >> ${PROJ_BUILD}
|
||
#endif
|
||
|
||
echo "set OBJDUMP=C:\JL\pi32\bin\llvm-objdump.exe" >> ${PROJ_BUILD}
|
||
echo "set OBJCOPY=C:\JL\pi32\bin\llvm-objcopy.exe" >> ${PROJ_BUILD}
|
||
echo "set ELFFILE=sdk.elf" >> ${PROJ_BUILD}
|
||
echo "%OBJCOPY% -O binary -j .text %ELFFILE% text.bin" >> ${PROJ_BUILD}
|
||
echo "%OBJCOPY% -O binary -j .data %ELFFILE% data.bin" >> ${PROJ_BUILD}
|
||
echo "%OBJCOPY% -O binary -j .ram0_data %ELFFILE% ram0_data.bin" >> ${PROJ_BUILD}
|
||
echo "%OBJCOPY% -O binary -j .cache_ram_data %ELFFILE% cache_ram_data.bin" >> ${PROJ_BUILD}
|
||
echo "%OBJDUMP% -section-headers -address-mask=0x1ffffff %ELFFILE%" >> ${PROJ_BUILD}
|
||
echo "%OBJDUMP% -t %ELFFILE% > symbol_tbl.txt" >> ${PROJ_BUILD}
|
||
echo "copy /b text.bin+data.bin+ram0_data.bin+cache_ram_data.bin app.bin" >> ${PROJ_BUILD}
|
||
#if defined CONFIG_UI_ENABLE
|
||
#if defined CONFIG_UI_FILE_SAVE_IN_RESERVED_EXPAND_ZONE || defined CONFIG_UI_FILE_SAVE_IN_RESERVED_ZONE
|
||
echo "packres\packres.exe -n ui -o packres/UIPACKRES ui_res" >> ${PROJ_BUILD}
|
||
#else
|
||
echo "set UI_RES=ui_res" >> ${PROJ_BUILD}
|
||
#endif
|
||
#endif
|
||
#if defined CONFIG_AUDIO_ENABLE && defined CONFIG_VOICE_PROMPT_FILE_PATH
|
||
#if defined CONFIG_VOICE_PROMPT_FILE_SAVE_IN_RESERVED_EXPAND_ZONE || defined CONFIG_VOICE_PROMPT_FILE_SAVE_IN_RESERVED_ZONE
|
||
echo "packres\packres.exe -n tone -o packres/AUPACKRES audlogo" >> ${PROJ_BUILD}
|
||
#else
|
||
echo "set AUDIO_RES=audlogo" >> ${PROJ_BUILD}
|
||
#endif
|
||
#endif
|
||
|
||
#if CONFIG_DOUBLE_BANK_ENABLE
|
||
echo "set UPDATE_FILES=-update_files normal" >> ${PROJ_BUILD}
|
||
#endif
|
||
|
||
#if defined CONFIG_SDFILE_EXT_ENABLE
|
||
echo -n "fat_image_tool.exe --size " >> ${PROJ_BUILD}
|
||
echo -n CONFIG_SDNAND_HFAT_LEN_TEXT >> ${PROJ_BUILD}
|
||
echo -n " --sectors-per-cluster " >> ${PROJ_BUILD}
|
||
echo -n CONFIG_SDNAND_HFAT_CLUSTER_SIZE >> ${PROJ_BUILD}
|
||
echo " --lfn true --n-root 512 --volume-name HFAT_IMG --output jl_hfat.bin --fat-dir hfat_dir" >> ${PROJ_BUILD}
|
||
echo -n "fat_image_tool.exe --size " >> ${PROJ_BUILD}
|
||
echo -n CONFIG_SDNAND_FAT1_LEN_TEXT >> ${PROJ_BUILD}
|
||
echo -n " --sectors-per-cluster " >> ${PROJ_BUILD}
|
||
echo -n CONFIG_SDNAND_FAT1_CLUSTER_SIZE >> ${PROJ_BUILD}
|
||
echo " --lfn true --n-root 512 --volume-name FAT1_IMG --output jl_fat1.bin --fat-dir fat1_dir" >> ${PROJ_BUILD}
|
||
echo "isd_download.exe isd_config.ini -gen2 -to-sdcard -dev wl82 -boot 0x1c02000 -div1 -app app.bin cfg_tool.bin -res %AUDIO_RES% %UI_RES% cfg -extend-bin -output-bin jl_hfs.bin %UPDATE_FILES% -no-app-bin-enc" >> ${PROJ_BUILD}
|
||
#elif defined CONFIG_SFC_ENABLE
|
||
echo "isd_download.exe isd_config.ini -tonorflash -dev wl82 -boot 0x1c02000 -div1 -wait 300 -uboot uboot.boot -app app.bin cfg_tool.bin -res %AUDIO_RES% %UI_RES% cfg -reboot 500 %UPDATE_FILES% -extend-bin" >> ${PROJ_BUILD}
|
||
#else
|
||
echo "set run_addr=0x2000" >> ${PROJ_BUILD}
|
||
echo "set load_addr=0x4000" >> ${PROJ_BUILD}
|
||
echo "set mask_addr=0x100000" >> ${PROJ_BUILD}
|
||
echo "uboot_lz4.exe app.bin app.lz4 %run_addr% %load_addr% rom.image %mask_addr%" >> ${PROJ_BUILD}
|
||
echo "isd_download.exe isd_config.ini -tonorflash -dev wl82 -boot 0x1c02000 -div1 -wait 300 -uboot uboot.boot -app app.lz4 cfg_tool.bin -res %AUDIO_RES% %UI_RES% cfg -reboot 500 %UPDATE_FILES% -extend-bin" >> ${PROJ_BUILD}
|
||
#endif
|
||
|
||
#if 0
|
||
echo "if exist *.mp3 del *.mp3" >> ${PROJ_BUILD}
|
||
echo "if exist *.PIX del *.PIX" >> ${PROJ_BUILD}
|
||
echo "if exist *.TAB del *.TAB" >> ${PROJ_BUILD}
|
||
echo "if exist *.res del *.res" >> ${PROJ_BUILD}
|
||
echo "if exist *.sty del *.sty" >> ${PROJ_BUILD}
|
||
#endif
|
||
|
||
#if defined CONFIG_SDFILE_EXT_ENABLE
|
||
echo "copy isd_config_loader.ini loader_tools\isd_config.ini" >> ${PROJ_BUILD}
|
||
echo "copy jl_hfs.bin loader_tools\jl_hfs.bin" >> ${PROJ_BUILD}
|
||
echo "copy jl_hfat.bin loader_tools\jl_hfat.bin" >> ${PROJ_BUILD}
|
||
echo "copy jl_fat1.bin loader_tools\jl_fat1.bin" >> ${PROJ_BUILD}
|
||
#else
|
||
#if !(CONFIG_DOUBLE_BANK_ENABLE)
|
||
echo "fw_add.exe -noenc -fw jl_isd.fw -add ota.bin -type 100 -out jl_isd.fw" >> ${PROJ_BUILD}
|
||
#endif
|
||
echo "fw_add.exe -noenc -fw jl_isd.fw -add script.ver -out jl_isd.fw" >> ${PROJ_BUILD}
|
||
|
||
echo "ufw_maker.exe -fw_to_ufw jl_isd.fw" >> ${PROJ_BUILD}
|
||
#endif
|
||
echo "ping /n 2 127.1>null" >> ${PROJ_BUILD}
|
||
//echo "IF EXIST null del null" >> ${PROJ_BUILD}
|
||
echo "del cache_ram_data.bin" >> ${PROJ_BUILD}
|
||
echo "del data.bin" >> ${PROJ_BUILD}
|
||
echo "del ram0_data.bin" >> ${PROJ_BUILD}
|
||
echo "del text.bin" >> ${PROJ_BUILD}
|
||
#if defined CONFIG_SDFILE_EXT_ENABLE
|
||
echo "del jl_hfs.bin" >> ${PROJ_BUILD}
|
||
echo "del jl_hfat.bin" >> ${PROJ_BUILD}
|
||
echo "del jl_fat1.bin" >> ${PROJ_BUILD}
|
||
echo "cd loader_tools" >> ${PROJ_BUILD}
|
||
echo "call download.bat" >> ${PROJ_BUILD}
|
||
echo "cd ..\\" >> ${PROJ_BUILD}
|
||
#endif
|
||
echo "TIMEOUT /T 3" >> ${PROJ_BUILD}
|
||
echo "exit /b 0" >> ${PROJ_BUILD}
|
||
|
||
#if defined CONFIG_SDFILE_EXT_ENABLE
|
||
files="isd_config.ini isd_config_loader.ini download.bat"
|
||
#else
|
||
files="isd_config.ini download.bat"
|
||
#endif
|
||
|
||
host-client -project ${NICKNAME}$2 -f ${files} $1.elf
|
||
|
||
rm download.bat
|
||
rm isd_config.ini
|
||
|
||
#else
|
||
|
||
|
||
#if defined CONFIG_RELEASE_ENABLE && (defined CONFIG_VOICE_PROMPT_FILE_SAVE_IN_RESERVED_ZONE || defined CONFIG_UI_FILE_SAVE_IN_RESERVED_ZONE \
|
||
|| defined CONFIG_VOICE_PROMPT_FILE_SAVE_IN_RESERVED_EXPAND_ZONE || defined CONFIG_UI_FILE_SAVE_IN_RESERVED_EXPAND_ZONE)
|
||
|
||
REM 目前检测到SDK使用了资源文件打包放到预留区的功能,详细请浏览开源文档7.19资源区配置(RES和预留区),此功能可以节省flash空间,但操作比较繁琐
|
||
REM 若flash容量充足不需要此功能,可屏蔽对应的宏定义
|
||
REM 特别注意特别注意!!!如果跨版本升级固件,比如从1.0.3和1.1.x版本升级到1.2.x版本,必现保证生成的isd_config.ini升级前后的配置一样,请阅读tools/note.txt,必要时请向FAE确认
|
||
REM 开发过程中可先设置isd_config_rule.c的配置项CALC_RES_CFG=YES,工具会自动适配填写对应资源文件的起始地址和长度,量产版本严禁打开该配置项,必须关闭!!!
|
||
REM 量产版本必须先设置isd_config_rule.c的配置项CALC_RES_CFG=NO,然后根据资源文件大小填写AUPACKRES_LEN和UIPACKRES_LEN,请预留好后续资源升级的空间余量,该大小一经烧录之后是严禁更改的,升级固件生成时此大小必须保持一样!!!
|
||
REM 量产版本填写AUPACKRES_LEN和UIPACKRES_LEN后点击第一次下载时工具还会出现警告,需要自行把脚本打印出来的flash info的AUPACKRES_ADR和UIPACKRES_ADR同步覆盖到isd_config_rule.c对应的AUPACKRES_ADR和UIPACKRES_ADR,该值一经烧录之后是严禁更改的,升级固件生成时此值必须保持一样!!!
|
||
REM 如知悉后可自行删除下一行exit即可正常下载
|
||
exit /b -1
|
||
|
||
#endif
|
||
|
||
@echo off
|
||
|
||
@echo *********************************************************************
|
||
@echo AC791N SDK
|
||
@echo *********************************************************************
|
||
@echo %date%
|
||
|
||
cd /d %~dp0
|
||
|
||
echo %*
|
||
|
||
#if defined CONFIG_UI_ENABLE
|
||
#if defined UI_USE_WIFI_CAMERA_PROJECT
|
||
cd ..\..\..\ui_project\3.ui_demo_wifi_camera\ui_320x480_test\project
|
||
start auto_ui_res.bat
|
||
cd ..\..\..\..\cpu\wl82\tools
|
||
TIMEOUT /T 8
|
||
#endif
|
||
#endif
|
||
|
||
set OBJDUMP=C:\JL\pi32\bin\llvm-objdump.exe
|
||
set OBJCOPY=C:\JL\pi32\bin\llvm-objcopy.exe
|
||
set ELFFILE=sdk.elf
|
||
|
||
%OBJDUMP% -D -address-mask=0x1ffffff -print-dbg %ELFFILE% > sdk.lst
|
||
%OBJCOPY% -O binary -j .text %ELFFILE% text.bin
|
||
%OBJCOPY% -O binary -j .data %ELFFILE% data.bin
|
||
%OBJCOPY% -O binary -j .ram0_data %ELFFILE% ram0_data.bin
|
||
%OBJCOPY% -O binary -j .cache_ram_data %ELFFILE% cache_ram_data.bin
|
||
|
||
%OBJDUMP% -section-headers -address-mask=0x1ffffff %ELFFILE%
|
||
%OBJDUMP% -t %ELFFILE% > symbol_tbl.txt
|
||
|
||
copy /b text.bin+data.bin+ram0_data.bin+cache_ram_data.bin app.bin
|
||
|
||
#if defined CONFIG_UI_ENABLE
|
||
#if (defined CONFIG_UI_FILE_SAVE_IN_RESERVED_EXPAND_ZONE || defined CONFIG_UI_FILE_SAVE_IN_RESERVED_ZONE)
|
||
packres\packres.exe -n ui -o packres/UIPACKRES ui_res
|
||
#else
|
||
set UI_RES=ui_res
|
||
#endif
|
||
#endif
|
||
|
||
#if defined CONFIG_AUDIO_ENABLE
|
||
#if defined CONFIG_VOICE_PROMPT_FILE_PATH && \
|
||
(defined CONFIG_VOICE_PROMPT_FILE_SAVE_IN_RESERVED_EXPAND_ZONE || defined CONFIG_VOICE_PROMPT_FILE_SAVE_IN_RESERVED_ZONE)
|
||
packres\packres.exe -n tone -o packres/AUPACKRES audlogo
|
||
#else
|
||
set AUDIO_RES=audlogo
|
||
#endif
|
||
#endif
|
||
|
||
REM set KEY_FILE=-key JL_791N-XXXX.key
|
||
REM set KEY_FILE=-key1 JL_791N-XXXX.key1 -mkey JL_791N-XXXX.mkey
|
||
|
||
set CFG_FILE=cfg
|
||
|
||
REM 添加新参数-update_files说明
|
||
REM 1/normal就是普通的文件目录结构
|
||
REM 2/embedded就是每个文件数据前都会有一个头
|
||
|
||
REM 只生成code + res升级文件
|
||
REM -update_files normal
|
||
REM 生成的文件名字为:db_update_files_data.bin
|
||
|
||
REM 只生成预留区资源升级文件
|
||
REM -update_files embedded_only $(files) ,其中$(files)为需要添加的资源文件
|
||
REM 生成的文件名字为:db_update_files_data.bin
|
||
|
||
REM 生成code + res + 预留区资源升级文件
|
||
REM -update_files embedded $(files) ,其中$(files)为需要添加的资源文件
|
||
REM 生成的文件名字为:db_update_files_data.bin
|
||
|
||
#if CONFIG_DOUBLE_BANK_ENABLE
|
||
set UPDATE_FILES=-update_files normal
|
||
#endif
|
||
|
||
#if defined CONFIG_SDFILE_EXT_ENABLE
|
||
fat_image_tool.exe --size CONFIG_SDNAND_HFAT_LEN_TEXT --sectors-per-cluster CONFIG_SDNAND_HFAT_CLUSTER_SIZE --lfn true --n-root 512 --volume-name HFAT_IMG --output jl_hfat.bin --fat-dir hfat_dir
|
||
fat_image_tool.exe --size CONFIG_SDNAND_FAT1_LEN_TEXT --sectors-per-cluster CONFIG_SDNAND_FAT1_CLUSTER_SIZE --lfn true --n-root 512 --volume-name FAT1_IMG --output jl_fat1.bin --fat-dir fat1_dir
|
||
isd_download.exe isd_config.ini -gen2 -to-sdcard -dev wl82 -boot 0x1c02000 -div1 -app app.bin cfg_tool.bin -res %AUDIO_RES% %UI_RES% cfg -extend-bin -output-bin jl_hfs.bin %UPDATE_FILES% -no-app-bin-enc
|
||
#elif defined CONFIG_SFC_ENABLE
|
||
isd_download.exe isd_config.ini -tonorflash -dev wl82 -boot 0x1c02000 -div1 -wait 300 -uboot uboot.boot -app app.bin cfg_tool.bin -res ai_res %AUDIO_RES% %UI_RES% %CFG_FILE% -reboot 500 %KEY_FILE% %UPDATE_FILES% -extend-bin
|
||
#else
|
||
REM @@@@@@@无效参数
|
||
set run_addr=0x2000
|
||
set load_addr=0x4000
|
||
set mask_addr=0x100000
|
||
uboot_lz4.exe app.bin app.lz4 %run_addr% %load_addr% rom.image %mask_addr%
|
||
REM @@@@@@@@@@@@@@@
|
||
|
||
isd_download.exe isd_config.ini -tonorflash -dev wl82 -boot 0x1c02000 -div1 -wait 300 -uboot uboot.boot -app app.lz4 cfg_tool.bin -res ai_res %AUDIO_RES% %UI_RES% %CFG_FILE% -reboot 500 %KEY_FILE% %UPDATE_FILES% -extend-bin
|
||
#endif
|
||
|
||
|
||
@REM 常用命令说明
|
||
@rem -format vm // 擦除VM 区域
|
||
@rem -format all // 擦除所有
|
||
@rem -reboot 500 // reset chip, valid in JTAG debug
|
||
|
||
echo %errorlevel%
|
||
|
||
@REM 删除临时文件
|
||
if exist *.mp3 del *.mp3
|
||
if exist *.PIX del *.PIX
|
||
if exist *.TAB del *.TAB
|
||
if exist *.res del *.res
|
||
if exist *.sty del *.sty
|
||
|
||
#if defined CONFIG_SDFILE_EXT_ENABLE
|
||
copy isd_config_loader.ini loader_tools\isd_config.ini
|
||
copy jl_hfs.bin loader_tools\jl_hfs.bin
|
||
copy jl_hfat.bin loader_tools\jl_hfat.bin
|
||
copy jl_fat1.bin loader_tools\jl_fat1.bin
|
||
#else
|
||
#if !(CONFIG_DOUBLE_BANK_ENABLE)
|
||
@REM 生成固件升级文件
|
||
fw_add.exe -noenc -fw jl_isd.fw -add ota.bin -type 100 -out jl_isd.fw
|
||
#endif
|
||
|
||
@REM 添加配置脚本的版本信息到 FW 文件中
|
||
fw_add.exe -noenc -fw jl_isd.fw -add script.ver -out jl_isd.fw
|
||
|
||
ufw_maker.exe -fw_to_ufw jl_isd.fw
|
||
#endif
|
||
|
||
@REM 生成配置文件升级文件
|
||
rem ufw_maker.exe -chip AC630N %ADD_KEY% -output config.ufw -res bt_cfg.cfg
|
||
|
||
ping /n 2 127.1>null
|
||
IF EXIST null del null
|
||
|
||
::del app.bin
|
||
del cache_ram_data.bin
|
||
del data.bin
|
||
del ram0_data.bin
|
||
del text.bin
|
||
|
||
#if defined CONFIG_SDFILE_EXT_ENABLE
|
||
del jl_hfs.bin
|
||
del jl_hfat.bin
|
||
del jl_fat1.bin
|
||
cd loader_tools
|
||
call download.bat
|
||
cd ..\
|
||
|
||
#endif
|
||
|
||
::退出当前批处理加返回值(0),才能多个批处理嵌套调用批处理
|
||
exit /b 0
|
||
|
||
#endif
|
||
// *INDENT-ON*
|