.. _firmware-downloader: 用户程序烧录 =============================== .. _Boot ROM说明: ../user-guide/brom.html .. note:: 前置知识: `Boot ROM说明`_ 准备工作 ------------------------------- 1. 串口硬件连接: 使用支持半双工通信的串口模块,连接SPV1x的GPIO06。通常只需要连接双方的GND和TRX信号线。 如果串口模块的IO需要额外的参考电压,则将串口模块的参考电压引脚连接至SPV1x的IOVCC。 2. 设置SPV1x进入升级状态: 两种实现方式:(A) 先拉低GPIO06,然后进行SPV1x上电,上电后释放GPIO06。(B) 通过置位软件升级请求标志位,然后软件复位,让SPV1x进入升级状态。 上位机使用说明 ------------------------------- 1. 主界面描述 .. image:: ../_static/odt-main.png :align: center 2. 下载配置界面描述 在主界面下,点击菜单栏的“配置”,选择“下载参数配置”,即可打开下载配置界面。 a. “通用”选项卡 .. image:: ../_static/odt-window-general.png :align: center :width: 512px “通用”选项卡下有“数据分片”设置。由于APP数据比较大,在下载的过程中,需要将APP按一定大小切片为数据片,然后逐数据片进行下载。 通常,数据片的大小越大,程序的下载速度越快,但下载出错的可能性也越大。 b. “串口下载”选项卡 .. image:: ../_static/odt-window-serial.png :align: center :width: 512px “串口下载”选项卡下有“波特率”设置。通常,波特率越大,下载速度越快,但下载出错的可能性也越大。“波特率”下拉列表中已内置了常用的波特率, 用户也可以直接输入特定的波特率数值。 c. 其他选项卡 .. image:: ../_static/odt-window-misc.png :align: center :width: 512px “其他”选项卡内容暂时为空。 3. 固件加密界面描述 在主界面下,点击菜单栏的“工具”,选择“固件加密”,即可打开固件加密界面。 .. image:: ../_static/odt_encrypt.png :align: center :width: 512px 固件加密会将CPU的指令代码部分进行加密。加密秘钥格式为十六进制的32bit数据,如“0x1357acdf”(可省去“0x”前缀,字母不区分大小写)。 4. 读取设置界面描述 在主界面下,点击“读取”按钮,即可打开读取设置界面。 .. image:: ../_static/odt-window-select.png :align: center :width: 512px 5. 固件下载操作 a. 选择要下载的固件。 从APP下拉列表中选择需要下载的程序,或者使用“载入”按钮从磁盘选择一个程序。 b. 选择“仅升级CPU数据”或“升级整个APP”。 APP由CPU代码和资源数据组成。首次下载建议选择“升级整个APP”,后续如果只更改程序代码,生成新的APP时,就可以选择“仅升级CPU数据”,以节省下载时间。 c. 选择下载用的串口。 d. 如果芯片flash的接线为半双工方式,则勾选“半双工flash”选项。 e. 点击“下载”按钮。 6. 固件读取操作 a. 如果芯片flash的接线为半双工方式,则勾选“半双工flash”选项。 b. 点击主界面的“读取”按钮 c. 在读取设置界面中,输入起始地址和数据长度信息,并选择对应的文件以容纳读取的数据。 d. 点击读取设置界面的“确认”按钮 注意事项 -------------------------------- 1. 常见下载失败原因 a. 串口硬件连接错误。 处理方式:检查硬件连接。 b. SPV1x未进入升级状态。 处理方式:尝试再次让SPV1x进入升级状态。 c. 上位机串口号选择错误。 处理方式:确认选择的串口号为连接SPV1x的串口。 d. 下载波特率过大。 处理方式:尝试降低下载波特率。 e. 数据切片大小过大。 处理方式:尝试减小数据切片大小。 f. 芯片flash的接线方式与“半双工flash”选项不一致。 处理方式:尝试更改“半双工flash”选项后再下载。 2. 关于半双工串口模块 SPV1x下载过程的通信,只用到GPIO06这一个引脚通信,数据的发送和接收都在这个引脚上进行。 因此,外部串口模块也需要支持仅用1个引脚进行串口的发送和接收。为了防止信号的冲突,还要求串口模块在不发送数据时,模块一直处于接收状态。 此外,不同厂家的串口模块,支持的波特率上限不一样(有些串口模块最高只支持1M的波特率)。在相同波特率下,各厂家的波特率误差也不同。 3. 下载过程中,由于flash的擦除较为耗时,上位机进度条可能在0%处停留几秒,属于正常现象。 4. 在进行上电进入下载模式这个操作时,要确保上电前,芯片处于掉电状态。如果芯片断电前进入了低功耗模式,那么芯片从断电到完成掉电过程会需要较长的时间(需要数秒钟)。可以在芯片断电后,通过手动给VCC电容放电(强制掉电),或者按一下唤醒按键,加速芯片的掉电。 5. 不同版本上位机略有差别,请以实际使用的上位机版本为准。