跳到主要内容
版本:Next

4.1.2.2 执行(E)

警告

PWLINK2 / PWLNIK2 Lite 设备不支持离线项目的加载 / 读取 / 读取离线错误码功能,当连接这类设备时,这三个功能将禁用,请留意。

提示

执行菜单中的所有功能,均在快捷工具栏上有对应的按键功能,可通过工具栏进行快捷操作。

执行功能包含了 PowerWriter® 绝大部分的操作,包括项目文件的离线加载和读回,在线对目标芯片进行读写操作等操作,功能界面如下图所示:

image-20251219110009554

4.1.2.2.0 加载工程到设备

警告

PWLINK2 (Lite) 不支持此功能!

通过离线加载功能,将PowerWriter® 的配置数据,保存为PowerWriter® 项目文件,并加载到设备中,加载完成后,断开与PowerWriter®的连接即可脱机按键烧录,演示流程如下所示:

offline

提示

如加载时未保存到项目文件,则会提示保存项目到磁盘。

如需要启动脱机烧录,请断开PowerWriter® 与设备的连接!

4.1.2.2.1 从设备读取工程

警告

PWLINK2 (Lite) 不支持此功能!

离线读取功能,可将设备当前选择的项目文件读回,读回项目文件时,无法读回项目密码,如项目文件为加密项目,仍需要密码才可打开查看,操作流程如下所示:

read_back

4.1.2.2.2 从设备读取工程摘要

警告

PWLINK2 (Lite) 不支持此功能!

旧版本PW200和PW300没有屏幕,可以通过从设备中读取工程摘要确认设备中的项目信息,(PWX1和PW200_OLED直接通过屏幕确认项目信息即可)读回的项目信息包含

  • 是否禁止从设备读回工程
  • 添加文件数量
    • 文件0:地址,大小,crc32,checksum
    • 文件1:地址,大小,crc32,checksum

操作流程如下所示:

abstract

4.1.2.2.3部署项目到云平台

可以将配置好的项目发布到云平台,将固件云交付给第三方客户,实现权限控制以及提高方案交付效率。具体的创芯工坊云平台流程见此章节描述创芯工坊云平台

4.1.2.2.4 读取Program memory

通过读取 Program Memory 功能,可读取目标芯片的代码空间数据,读取时可设置读取地址,以及读取大小,数据读回来之后,可以将数据导出到磁盘,操作演示流程见如下所示:

GIF 2024-5-23 15-01-00

提示

执行此功能之前,必须保证目标芯片已连接,并未开启加密才能操作!更详细的操作流程,参考:读取芯片数据并保存

4.1.2.2.5 查空Program memory

通过查空Program Memory 功能,可快速检查目标芯片是否为空白芯片,如检查芯片为空,则会提示查空成功,演示流程如下所示:

GIF 2024-5-23 15-04-22

提示

执行此功能之前,必须保证目标芯片已连接,并未开启加密才能操作!

4.1.2.2.6 擦除Program memory

提示

执行此功能之前,必须保证目标芯片已连接,并未开启加密才能操作!如需执行擦除指定页面,请在Program Memory 页面执行:擦除选中页面

擦除Program memory 功能,可对目标芯片执行擦除,演示如下:

GIF 2024-5-23 15-14-52

4.1.2.2.7 编程Program memory

提示

执行此功能之前,必须保证目标芯片已连接,并未开启加密才能操作!

通过编程Program memory 功能,将用户加载的固件,写入到目标芯片代码空间,写入的数据来源,取决于以下两种情况:

  • 当未添加芯片固件(bin、hex、s19、elf)文件时,将写入整个编辑器缓冲区的数据。

  • 当添加了芯片固件文件时,写入的数据起始地址和大小,依赖于添加的文件,但数据来源仍然来源于编辑器缓冲区,这意味着有以下几种状态。

    • 当添加文件时,数据将从文件复制到缓冲区,缓冲区中未保存的数据将会丢失。
    • 当读取目标芯片数据时,数据将从目标芯片复制到缓冲区,此时可导出文件,如重新点击应用固件时,缓冲区数据将会覆盖。
    • 当直接编辑缓冲区时,不会直接修改原始固件文件,编辑结束后点击编程Program memory,将修改后的缓冲区数据(与添加文件重叠的部分)写入到目标芯片。

    操作演示流程如下所示:

    GIF 2024-5-23 15-28-51

    提示

    缓冲区编辑器作为PowerWriter®与目标芯片沟通的暂存态,在不同的场景下,灵活应用。

4.1.2.2.8 校验Program memory

提示
  • 执行此功能之前,必须保证目标芯片已连接,并未开启加密才能操作!
  • 通过校验功能,可直接进行数据比对,而无需读取固件的校验值(CRC32、CheckSum)。

通过Program memory 校验功能,可比对当前加载的数据和目标芯片是否一致,校验之前,请先加载PowerWriter® 项目或添加需要校验的芯片固件,用于比对,操作流程如下所示:

GIF 2024-5-23 15-53-41

4.1.2.2.9 Program memory 自动编程

提示

执行此功能之前,必须保证目标芯片已连接,并未开启加密才能操作!

Program memory 自动编程,将自动完成 代码空间 的擦除,编程,校验,详见 擦除Program memory编程Program memory校验Program memory,操作演示如下所示:

GIF 2024-5-23 16-19-19

4.1.2.2.10 全功能自动编程

全功能自动编程,将自动根据当前的项目设置,完成,选项字节的写入,序列号的写入,Matirx 签名信息写入,自动选择擦除方式、自动完成所有数据编程、校验、以及完成烧录结束后的后续动作,比如复位芯片让其运行等一系列的流程,化繁为简,一步完成,在绝大多数时候,此功能均可实现在线一键编程,演示流程如下所示:

GIF 2024-5-23 16-48-06

警告

全功能自动编程,不支持插件功能、如UID限制、SN限制、工厂测试、部分特殊芯片定制插件,如STM32WB 协议栈升级、STM32H5 安全配置等扩展功能、如需执行扩展功能,请使用脱机烧录模式。

4.1.2.2.11 其他数据区操作

其他数据区为动态数据区,所有的芯片都有Program memory 区域(code flash ),除此之外,部分芯片还包含一些特定的存储区,比如EEPROM、USER DATA、OTP、BOOT等区域,虽然名称千奇百怪,但是功能却是一致的,主要分为三类存储区:

  • 存储数据:EEPROM、USER DATA等
  • 存储数据、并且只能单次编程:OTP
  • 存储代码:BOOT、STACK、APP等

此区域的功能,操作同Program Memory 操作一致,除OTP 之外,均支持读取、查空、擦除、编程、校验等操作,下面选择不同的芯片,来演示动态标签页,以及功能,如下图所示:

GIF 2024-5-23 17-27-08

警告

OTP 不支持擦除: 意味着无法对同一地址进行重复编程,请留意!

4.1.2.2.12 复位目标芯片

对当前已连接的目标芯片执行复位操作,复位后将释放连接,以让目标芯片能够运行,目标芯片的复位,有多种模式可供选择,详见信号输出控制中复位方式的选择,见如下图所示:

image-20240523173700841

4.1.2.2.13 读取选项字节

提示

执行此功能之前,必须保证目标芯片已连接,并未开启加密才能操作!

通过此功能,可将当前目标芯片的选项字节,读回PowerWriter® 应用,常用于检查当前芯片的配置,读保护,写保护等信息,操作演示如下所示:

GIF 2024-5-23 18-37-45

4.1.2.2.14 写入选项字节

提示

执行此功能之前,必须保证目标芯片已连接,并未开启加密才能操作!

将当前选项字,写入到目标芯片,演示如下所示:

GIF 2024-5-23 18-50-57

4.1.2.2.15 读取CID

通过读取CID 接口,可读取当前目标芯片的ID 信息,并显示在日志栏中,如下所示:

GIF 2024-5-23 17-38-10

提示

不同的芯片ID地址并不一致,且存在无ID 的芯片,或者未公开ID 信息的芯片!

4.1.2.2.16 任意地址读数据

任意地址读取数据功能,可读取芯片内部非安全、隔离区域的数据、包括SRAM、Flash、外设寄存器等,操作演示如下所示:

GIF 2024-5-23 17-54-12

提示

隔离、安全区域的数据,需要特殊的操作才可以进行访问,当前暂未支持隔离区操作。

4.1.2.2.17 读取最后一次离线操作结果

警告

PWLINK2 (Lite) 不支持此功能!

通过此功能,可查询PW200、PW300、PW400 等设备的最后一次离线操作结果,以便排查脱机烧录异常问题,演示如下所示:

GIF 2024-5-23 17-45-31

危险

此错误码,只有在执行新的脱机烧录时,才会覆盖更新,设备断电、在线编程操作并不会清除此错误码!

4.1.2.2.18 读取目标芯片自定义信息

详细使用方法,请参考:5.8:动态固件校验信息 | PowerWriter文档中心

4.1.2.2.19 读取目标芯片校验码

image-20260825135125106

image-20260825113259876

Flash 校验码读取功能,可实现统计目标芯片数据的 CRC32 / CHECKSUM 信息,此过程一次性完成,无需多步进行操作,显示的结果包含:

  • 每一个区域的地址,区域大小,区域数据的CRC32,区域数据的CHECKSUM 信息
  • 所有区域的累计大小,累计CRC32,累计CHECKSUM 信息。
提示

目前不包含选项字节的checksum 信息,如需校验选项字节,请直接读取选项字节,读取完成后,将显示选项字节数据的校验信息。

警告

如果基于此功能来判断量产烧录结果数据的准确性,数据的一致性,需要满足以下条件:

  • 量产结束后,芯片没有开启读保护,确保芯片数据可读取。
  • 所有读取数据的区域中,不包含序列号,签名,自定义动态配置数据等属性,如包含动态数据,将导致每一颗芯片的校验值有差异,无法作为编程成功的参考依据

4.1.2.2.19.1 基于Flash区域

基于Flash 区域,将会自动读取 program memory、OTP、EEPROM、USER DATA等所有的可编程Flash 区域,操作方法:选择基于此选项之后,然后点击开始按钮,等待读取结束,将会在日志栏中显示,所有区域独立的校验信息,以及所有区域合并的校验信息,如下图所示:

image-20260825114418723

4.1.2.2.19.2 基于导入的文件

基于导入的文件,将会自动读取根据添加的烧录烧录文件地址和大小作为参考进行读取,操作方法:选择基于此选项之后,然后点击开始按钮,等待读取结束,将会在日志栏中显示,所有区域独立的校验信息,以及所有区域合并的校验信息,如下图所示:

image-20260825115048889

4.1.2.2.19.3 自定义

在自定义读取的操作模式中,用户可以自行填写读取的地址和大小,填写完成之后,点击读取,将会读取对应区域的数据,计算结果,输出到日志中,如下所示:

image-20260825115347806

配置文件格式参考:

{
"regions" :
[
{
"address" : "0x08000000",
"size" : "0x1000"
},
{
"address" : "0x08001000",
"size" : "0x1234"
},
{
"address" : "0x08003000",
"size" : "0x6000"
},
{
"address" : "0x20000000",
"size" : "0x1200"
}
],
"version" : 1
}
提示

自定义数据的操作方法:

  • 添加方法:点击新建按钮,将会在列表框中新建一条记录,并定位到地址栏,请输入16进制地址,输入完成后,键盘点击回车(Enter)按键或者 TAB 按键 切换到大小栏,紧接着输入读取大小(同样为16进制),输入完成后,输入回车键结束输入。
  • 删除方法:点击左侧列表栏中的地址,然后再点击删除按钮,将删除当前的条目。
  • 导出方法:编辑完成后,点击导出将导出json 的配置文件。
  • 导入方法:点击导入按钮,选择对应的json 文件,进行导入。
警告
  • 自定义读取列表中,不允许存在重叠的区间,如果重叠将无法添加。
  • 自定义读取操作模式中,不做任何地址和大小限制,除了读Flash,也支持读取SRAM,或者是外设寄存器,厂家配置数据区域等。