4.2. SDK工程编译下载说明

  • demo_DevKitBoard 工程为例,将准备好的 硬件环境 上电, 然后使开发板进入 下载模式

  • 在 CodeBlocks 界面中点击 build 或者 rebuild 进行编译 。

    Tip

    Makefile方式编译: 首先进入 tools 目录下, 双击 make_prompt 并输入 make demo_DevKitBoard

  • 编译成功后,固件会自动下载到开发板上,下载成功后会显示如下界面。

    *******************************************
                    AC791N SDK
    *******************************************
    2021/12/27 周一
    sdk
    sdk.elf:  file format ELF32-pi32v2
    Sections:
    Idx Name          Size      Address          Type
    0               00000000 0000000000000000
    1 .text         00013d60 0000000002000120 TEXT DATA
    2 .data         00000000 0000000004000000 DATA
    3 .bss          00000000 0000000004000000 BSS
    4 .ram0_data    00008570 0000000001c00000 TEXT DATA
    5 .ram0_bss     00003c84 0000000001c08570 BSS
    6 .boot_info    00000028 0000000001c7fd50 DATA
    7 .cache_ram_data 00000010 0000000001f28000 DATA
    8 .cache_ram_bss 00000000 0000000001f28010 DATA
    9 .debug_str    0000bff2 0000000000000000
    10 .debug_loc    00015d6b 0000000000000000
    11 .debug_abbrev 00000cca 0000000000000000
    12 .debug_info   0002e1a0 0000000000000000
    13 .debug_ranges 00002548 0000000000000000
    14 .debug_macinfo 00000001 0000000000000000
    15 .debug_pubnames 00006e5b 0000000000000000
    16 .debug_pubtypes 0000326f 0000000000000000
    17 .debug_frame  00003f8c 0000000000000000
    18 .debug_line   00020118 0000000000000000
    19 .debug_aranges 00000040 0000000000000000
    20 .shstrtab     00000100 0000000000000000
    21 .symtab       00045880 0000000000000000
    22 .strtab       00003ebd 0000000000000000
    text.bin
    data.bin
    ram0_data.bin
    cache_ram_data.bin
    已复制         1 个文件。
    SPI nor flash online.
    Online flash id: ef4017
    Online flash size: 8M
    Erase Falsh Size is 4096
    --------------------FLASH INFO--------------------
    |  PID : AC79_STORY                              |
    |  VID : 0.01                                    |
    |  FLASH_BIN_SIZE : 0x160000                     |
    |  FLASH_NEED_SIZE : 0x3ff000                    |
    |  FLASH_REAL_SIZE : 0x800000                    |
    |  VM_REAL_SIZE : 0x8000                         |
    |  VM_START_ADDR : 0x3ef000                      |
    |  VM_END_ADDR : 0x3f7000                        |
    |  BTIF_RESERVED_START : 0x3f7000                |
    |  BTIF_RESERVED_END : 0x3f8000                  |
    |  PROFILE_RESERVED_START : 0x3f8000             |
    |  PROFILE_RESERVED_END : 0x3f9000               |
    |  AISP_RESERVED_START : 0x3f9000                |
    |  AISP_RESERVED_END : 0x3fa000                  |
    |  EXIF_RESERVED_START : 0x3fa000                |
    |  EXIF_RESERVED_END : 0x3fb000                  |
    |  fixed.mp3_RESERVED_START : 0x3fb000           |
    |  fixed.mp3_RESERVED_END : 0x3ff000             |
    |  CODE_BOUNDARY_LINE : 0x1fa000                 |
    |  LAVE_SIZE : 0x9a000                           |
    |  ENTRY_ADDR : 0x2000120                        |
    |  ERASE MODE : NONE                             |
    --------------------------------------------------
    ISDdownload
    正在擦除VM的FLASH[0x3ef000-0x3f7000] .....
    .
    .
    .
    .
    ..
    [ 成功 ]
    正在擦除CODE2的FLASH[0x1fa000-0x1fb000] ....[ 成功 ]
    开始下载 ......
    no license
    下载完毕.
    设备重启中...
    

Caution

烧录过程中可能遇到的问题:
  1. 如果进入升级模式后电脑端不出现盘符或者报 USB 总线问题,可能是板子的 USB 线/座子焊接不良, 或者用户使用的 USB 连接线问题,甚至是和电脑的兼容性问题, 用户根据情况逐步排查

  2. 如果编译完成后出现提示如下,用户需要确保 tools 目录下的 isd_config_rule.c 文件填写的 FLASH_SIZE 与实际板子使用的 flash 大小一致。如果还是报错,考虑如下两方面解决: ①用户需要减少资源文件大小,如提示音等资源文件; ② 在 app_config.h 中设置宏 #define CONFIG_DOUBLE_BANK_ENABLE 0

    SPI nor flash online.
    Online flash id: ef4016
    Online flash size: 4M
    Erase Falsh Size is 4096
    错误:CODE0太大,CODE0大小为675840,分界线为499712,请调整代码或资源文件或VM大小
    
  3. 如果编译完成提示如下,但是串口没有出现打印(确保 SDK 配置串口打印引脚和波特率正常情况下),那么需要在 tools/ 目录下的 isd_config_rule.c 文件填写对应的 SDRAM 容量 SDRAM_SIZE 和 ENABLE_SDRAM=1; 如果没有 SDRAM 则 ENABLE_SDRAM=0

    ISDdownload
    正在擦除VM的FLASH[0x3ef000-0x3f7000] .....
    .
    .
    .
    .
    ..
    [ 成功 ]
    正在擦除CODE2的FLASH[0x1fa000-0x1fb000] ....[ 成功 ]
    开始下载 ......
    no license
    下载完毕.
    设备重启中...
    

Important

关于下载目录的几个说明(这个是非必要步骤):
  1. 以AC791N为例,默认下载目录:master/cpu/wl82/tools

  2. CodeBlocks 界面中点击 build 或者 rebuild 不是下载代码的唯一途径, 也可以通过直接双击下载目录中的download.bat进行下载

  3. 进行flash区域擦除、增加需要下载的资源文件(必须放在-res之后)、案子开发时加代理key文件,可以通过修改下载目录中的 download.c 进行配置,以擦除整个flash、增加 aaa.bin、加 xxx.key 为例,请参考如下 download.c 中的配置( devkitboard 工程默认开启了宏 CONFIG_SFC_ENABLE ):

#if !defined CONFIG_SFC_ENABLE

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 %AUDIO_RES% %UI_RES% %CFG_FILE% -reboot 500 %KEY_FILE% -update_files normal

#else

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_FILE% aaa.bin -reboot 500 %KEY_FILE% -update_files normal -key xxx.key

#endif

@REM 常用命令说明
@rem -format vm         // 擦除VM 区域
@rem -format all        // 擦除所有
@rem -reboot 500        // reset chip, valid in JTAG debug
@rem -key xxx.key       //加key文件
  • 固件下载成功之后,拔插usb下载线,重新上电或者按一下开发板顶板上电reset键, 串口有打印显示,恭喜你!!你已经成功了,成功踏上杰理SDK方案开发新征程。

Important

  1. demo_DevKitBoard 工程为例,开发板串口的 TX 默认为 PB3RX 默认接地。其他示例工程的串口配置需要参考其板级配置文件 board.c

  2. demo_DevKitBoard 工程串口的打印信息参考如下:

[00:00:00.100]========= system reset reason: SOFT =========

[00:00:00.100]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[00:00:00.100]   WL82(AC791N) CHIP_ID: 0x6f00  setup_arch Feb 22 2022 16:56:18
[00:00:00.100]sys_clk = 320000000,sdram_clk = 192000000,hsb_clk = 160000000,lsb_clk = 53333333, sfc_clk = 80000000
[00:00:00.100]CODE+CONST SIZE = 1026368
[00:00:00.100]SDRAM_SIZE = 8388608, DATA_SIZE = 9776,BSS_SIZE = 320164,REMAIN_SIZE = 8058668
[00:00:00.100]RAM_SIZE = 523600,DATA_SIZE = 45544,BSS_SIZE = 33424,REMAIN_SIZE = 444632
[00:00:00.100]CACHE_RAM_SIZE = 0,DATA_SIZE = 0, BSS_SIZE = 0,REMAIN_SIZE = 0
[00:00:00.100]HEAP_SIZE = 8058592
[00:00:00.100]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~