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

说明:下文以 ING918 为例说明,ING916 类似。

使用 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 添加芯片支持包。如果无法在找到 INGCHIPS 系列芯片,那么请手动添加。

手动添加芯片型号

v6.80 ~ v7.60

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

  1. 更新 JLinkDevices.xml (#abc)

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

  2. 复制 Flash 烧写算法包

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

v7.62 及以上

假设当前 Windows 用户名为 TonyStark,进入目录 C:\Users\TonyStark\AppData\Roaming\SEGGER (以下简记为 USER_SEGGER):

  1. 准备目录

    • 检查这个目录下是否存在“JLinkDevices”文件夹,如果没有,则创建它;

    • 进入“JLinkDevices”,检查是否存在“Devices”文件夹,如果没有,则创建它;

  2. 更新 JLinkDevices.xml

    • 如果 USER_SEGGER\JLinkDevices 目录下没有 JLinkDevices.xml 文件, 则直接将 /sdk/flash/SEGFlash/JLinkDevices.xml 文件复制到 USER_SEGGER\JLinkDevices 目录

    • 如果有 JLinkDevices.xml 文件,将 /sdk/flash/SEGFlash/JLinkDevices.xml 文件里 <Device></Device> 之间的一段内容粘贴到 USER_SEGGER\JLinkDevices/JLinkDevices.xml 文件末尾 </Database> 之前。

  3. 复制 Flash 烧写算法包

    将 /sdk/flash/SEGFlash/ 目录下 Ingchips 文件夹复制到 USER_SEGGER\JLinkDevices\Devices 目录

最终得到的 USER_SEGGER\JLinkDevices 目录结构如下图:

└── JLinkDevices
    ├── Devices
    │   └── Ingchips
    │       ├── ING91600
    │       │   ├── ...
    │       └── ING91800
    │           └── ...
    └── JLinkDevices.xml

创建 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 的升级;可用于全新的 ING916 芯片的首次烧写;

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

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

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