通过CLI向PSoC 4的用户闪存区域写数据 – KBA218846

Version 1

    Version: **

     

    问题:应该怎样通过命令行接口(Command-Line Interface, CLI)将我的数据写入PSoC 4的用户闪存区域?

    答案:使用CLI,您可以将定制的数据写入PSoC 4内部存储空间的用户闪存区域(0x00000000~0x00007FFF)的指定行。数据可以是定制的唯一识别号,特殊的标志以及其它数据。PSoC Programmer Command-Line Interface (CLI) Guide介绍了用来完成所有操作的全部接口函数。

    写入操作需要如下图所示的硬件连接。

    Untitled.png

    为了在软件上挂载目标器件,首先需要打开命令行窗口。命令行窗口可以通过Start > Search program and Files > 输入 “cmd”的方式打开。右击cmd.exe然后使用管理员身份运行。然后您就可以使用如下所示的脚本将数据写入用户闪存区域的指定行(这里我们使用CY8CKIT-042为例)。

    [C:\Windons\system32]>cd C:\Program Files (x86)\Cypress\Programmer /*打开PSoC Programmer的安装路径。 */

    [C:\Program Files (x86)\Cypress\Programmer]>ppcli.exe /* 打开PSoC Programmer的命令行接口。 */

    >OpenPort KitProg/100F143503274400 . /* 打开用来挂载目标器件的端口。请根据您的设备使用正确的端口名,并且不要遗漏末尾的“ .” */

    >SetProtocol 8 /* 选择正确的接口协议, “8” 代表SWD协议。 */

    [>SetProtocolConnector 1] /* 在使用KitProg 时,这一步可以被省略; “0” 代表5-脚连接器,“1” 代表10-脚连接器。如果您使用的是MiniProg3,请根据实际硬件连接设置它。*/

    >SetPowerVoltage 5.0 /* 设置供电电压; “5.0” 代表5.0伏特。*/

    >DAP_Acquire /* 挂载目标器件 */

    >PowerOn /* 将电压应用到目标器件的VDD管脚. */

    >PSoC4_WriteRow 0x60 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x01 0x02 0x03 0x04 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x01 0x02 0x03 0x04 /* 将一行数据写到第0x60行。绝对起始地址等于行号×行大小;对于PSoC 4系列, 行大小都是0x80 在本例中,绝对起始地址是0x00003000 */

    >PSoC4_ReadRow 0x60 /* 读回数据来确定是否写正确。 */

    >PowerOff /* 告知编程器停止向目标器件供电。 */

    >ClosePort /* 关闭端口。*/

    >quit /* 退出ppcli.exe*/

    如果写入成功,将会如下截屏结果一致。

    注意,在写入成功后,原来的校验和将会变为“无效”。因此本例不适应于那些在写入数据前后需要周期性重复检查校验和的工程。

    将上述代码移植到FM0PSoC 1PSoC 3PSoC 5LP时需要一些很小的改动。对于PSoC 1PSoC 3PSoC 5LPPSoC Programmer已经提供了基于Perl脚本的相似解决方案。最新的PSoC Programmer Command-Line Interface (CLI) Guide已经扩展了对FM0的接口函数。参考PSoC Programmer中针对FM0PSoC 1PSoC 3PSoC 5LP相似解决方案。联络赛普拉斯的销售或技术支持部门获取更多信息。