ING918 系列芯片支持使用 IDE 或者专门的 JTAG/SWD 工具通过 SWD 接口进行批量烧写。具体操作步骤如下。

使用 Keil 量产

说明: 以下步骤介绍了烧写用 Keil 项目的具体创建方法,Keil μVision 4 或 5 皆适用。 用户可以按照步骤自行创建或者直接 下载(镜像)我们提供的示例。

环境需求

  • Keil μVision 4 或 5
  • 支持 SWD 接口的调试器(如 DAPLink/ULINK/J-Link 等)

准备项目

  1. 创建空白项目

    在 Keil 里新建一个项目,CPU 选为 INGCHIPS -> ING91800。项目创建完成后,确认不包含任何源代码(C 或汇编),如果有, 则将其删除。

  2. 修改项目的属性:

    • 将输出的可执行文件改为 platform_entry.hex (注意扩展名为 .hex)

      keil4_exe_name

    • 检查 Flash 烧写算法设置是否正确

      ING918 烧写算法已将 Erase 操作内置于 Program,所以不需要勾选“Erase”;一般情况下,为了提高量产速度,“Verify” 也可以不勾选。其它各设置的建议值如下图。

      keil5_settings

    • 确认选择了 SWD 端口而非 JTAG 端口(ING918 只有 SWD 端口,无 JTAG 端口)

  3. 复制 platform_entry.hex

    在 SDK 目录中找到与芯片型号对应的 platform_entry.hex,复制到 Keil 项目目录下。

    说明: 假设 SDK 的安装路径为 /ING_SDK,则 ING9188xx 系列芯片的 platform_entry.hex 存放于 /ING_SDK/sdk/bundles/typical/ING9188xx。
  4. 烧写测试

    在 Keil 里直接点击 Flash Download 按钮即可完成烧写。如果出现错误,请对照检查项目设置是否有误。

量产

量产时通过命令行调用 Keil 实现批量烧写:

C:\Keil\UV4\UV4 -f C:\project\platform\platform.uvproj

环境需求

手动添加芯片型号

说明: SDK 安装包暂时不能自动为 J-Link 添加 ING918 芯片支持包,用户需要手动完成。

假设 SDK 安装目录为 “/”,J-Link 安装目录为 “/SEGGER/JLink”。

  1. 更新 JLinkDevices.xml

    将 /sdk/flash/SEGFlash/JLinkDevices.xml 文件里 <Device></Device> 之间的一段内容粘贴到 /SEGGER/JLink/JLinkDevices.xml 文件末尾 </Database> 之前。

  2. 复制 Flash 烧写算法包

    将 /sdk/flash/SEGFlash/ 目录下 Ingchips 文件夹复制到 /SEGGER/JLink/Devices 目录。

创建 J-Flash 项目

打开 J-Flash,新建一个项目,Target Device 选为 ING9188xx。

target_ing9188xx

将要写入产品的 platform_entry.hex 拖入 J-Flash 界面。点击 Target -> Connect 菜单, 然后点击 Target ->Manual Programming -> Program,即可将 platform_entry.hex 烧写到产品。

注意: J-Flash 需要注册方可使用全部功能。

合并数据

为了量产方便,可以通过 File -> Merge data file 菜单将前文挺到的将 platform_entry.hex 和产品固件合并 为一个 hex 数据文件。

量产

量产时通过命令行调用 J-Flash 实现批量烧写。

使用其它 IDE 进行量产

IAR Embedded Workbench for ARM

参考 Programming binary file(s) into flash

Rowley CrossWorks / SEGGER Embedded Studio

在项目选项中把 platform_entry.hex 作为额外需要下载的文件即可。

extra_bin

hex 文件说明

SDK 提供关于 platform 的三个 hex 文件,各自的用途总结如下:

  • platform.hex:用于产品研发、调试过程中 SDK 的升级;

  • platform_entry.hex:将芯片用于研发、调试时的首次烧写;

  • platform_entry_lock.hex:用于产品最终量产(启用 IP 保护)。