4.1.2.2 执行(E)
PWLINK2 / PWLNIK2 Lite 设备不支持离线项目的加载 / 读取 / 读取离线错误码功能,当连接这类设备时,这三个功能将禁用,请留意。
执行菜单中的所有功能,均在快捷工具栏上有对应的按键功能,可通过工具栏进行快捷操作。
执行功能包含了 PowerWriter 绝大部分的操作,包括项目文件的离线加载和读回,在线对目标芯片进行读写操作等操作,功能界面如下图所示:
4.1.2.2.0 离线加载
PWLINK2 (Lite) 不支持此功能!
通过离线加载功能,将PowerWriter 的配置数据,保存为PowerWriter 项目文件,并加载到设备中,加载完成后,即可脱机烧录,演示流程如下所示:
如加载时未保存到项目文件,则会提示保存项目到磁盘,详见离线读取与加载.
如需要启动脱机烧录,请断开PowerWriter 与设备的连接!
4.1.2.2.1 离线读取
PWLINK2 (Lite) 不支持此功能!
离线读取功能,可将设备当前选择的项目文件读回,读回项目文件时,无法读回项目密码,如项目文件为加密项目,仍需要密码才可打开查看,操作流程如下所示:
读取文件时的细节描述见:离线读取与加载.
4.1.2.2.2 读取Program memory
通过读取 Program Memory 功能,可读取目标芯片的代码空间数据,读取时可设置读取地址,以及读取大小,数据读回来之后,可以将数据导出到磁盘,操作演示流程见如下所示:
执行此功能之前,必须保证目标芯片已连接,并未开启加密才能操作!更详细的操作流程,参考:读取芯片数据并保存。
4.1.2.2.3 查空Program memory
通过查空Program Memory 功能,可快速检查目标芯片是否为空白芯片,如检查芯片为空,则会提示查空成功,演示流程如下所示:
执行此功能之前,必须保证目标芯片已连接,并未开启加密才能操作!
4.1.2.2.4 擦除Program memory
执行此功能之前,必须保证目标芯片已连接,并未开启加密才能操作!如需执行擦除指定页面,请在Program Memory 页面执行:擦除选中页面
擦除Program memory 功能,可对目标芯片执行擦除,演示如下:
4.1.2.2.5 编程Program memory
执行此功能之前,必须保证目标芯片已连接,并未开启加密才能操作!
通过编程Program memory 功能,将用户加载的固件,写入到目标芯片代码空间,写入的数据来源,取决于以下两种情况:
当未添加芯片固件(bin、hex、s19、elf)文件时,将写入整个编辑器缓冲区的数据。
当添加了芯片固件文件时,写入的数据起始地址和大小,依赖于添加的文件,但数据来源仍然来源于编辑器缓冲区,这意味着有以下几种状态。
- 当添加文件时,数据将从文件复制到缓冲区,缓冲区中未保存的数据将会丢失。
- 当读取目标芯片数据时,数据将从目标芯片复制到缓冲区,此时可导出文件,如重新点击应用固件时,缓冲区数据将会覆盖。
- 当直接编辑缓冲区时,不会直接修改原始固件文件,编辑结束后点击编程Program memory,将修改后的缓冲区数据(与添加文件重叠的部分)写入到目标芯片。
操作演示流程如下所示:
提示缓冲区编辑器作为PowerWriter与目标芯片沟通的暂存态,在不同的场景下,灵活应用。
4.1.2.2.6 校验Program memory
- 执行此功能之前,必须保证目标芯片已连接,并未开启加密才能操作!
- 通过校验功能,可直接进行数据比对,而无需读取固件的校验值(CRC32、CheckSum)。
通过Program memory 校验功能,可比对当前加载的数据和目标芯片是否一致,校验之前,请先加载PowerWriter 项目或添加需要校验的芯片固件,用于比对,操作流程如下所示:
4.1.2.2.7 Program memory 自动编程
执行此功能之前,必须保证目标芯片已连接,并未开启加密才能操作!
Program memory 自动编程,将自动完成 代码空间 的擦除,编程,校验,详见 擦除Program memory、编程Program memory、校验Program memory,操作演示如下所示:
4.1.2.2.8 全功能自动编程
全功能自动编程,将自动根据当前的项目设置,完成,选项字节的写入,序列号的写入,Matirx 签名信息写入,自动选择擦除方式、自动完成所有数据编程、校验、以及完成烧录结束后的后续动作,比如复位芯片让其运行等一系列的流程,化繁为简,一步完成,在绝大多数时候,此功能均可实现在线一键编程,演示流程如下所示:
全功能自动编程,不支持插件功能、如UID限制、SN限制、工厂测试、部分特殊芯片定制插件,如STM32WB 协议栈升级、STM32H5 安全配置等扩展功能、如需执行扩展功能,请使用脱机烧录模式。
4.1.2.2.9 其他数据区操作
其他数据区为动态数据区,所有的芯片都有Program memory 区域(code flash ),除此之外,部分芯片还包含一些特定的存储区,比如EEPROM、USER DATA、OTP、BOOT等区域,虽然名称千奇百怪,但是功能却是一致的,主要分为三类存储区:
- 存储数据:EEPROM、USER DATA等
- 存储数据、并且只能单次编程:OTP
- 存储代码:BOOT、STACK、APP等
此区域的功能,操作同Program Memory 操作一致,除OTP 之外,均支持读取、查空、擦除、编程、校验等操作,下面选择不同的芯片,来演示动态标签页,以及功能,如下图所示:
OTP 不支持擦除: 意味着无法对同一地址进行重复编程,请留意!
4.1.2.2.10 复位目标芯片
对当前已连接的目标芯片执行复位操作,复位后将释放连接,以让目标芯片能够运行,目标芯片的复位,有多种模式可供选择,详见信号输出控制中复位方式的选择,见如下图所示:
4.1.2.2.11 读取选项字节
执行此功能之前,必须保证目标芯片已连接,并未开启加密才能操作!
通过此功能,可将当前目标芯片的选项字节,读回PowerWriter 应用,常用于检查当前芯片的配置,读保护,写保护等信息,操作演示如下所示:
选项字节在连接芯片时可能会自动读取,处理方法参考 选项字自动变化处理,在读写选项字节的过程中,可能会遇到读取失败的问题,参考 读写选项字节失败。
4.1.2.2.12 写入选项字节
执行此功能之前,必须保证目标芯片已连接,并未开启加密才能操作!
将当前选项字,写入到目标芯片,演示如下所示:
默认选项字的调整方法参考:调整默认选项字节,在读写选项字节的过程中,可能会遇到读取失败的问题,参考 读写选项字节失败。
4.1.2.2.13 读取CID
通过读取CID 接口,可读取当前目标芯片的ID 信息,并显示在日志栏中,如下所示:
不同的芯片ID地址并不一致,且存在无ID 的芯片,或者未公开ID 信息的芯片!
4.1.2.2.14 任意地址读数据
任意地址读取数据功能,可读取芯片内部非安全、隔离区域的数据、包括SRAM、Flash、外设寄存器等,操作演示如下所示:
隔离、安全区域的数据,需要特殊的操作才可以进行访问,当前暂未支持隔离区操作。
4.1.2.2.15 读取最后一次离线操作结果
PWLINK2 (Lite) 不支持此功能!
通过此功能,可查询PW200、PW300、PW400 等设备的最后一次离线操作结果,以便排查脱机烧录异常问题,演示如下所示:
此错误码,只有在执行新的脱机烧录时,才会覆盖更新,设备断电、在线编程操作并不会清除此错误码!