Files
luban-lite-t3e-pro/tools/scripts/aic_build.pyc

271 lines
34 KiB
Plaintext
Raw Normal View History

2023-08-30 16:21:18 +08:00
<03>
<EFBFBD>g<EFBFBD>dc@s<>ddlZddlZddlZddlZddlZddlTdZedZedZedZ dZ
d<00>Z d <00>Z d
<00>Z d <00>Zd <00>Zd <00>Zd<00>Zd<00>Zd<00>Zd<00>Zd<00>Zd<00>Zd<00>Zd<00>Zd<00>Zd<00>Zd<00>Zd<00>Zd<00>Zd<00>Zd<00>Zd<00>Z d<00>Z!d<00>Z"d <00>Z#d!<00>Z$d"<00>Z%d#<00>Z&d$<00>Z'd%<00>Z(d&<00>Z)d'Z*d(<00>Z+d)<00>Z,d*<00>Z-d+<00>Z.d,<00>Z/d-<00>Z0d.<00>Z1dS(/i<><69><EFBFBD><EFBFBD>N(t*s41;37ms43;30ms47;30mscCstd|tGHdS(Ns*** (t COLOR_REDt COLOR_END(tstring((sbC:\Users\guojun.dong\Desktop\release-check\Luban-Lite_V1.0.1_2023-08-29\tools/scripts/aic_build.pytpr_errscCstd|tGHdS(Ns>>> (t COLOR_WHITER(R((sbC:\Users\guojun.dong\Desktop\release-check\Luban-Lite_V1.0.1_2023-08-29\tools/scripts/aic_build.pytpr_infoscCstd|tGHdS(Ns!!! (t COLOR_YELLOWR(R((sbC:\Users\guojun.dong\Desktop\release-check\Luban-Lite_V1.0.1_2023-08-29\tools/scripts/aic_build.pytpr_warnscCsdj|<00>GHtj|<00>S(Ns{}(tformattostsystem(tcmd((sbC:\Users\guojun.dong\Desktop\release-check\Luban-Lite_V1.0.1_2023-08-29\tools/scripts/aic_build.pyt do_systemscCstj|<00>}|j<00>dS(Ni(R
tpopent readlines(R tp((sbC:\Users\guojun.dong\Desktop\release-check\Luban-Lite_V1.0.1_2023-08-29\tools/scripts/aic_build.pytdo_pipe!scCs<>tjj|<00>sdSxdt|<00>D]V}|j<00>}| s#|ddkrRq#n|jd<00>}|d|kr#|dSq#WdS(Nit#t=i(R
tpathtexiststNonetopentstriptsplit(tfilenametkeytlinetv((sbC:\Users\guojun.dong\Desktop\release-check\Luban-Lite_V1.0.1_2023-08-29\tools/scripts/aic_build.pyt
get_config%s  c Cs<>tjj|d<00>}tjj|<00>s+dSd}d}d}d}d}t||<00>}|rs|jdd<00>}n^t||<00>}t||<00>} t||<00>}
t||<00>} |d | d |
d | d
}|S( Ns.configtCONFIG_PRJ_DEFCONFIG_FILENAMEtCONFIG_PRJ_CHIPtCONFIG_PRJ_BOARDtCONFIG_PRJ_KERNELtCONFIG_PRJ_APPt"tt_t
_defconfig(R
RtjoinRRRtreplace( taic_roott config_filet key_defconfigtkey_chipt key_boardt
key_kerneltkey_appt defconfigtprj_chipt prj_boardt
prj_kerneltprj_app((sbC:\Users\guojun.dong\Desktop\release-check\Luban-Lite_V1.0.1_2023-08-29\tools/scripts/aic_build.pytget_prj_defconfig1s""cCs<>g}d}tjj|dd<00>}x~tj|<00>D]m\}}}||krSPnxK|D]C}d|krZ|j|<00>t|<00>|kr<>t|<00>}q<>qZqZWq4W|j<00>||fS(NittargettconfigsR1(R
RR(twalktappendtlentsort(R*RtmaxlenRtroottdirstfilestf((sbC:\Users\guojun.dong\Desktop\release-check\Luban-Lite_V1.0.1_2023-08-29\tools/scripts/aic_build.pytlist_defconfigEs    
cCstjj|dd|<00>}tjj|<00>sKdj|<00>GHtjd<00>ndjtjjdd|<00><00>GHtjd|jdd<00>d tjj|d
<00><17>tjj|d <00>}t j
||<00>tjj tjj|d <00><00>d dl m }|d <00>dS(NR7R8s defconfig file {} is not exists!insLoad config from {}secho R'R%s > s
.defconfigs.configskernel/rt-thread/toolsi<73><69><EFBFBD><EFBFBD>(t mk_rtconfig(R
RR(RR tsystexitR R)tshutiltcopyR:t
menuconfigRC(R*R1tsrctdstRC((sbC:\Users\guojun.dong\Desktop\release-check\Luban-Lite_V1.0.1_2023-08-29\tools/scripts/aic_build.pytapply_defconfigTs 4cCs<>tjj|d<00>}tjj|<00>sEdj|<00>GHtjd<00>nt|<00>}|r<>tjj|dd|<00>}tj ||<00>ndS(Ns.configs defconfig file {} is not exists!inR7R8(
R
RR(RR RDRER6RFRG(R*RIR1RJ((sbC:\Users\guojun.dong\Desktop\release-check\Luban-Lite_V1.0.1_2023-08-29\tools/scripts/aic_build.pytsave_defconfigcs cCs{t|<00>}|rwtjj|dd|<00>}tjj|<00>sOtjd<00>ntjj|d<00>}tj||<00>ndS(NR7R8ins.config( R6R
RR(RRDRERFRG(R*R1RIRJ((sbC:\Users\guojun.dong\Desktop\release-check\Luban-Lite_V1.0.1_2023-08-29\tools/scripts/aic_build.pytupdate_defconfigms c
Cs<>tddddddtdd<00>td<00>}|r<>t|<00>\}}d }d
GHx?|D]7}|jd d <00>}d ||||fGH|d7}qXWtd <00>ndS(Ns
--list-deftdestRBtactiont
store_truetdefaultthelpsto list all board defconfigsisBuilt-in configs:R'R%s%3d. %-*s - Build for %si(t AddOptiontFalset GetOptionRBR)RE(R*tlist_defR8R=tindextctd((sbC:\Users\guojun.dong\Desktop\release-check\Luban-Lite_V1.0.1_2023-08-29\tools/scripts/aic_build.pyt list_def_cmdws   cCs<>tddddddddd d
d d d <00>td<00>}|r<>|j<00>r<>t|d<00>}t|<00>\}}|t|<00>kr<>||}q<>nt||<00>td<00>ndS(Ns --apply-defRNRKttypeRtnargsiROtstoreRQR%RRsto apply one board defconfigi
i(RSRUtisdigittintRBR;RKRE(R*t apply_deftiR8R=((sbC:\Users\guojun.dong\Desktop\release-check\Luban-Lite_V1.0.1_2023-08-29\tools/scripts/aic_build.pyt apply_def_cmd<6D>s     c
CsOtddddddtdd<00>td<00>}|rKt|<00>td <00>ndS(
Ns
--save-defRNRLRORPRQRRsto save current board defconfigi(RSRTRURLRE(R*R2R3R4R5t prj_defconfigtsave_def((sbC:\Users\guojun.dong\Desktop\release-check\Luban-Lite_V1.0.1_2023-08-29\tools/scripts/aic_build.pyt save_def_cmd<6D>s  
c
Cs<>tddddddtdd<00>td<00>}|r<>tj<00>d krstjj|d
<00>}tjd |d <17>n"tj<00>d kr<>tjd<00>ntd<00>ndS(Ns --pkgs-updateRNt pkgs_updateRORPRQRRsto update packages onlinetLinuxs ./tools/env/tools/scripts/env.pyspython s package --updatetWindowss pkgs --updatei( RSRTRUtplatformR R
RR(RE(R*R2R3R4R5Rct
update_deft env_py_path((sbC:\Users\guojun.dong\Desktop\release-check\Luban-Lite_V1.0.1_2023-08-29\tools/scripts/aic_build.pytpkgs_update_cmd<6D>s  c
Cs<>tjj|d<00>}tddddddtdd <00>td<00>}|r<>d
}t|d <00>} | rmd }nt|d <00>}
|
r<>d}n|dkr<>d} nd} |jdd<00>} d| } d}tjjd<00>r*tjj|d|<17>}t jj
|<00>ddl }tjj||j <00>}ndj | |<00>GHdj |<00>GHdj |<00>GHdj ||<00>GHdj |<00>GHdj |<00>GHdj |<00>GHdj | <00>GHd j |<00>GHtd!<00>ndS("Ns.configs--infoRNtprj_infoRORPRQRRsto show current project infotunknowntCONFIG_ARCH_RISCV32triscv32tCONFIG_ARCH_RISCV64triscv64t baremetalR
R'R%soutput/s toolchain/binstoolchain/.readys./bsp/artinchip/sys/i<><69><EFBFBD><EFBFBD>s! Target app: application/{}/{}s Target chip: {}s Target arch: {}s Target board: target/{}/{}s Target kernel: kernel/{}s!Defconfig file: target/configs/{}sRoot directory: {}s Out directory: {}s Toolchain: {}i(R
RR(RSRTRURR)RRDR:trtconfigtPREFIXR RE(R*R2R3R4R5RcR+Rmtarchtrv32trv64tapp_ostprj_namet prj_out_dirt toolchaint chip_pathRt((sbC:\Users\guojun.dong\Desktop\release-check\Luban-Lite_V1.0.1_2023-08-29\tools/scripts/aic_build.pyt show_info_cmd<6D>sH      
 c s9tddddddtdd<00>td<00>}|r5tjj|d <00>}t|<00>}x<>d
} d GHx'|D]}
d | |
fGH| d 7} qjWtd<00>} | dkr<>td
<00>n| j <00>s<>dGHqXnt
| d<00>} | t |<00>kr<>dGHqXnPqXW|| <19>dj <00><00>GHt |<00>\} } tt<00>fd<00>| <00><00>} x<>d
} dGHx'| D]}
d | |
fGH| d 7} qWWtd<00>} | dkr<>td
<00>n| j <00>s<>dGHqEnt
| d<00>} | t | <00>kr<>dGHqEnPqEW| | }dj |<00>GH|jd<00>}t |<00>dkr;dj |<00>GHtd
<00>n|d }xYtd<00>} | j<00>} | dkrytd
<00>nd| ks<>d| kr<>dGHqHnPqHW| }dj |<00>GHx6td<00>} | j<00>} | dkr<>td
<00>nPq<50>W| }dj |<00>GHtjj|d d|<00>}||d <dj|<00>}tjj|d d|<00>}dj ||<00>GHtj||<00>d }t|d!<00><00><>}x<>|D]<5D>}||kr<>|j||<00>}n||kr<>|j||<00>}nd"|kr<>d#j |<00>}nd$|krd%j |<00>}n||7}q<>WWdQXt|d&<00><00>}|j|<00>WdQX||d <d'|d(<d)|d*<dj|<00>}tjj|d d|<00>}||d <dj|<00>}tjj|d d|<00>}tjj|<00>s<>d+j |<00>GHn<48>dj ||<00>GHtj||<00>d }t|d!<00><00>d}xZ|D]R}||krT|j||<00>}n||kru|j||<00>}n||7}q-WWdQXt|d&<00><00>}|j|<00>WdQXtjj|d <00>|<00>}tjj|d <00>|<00>}tjj|<00>}tjj|<00>}tjj|<00>s<>dj ||<00>GHtj<00>d,krPtj||<00>q<>tj<00>d-kr<>tjd.|d.|<17>q<>ntjj|d/d0<00>}d }t|d!<00><00>C}x9|D]1}||kr<>|j||<00>}n||7}q<>WWdQXt|d&<00><00>}|j|<00>WdQXd1j ||<00>GHtd
<00>ndS(2Ns --add-boardRNt add_boardRORPRQRRs add new boardR7is
Chip list:s%3d: %sis"Select chip for new board(number):tqsPlease enter the number!i
sInput number is invalid!s{}
cs<00>|kod|kS(Nt
bootloader((tx(tchip(sbC:\Users\guojun.dong\Desktop\release-check\Luban-Lite_V1.0.1_2023-08-29\tools/scripts/aic_build.pyt<lambda>R%sBReference defconfig:(Create new board base on selected defconfig):s1Select reference defconfig for new board(number):R&isEError: {} is not conform to 'CHIP_BOARD_KERNEL_APP_defconfig' format!sInput new board's name:t s%Input name can't contain '_' or ' ' !sInput manufacturer's name:R8s Copy {} to {}R%trtCONFIG_AIC_CONSOLE_SYSNAMEs CONFIG_AIC_CONSOLE_SYSNAME="{}"
tCONFIG_FINSH_PROMPT_NAMEsCONFIG_FINSH_PROMPT_NAME="{}"
twRsiR<>is Warning: {} file is not exists
RgRhs\\?\tpacksimage_cfg.jsonsAdd board {} for {} succeed!(RSRTRUR
RR(t get_all_chipt raw_inputRER^R_R;R RBtlisttfilterRRRFRGRR)twriteRtnormpathRiR tcopytree(R*R2R3R4R5RcRRtchipsRWRXRaR8R=tref_cfgt def_elementstboardt new_boardt
manuf_nametsrc_deftdes_cfgtdes_deft file_dataRARtsrc_cfgtsrc_dtdes_dtdes_file((R<>sbC:\Users\guojun.dong\Desktop\release-check\Luban-Lite_V1.0.1_2023-08-29\tools/scripts/aic_build.pyt add_board_cmd<6D>s        
     
 
        
     



     c
Cstj<00>dkrtddddddtdd <00>td<00>}|r|d
kr[d
}nd }td d <00><00><>}|jdj|<00><00>|jdj||<00><00>|jdj||<00><00>|jdj|<00><00>|dkr<>|jd<00>nWdQXtjd<00>t |<00>t
d<00>qndS(NRhs --menuconfigRNtwin_menuconfigRORPRQRRsmake menuconfig for luban-liteRsR
s .Kconfig.prjR<6A>s-source "./bsp/artinchip/sys/{}/Kconfig.chip"
s$source "target/{}/{}/Kconfig.board"
s#source "application/{}/{}/Kconfig"
ssource "kernel/{}/Kconfig"
s rt-threadssource "$PKGS_DIR/Kconfig"
RHi( RiR RSRTRURR<>R R
RLRE( R*R2R3R4R5RcR<>RyRA((sbC:\Users\guojun.dong\Desktop\release-check\Luban-Lite_V1.0.1_2023-08-29\tools/scripts/aic_build.pytwin_menuconfig_cmdys*      
cCsQtj<00>dkr!d}d}n!tj<00>dkrBd}d}ntjj|d<00>}tjj||<00>} tjj| <00>} tjj| <00>r<>dSx<53>tj|<00>D]<5D>\}
} } |
|kr<>Pnx<>| D]{} | j|<00>r<>| j d<00>d kr<>tjj|| <00>}tj
| <00>t d
|d <17>tjd |d | <17>Pq<50>q<>Wq<57>WdS(NRgs
qemu-linuxsxuantie-qemu-x86_64Rhsqemu-winsxuantie-qemu-winstools/env/tools/qemu/s.tarisExtract s ...s tar -xzf s -C ( RiR R
RR(R<>RR9t
startswithtfindtmkdirR(R*R2R3R4R5Rct qemu_namet qemu_tar_namet
qemu_ppatht qemu_pathR>R?R@RAtabs_f((sbC:\Users\guojun.dong\Desktop\release-check\Luban-Lite_V1.0.1_2023-08-29\tools/scripts/aic_build.pyt chk_qemu_tool<6F>s*    $ c
Cs<>tddddddtdd<00>td<00>}|r<>t||||||<00>tjj|d |<17>}tjj|<00>d
dl }|j
j d <00>d kr<>d } d}
n d} d}
t j <00>dkr<>tjj|d| <00>} n-t j <00>dkrtjj|d| <00>} n|jdd<00>} d| d} tjj|| |jd|j<17>}| d|jd|
d|d}tj |<00>td <00>ndS(Ns
--run-qemuRNtrun_qemuRORPRQRRsuse qemu run targets./bsp/artinchip/sys/i<><69><EFBFBD><EFBFBD>Rwisqemu-system-riscv32tsmartlsqemu-system-riscv64tsmarthRgs#tools/env/tools/qemu/qemu-linux/binRhstools/env/tools/qemu/qemu-winR'R%soutput/s/images/t.s -cpu s -M s -kernel s -nographic(RSRTRUR<>R
RR(RDR:RttDEVICER<45>RiR R)tSOCt
TARGET_EXTtCPUNAMERE(R*R2R3R4R5RcR<>R}RtR<>tmachineR<65>RzR{R7R ((sbC:\Users\guojun.dong\Desktop\release-check\Luban-Lite_V1.0.1_2023-08-29\tools/scripts/aic_build.pyt run_qemu_cmd<6D>s4    &% c
Csmtddddddtdd<00>td<00>}|ritjj|d <00>}|jd
d <00>}tjj|d |<17>} tjj|d |<17>}
tjj|
<00>ddl } tjj| d| j
d| j <17>} | } xitj | <00>D]X\}}}|j d<00>r q<>nx1|D])}tjj||<00>}| d|7} qWq<57>W|d| }tj|<00>td<00>ndS(Ns --list-sizeRNt list_sizeRORPRQRRslist all obj file sizes&toolchain/bin/riscv64-unknown-elf-sizeR'R%soutput/s./bsp/artinchip/sys/i<><69><EFBFBD><EFBFBD>timagesR<73>R<>i(RSRTRUR
RR(R)RDR:RtR<>R<>R9tendswithR RE(R*R2R3R4R5RcR<>tgcc_sizeRzR{R}RtR7tpathsR>R?R@tfileRR ((sbC:\Users\guojun.dong\Desktop\release-check\Luban-Lite_V1.0.1_2023-08-29\tools/scripts/aic_build.pyt list_size_cmd<6D>s0   &  c
Cs<>tddddddtdd<00>td<00>}|r<>|jd d
<00>}tjd |d |<17>tjd |d <17>tjd|d<17>td<00>ndS(Ns --distcleanRNt distcleanRORPRQRRs)clean the toolchain and the output folderR'R%srm -rf s/output/s
/toolchainsrm -f s/.configi(RSRTRUR)R
R RE(R*R2R3R4R5RcR<>Rz((sbC:\Users\guojun.dong\Desktop\release-check\Luban-Lite_V1.0.1_2023-08-29\tools/scripts/aic_build.pyt distclean_cmd<6D>s  cCsLtj<00>dkrd}ntj<00>dkr6d}ntj|<00>d}d}tjj|d<17>ridSx<53>tj|<00>D]<5D>\} }
} | |kr<>Pnx<>| D]<5D>} | j|<00>r<>| jd<00>d kr<>tjj || <00>} t
d
|d <17>tjj|<00>stj |<00>ntjd | d |<17>t |dd<00>Pq<50>q<>WqyWdS(NRgs!Xuantie-900-gcc-elf-newlib-x86_64Rhs Xuantie-900-gcc-elf-newlib-mingwstools/toolchain/R|s/.readys.tarisExtract toolchain s ...s tar -xzf s --strip-components 1 -C R<>( RiR R
tchdirRRR9R<>R<>R(RR<>R(R*R2R3R4R5Rcttoolchain_namettoolchain_ppathttoolchain_bpathR>R?R@RAR<>((sbC:\Users\guojun.dong\Desktop\release-check\Luban-Lite_V1.0.1_2023-08-29\tools/scripts/aic_build.pytchk_prepare_toolchain<69>s,     $cCs<>td}d}tjj|<00>s&dSt|<00><00><>}|j<00>}xn|D]f}|jd<00>djdd<00>jdd<00>}||ks<>||krHt|jd<00>d<19>}|SqHWWdQXd j |<00>GHd
GH|S( Nspartition_file_list.hit,iR$R%Ris%Image {} is not used in any partitions*please check your project's image_cfg.json(
R{R
RRRRRR)R_R (timgnametpartlisttsizeRAtlinestlntname((sbC:\Users\guojun.dong\Desktop\release-check\Luban-Lite_V1.0.1_2023-08-29\tools/scripts/aic_build.pytmkimage_get_mtdpart_sizes
  +cCs<>td}tjj|<00>s dSd}t|<00><00>>}|j<00>}x(|D] }d|krH|d}PqHqHWWdQXt|<00>dkr<>dS|j<00>j d<00>}g}x*|D]"}|j
t |j d<00><00><00>q<>W|S(Nspartition_file_list.hR%snands=iit;R<>( R{R
RRRRRR;RRR:ttuple(R<>tnandsRAR<>R<>t
nands_listtret_listt nandparam((sbC:\Users\guojun.dong\Desktop\release-check\Luban-Lite_V1.0.1_2023-08-29\tools/scripts/aic_build.pytmkimage_get_nand_params)s"
   
  c Cs9t|d<00>}|}xtj|<00>D]\}}}xm|D]e}tjj||<00>j|d<00>jdd<00>}|jd<00>s<>d|}n|jdj|<00><00>q;Wx<57>|D]x} tjj|| <00>}
d|
} |
j|d<00>jdd<00>} | jd<00>s
d| } n|jdj| | <00><00>q<>Wq%W|j <00>dS(Nsw+R%s\t/s mkdir {}
s::s cp {} {}
(
RR
R9RR(R)R<>R<>R tclose( tsrcdirtscripttfst root_pathR>R?R@tsubtdirpathtfntfpathtsrcpathtdstpath((sbC:\Users\guojun.dong\Desktop\release-check\Luban-Lite_V1.0.1_2023-08-29\tools/scripts/aic_build.pytmkimage_gen_uffs_script<s  -  
 !cCs^|jdd<00>jdd<00>}tj|<00>}x*|D]"}tj||<00>}|r4tSq4WtS(NR<4E>s\.Rs.*(R)R
tlistdirtretmatchtTrueRT(tpathdirRtrestrtentstenttmatchobj((sbC:\Users\guojun.dong\Desktop\release-check\Luban-Lite_V1.0.1_2023-08-29\tools/scripts/aic_build.pytmkimage_check_file_existNs cCsod}|}x\tj|<00>D]K\}}}x9|D]1}tjj||<00>}|tjj|<00>7}q2WqW|S(Ni(R
R9RR(tgetsize(R<>t
total_sizeR<65>R>R?R@R<>R<>((sbC:\Users\guojun.dong\Desktop\release-check\Luban-Lite_V1.0.1_2023-08-29\tools/scripts/aic_build.pytmkimage_get_resource_sizeWs cCs0t|d<00>}|jt|<00><00>|j<00>dS(Ntwb(RR<>t bytearrayR<79>(toutimgR<67>RA((sbC:\Users\guojun.dong\Desktop\release-check\Luban-Lite_V1.0.1_2023-08-29\tools/scripts/aic_build.pytmkimage_gen_empty_img`sc%Cs dj|<00>}ttd|<00>dkr,dSdj|<00>}dj|<00>}dj|<00>}d}ttd|<00>dkr<>dj|<00>}ttd|<00>jd d<00>}t|<00>}d
j|<00>} d j|<00>}
ttd|
<00>jd d<00>} | tjd <t| } | jd <00>r/| dt| <00>d!} nt |} d} ttd| <00>jd d<00>}|dkrd}t
| <00>} t ttdd<00><00>}||}|t t | |d|<15><00>} t t |ddd<15><00>}| |} | d07} | dkrd} nt | |<15>}nZdj|<00>}t ttd|<00><00>}dj|<00>}t ttd|<00><00>}||} | |kr<>dGHdj| <00>GHt jd<00>ntj<00>dkr#dj| | <00>}||7}dj|||| <00>}dj| | <00>}|td|7}|td|7}q<>tj<00>dkr<>| jd d <00>} | jd d <00>} d!j| | <00>}|td"|7}dj|||| <00>}d#j| | <00>}|td$|7}|td%|7}q<>nttd|<00>dkrdj|<00>}ttd|<00>jd d<00>}t|<00>}d&j|<00>}ttd|<00>}d'j|<00>}ttd|<00>}d j|<00>}
ttd|
<00>jd d<00>} | tjd <t| } t |} d(j| |||| <00>}tj<00>dkr<>td)|}qtj<00>dkrtd*|}qnttd|<00>dkr<>t<00>}|dkrMdSdj|<00>}ttd|<00>jd d<00>}t|<00>}d j|<00>}
ttd|
<00>jd d<00>} | tjd <t| } d}x|D]} | \}}}!t |<00>}t |<00>}t |!<00>}!||}"||}#d+j|d|d|!<00>}$tjjt |$|<17>} tjj| <00>r~tj| <00>nd,j|#||"|!| | <00>}tj<00>dkr<>|td-|7}q<>tj<00>dkr<>|td.|7}q<>q<>Wn| tjd/j|<00><|S(1NsCONFIG_AIC_USING_FS_IMAGE_{}s.configtyR%s+CONFIG_AIC_USING_FS_IMAGE_TYPE_FATFS_FOR_{}s.CONFIG_AIC_USING_FS_IMAGE_TYPE_LITTLEFS_FOR_{}s*CONFIG_AIC_USING_FS_IMAGE_TYPE_UFFS_FOR_{}sCONFIG_AIC_FS_IMAGE_NAME_{}R$s!CONFIG_AIC_FATFS_AUTO_SIZE_FOR_{}sCONFIG_AIC_FS_IMAGE_DIR_{}taic_fs_image_dirR<72>iiit1CONFIG_AIC_USING_FS_IMAGE_TYPE_FATFS_CLUSTER_SIZEiiis#CONFIG_AIC_FATFS_SECTOR_SIZE_FOR_{}s$CONFIG_AIC_FATFS_SECTOR_COUNT_FOR_{}s5Error, the image size will larger than partition sizes -> {}Rgs$dd if=/dev/zero of={} bs=1 count={}
s-M {} -T {} -c {} -i "{}"
s -i "{}" -s "{}//" ::/
smformat smcopy Rhs\s -s {} {}
s truncate s -i "{}" -s "{}\\" ::/
s mformat.exe s
mcopy.exe s%CONFIG_AIC_LITTLEFS_BLOCK_SIZE_FOR_{}s$CONFIG_AIC_LITTLEFS_PAGE_SIZE_FOR_{}s-c {} -b {} -p {} -s {} {}
s mklittlefs smklittlefs.exe spage_{}k_block_{}k_oob_{}_s1-t {} -p {} -b {} -s {} -x auto -o 0 -f {} -d {}
smkuffs s mkuffs.exe s img{}_srcdiri(R Rt prj_root_dirR)R<>R
tenvironR<6E>R;R{R<>R_troundRDRERiR taic_script_dirR<72>RRR(Rtremove(%timg_idt
img_enablet fatfs_enabletlittlefs_enablet uffs_enabletmkfscmdt imgname_optR<74>timgsizetauto_optt
srcdir_optR<74>R<>tdata_siztauto_sizt
sector_siztclustert cluster_siztamp_sizet
sector_cntt
sector_optt sectcnt_opttempty_img_paramt mformat_paramt mcopy_paramttruncate_paramt
blksiz_opttblksizt pagesiz_opttpagesiztparamstrt nand_listtparamtoobsizt
blkpagecntt
partblkcnttprefix((sbC:\Users\guojun.dong\Desktop\release-check\Luban-Lite_V1.0.1_2023-08-29\tools/scripts/aic_build.pytmkimage_gen_mkfs_actiones<>  

  
"

  
 
  

    
    

 cCs9dddg}||kr%d}|S|datjj|d<00>atjj|d|<17>atjj|d|d|d <17>a|jd
d <00>}tjj|d |d <17>atjj|d|<17>} ttj d<t
jj | <00>ddl }
d }|dkr6d|kr6|t ||||||
j<00>7}ndtd} | dtd7} | dtd7} tj| <00>| d} dtd} | dtd7} | dtd7} tjjt<00>s<>tjt<00>ntj| <00>d } | td<00>7} | td<00>7} |dtddt|
jd 7}t|
jd!}td"}|dkr{d|kr{|d#|d$|d%7}nZt| <00>r<>|| 7}n|d#td&td%7}tj<00>d'kr<>td(}ntj<00>d)kr<>td*}ntd+}td,}|d-|d|d%}tjjtd+<17>r=||7}nttd.<00>ri|d#td/td%7}ntj<00>d'kr<>td0}ntj<00>d)kr<>td1}ntd}|d-|d2td%}||7}tjj|<00>}tjjt<00>}tjjt<00>}| }|jd3d4<00>}|j|d5<00>}|j|d5<00>}|jd6d<00>}| }|jd3d7<00>}|jtd8<00>}|j|d9<00>}|j|d:<00>}|j|d:<00>}|jd6d<00>}|}|jd%d<00>}|jd3d4<00>}|jd;d<<00>}|jtd=<00>}|j|d><00>}|j|d5<00>}|j|d5<00>}|jd6d<00>}|}|jd%d<00>}|jd3d7<00>}|jd;d?<00>}|jtd=<00>}|j|d><00>}|j|d:<00>}|j|d:<00>}|jd6d<00>}|tj d@<|tj dA<|tj dB<|tj dC<|d7}|S(DNtd21xtd13xt aic1606sps6@echo
@echo Luban-Lite is built successfully
@echo
R<EFBFBD>stools/scripts/sbsp/artinchip/sys/starget/s/pack/R'R%soutput/s/images/s./bsp/artinchip/sys/t PRJ_OUT_DIRi<52><69><EFBFBD><EFBFBD>RsR<>spython3 sgen_partition_table.pys -c simage_cfg.jsons -o spartition_table.hR<68>sgen_partition_file_list.pyspartition_file_list.hiislinked_size.pys -m s.map
s.binsbootloader.bins@cp -r R<>s
s* Rgsmk_private_resource.pyRhsmk_private_resource.exes ddr_init.jsons ddr_init.bins -v -c s*.pbps/*.pbp s mk_image.pys mk_image.exes -d tpython3s8${ProjDirPath}/../../../tools/env/tools/Python39/python3s${ProjDirPath}/../../..s\s%${ProjDirPath}/tools/Python39/python3s${ProjDirPath}/tools/scripts/s${ProjDirPath}/tools/scriptss${ProjDirPath}s@cps.${ProjDirPath}/../../../tools/env/tools/bin/cps${ProjDirPath}/Debug/s${ProjDirPath}/Debugs${ProjDirPath}/tools/bin/cpteclipse_pre_buildteclipse_post_buildteclipse_sdk_pre_buildteclipse_sdk_post_build(R<>R
RR(R<>taic_common_dirt aic_pack_dirR)R{R<>RDR:Rttmkimage_xip_postactiontOBJCPYR RtmakedirsRR<>R;RiR<>R<>(R*R2R3R4R5RcR<>t POST_ACTIONRzR}RttCMDt
PRE_ACTIONt MKFS_ACTIONt
SOURCE_BINt
TARGET_BINt MAKE_DDR_TOOLtDDR_JSONtDDR_BINtMAKE_DDR_ACTIONt MAKE_IMG_TOOLtIMG_JSONtMAKE_IMG_ACTIONt
aic_root_nt prj_out_dir_ntaic_script_dir_nR!R#R"R$((sbC:\Users\guojun.dong\Desktop\release-check\Luban-Lite_V1.0.1_2023-08-29\tools/scripts/aic_build.pytmkimage_prebuild<6C>s<> 
%  % 
 %
    

   

    
s<>
No project information
You can start one project by following commands
scons --list-def
scons --apply-def=<chip>_<board>_<kernel>_<app>_defconfig
scons
cCs<>t|<00>t|<00>tjj|d<00>}tjj|<00>sMtGHtd<00>nt|<00>tjj|d<00>}tjj|<00>s<>t jj
tjj|d<00><00>ddl m }|d<00>ndS(Ns.configis
rtconfig.hskernel/rt-thread/toolsi<73><69><EFBFBD><EFBFBD>(RC( RZRbR
RR(Rt noprj_msgRERMRDR:RHRC(R*RRC((sbC:\Users\guojun.dong\Desktop\release-check\Luban-Lite_V1.0.1_2023-08-29\tools/scripts/aic_build.pytchk_prj_config_s

 
cCstg}x]tj|<00>D]L\}}}||kr5Pnx*|D]"}|dkr<|j|<00>q<q<WqW|j<00>|S(NR8(R
R9R:R<(ttdirRR>R?R@RY((sbC:\Users\guojun.dong\Desktop\release-check\Luban-Lite_V1.0.1_2023-08-29\tools/scripts/aic_build.pyR<79>vs   
cCseg}xNtj|<00>D]=\}}}||kr5Pnx|D]}|j|<00>q<WqW|j<00>|S(N(R
R9R:R<(R=RR>R?R@RY((sbC:\Users\guojun.dong\Desktop\release-check\Luban-Lite_V1.0.1_2023-08-29\tools/scripts/aic_build.pyt get_all_board<72>s  
cCstg}x]tj|<00>D]L\}}}||kr5Pnx*|D]"}|dkr<|j|<00>q<q<WqW|j<00>|S(Ntcommon(R
R9R:R<(R=RR>R?R@RY((sbC:\Users\guojun.dong\Desktop\release-check\Luban-Lite_V1.0.1_2023-08-29\tools/scripts/aic_build.pytget_all_kernel<65>s   
cCseg}xNtj|<00>D]=\}}}||kr5Pnx|D]}|j|<00>q<WqW|j<00>|S(N(R
R9R:R<(R=RR>R?R@RY((sbC:\Users\guojun.dong\Desktop\release-check\Luban-Lite_V1.0.1_2023-08-29\tools/scripts/aic_build.pyt get_all_app<70>s  
c
Cstjj|d<00>}d}dat||<00>}|dkr@tS|jdd<00>} tjj|d| d<17>atd|d|d 7at|d
t|d 7at|d t|d 7atdt|ddt|ddt|d7atd|d|d7atS(Ns.configtCONFIG_AIC_XIPR%R'soutput/s/images/s@echo t-s: make XIP iamge begin...
sZ -O binary -j .text -j .eh_frame_hdr -j .eh_frame -j .gcc_except_table -j .rodata $TARGET s
.text.bin
s) -O binary -j .ram.code -j .data $TARGET s
.data.bin
scat s .text.binR<6E>s .data.bins > s.bin
s: make XIP iamge done...
(R
RR(tXIP_POST_ACTIONRRR)R{(
R*R2R4R5Rctrtconfig_objcpyR+tkey_xiptAIC_XIPRz((sbC:\Users\guojun.dong\Desktop\release-check\Luban-Lite_V1.0.1_2023-08-29\tools/scripts/aic_build.pyR'<00>s 6cCs<>tjj|d<00>}d}d}d}d}d}t||<00>}|dkrldj||<00>GHtd<00>n|jd d
<00>}tjj|d <00>}t|<00>} || kr<>d j|<00>GHtd<00>nt||<00>}
|
dkr<>dj||<00>GHtd<00>n|
jd d
<00>}
tjj|d |<00>}t |<00>} |
| kr\d j|
<00>GHtd<00>nt||<00>} | dkr<>dj||<00>GHtd<00>n| jd d
<00>} tjj|d<00>}t
|<00>} | | kr<>dj| <00>GHtd<00>nt||<00>}|dkr(dj||<00>GHtd<00>n|jd d
<00>}| dkrOd}nd}tjj|d|<00>}t |<00>}||kr<>dj|<00>GHtd<00>nt |<00>}t||<00>}|r<>|jd d
<00>}nd
}|}t |||
| ||<00>t|||
| ||<00>t|||
| ||<00>t|||
| ||<00>t|||
| ||<00>t|||
| ||<00>t|||
| ||<00>t|||
| ||<00>t|||
| ||<00>t|||
| ||<00>}||
| ||||fS(Ns.configR R!R"R#tCONFIG_PRJ_CUSTOM_LDSs5Get {} in {} fail, please check your configuration!!!iR$R%R7s;Chip name {} is invalid, please check your configuration!!!s<Board name {} is invalid, please check your configuration!!!tkernels=Kernel name {} is invalid, please check your configuration!!!RsR
t applications:App name {} is invalid, please check your configuration!!!(R
RR(RRR RER)R<>R>R@RAR6ReR~RlR<>R<>R<>R<>R<>R<>R:(R*R+R-R.R/R0tkey_ldstPRJ_CHIPRR<>t PRJ_BOARDtboardst
PRJ_KERNELtkernelstPRJ_APPtappstPRJ_DEFCONFIG_NAMEt
custom_ldstPRJ_CUSTOM_LDStMKIMAGE_POST_ACTION((sbC:\Users\guojun.dong\Desktop\release-check\Luban-Lite_V1.0.1_2023-08-29\tools/scripts/aic_build.pytget_prj_config<69>s<>                       (2R
R<>RDRiRFt SCons.Scriptt COLOR_BEGINRRRRRRRR RRR6RBRKRLRMRZRbReRlR~R<>R<>R<>R<>R<>R<>R<>R<>R<>R<>R<>R<>R<>RR:R;R<R<>R>R@RAR'RW(((sbC:\Users\guojun.dong\Desktop\release-check\Luban-Lite_V1.0.1_2023-08-29\tools/scripts/aic_build.pyt<module>sb     



        
   . <09>   "        t <09>