发 帖  
原厂入驻New
[问答] 怎么使用ipecmd.sh编程序列号
181 Intel PICKIT3
分享
你好。我需要在工厂里为我的设备编程一个序列ID。我不能使用SQTP,因为id来自系统的另一个部分,所以我尝试使用ipecmd.sh直接使用pickit3来编程我们为标识符分配的地址。为了对串行id进行编程,我创建了一个intel十六进制文件,该文件只寻址我的id的位置。例如,我的串行id位于字节地址0x13f00(16位地址0x9F80),我在那里分配了64个字节来保存id。加载器,这些地址被0xff占用,所以应该可以用新的值写在这些地址上。000000000000000000000000091:103f30000000000000000000000000000000000081:00000001FF当我尝试编程这个十六进制文件时,我从ipecmd.jar得到一个返回代码7。我想知道ipecmd.jar的返回代码意味着什么,因为这可能帮助我调试我的问题。对ipecmd.jar的调用是这样的:这个会话的ipecmd输出是:日志记录位置被设置为默认*****************************************************连接到MPLAB PICkit3...当前在PICkit 3Firmware套件版本上加载的固件.....01.51.06Firmware类型..............dsPIC33E/24ETarget电压检测目标设备dsPIC33EP256GP502找到。设备ID修订=4009编程...以下存储区域将被编程:程序存储器:起始地址=0x0结束地址=0x2afebFaiLEDtoprogrammingdeviceProgrammingTargetFailed.ipecmd以代码7结束,我对十六进制文件的格式也很好奇。我假设我只需要保持它的字节,我想编程,但有其他信息需要在文件中吗?很想知道,谢谢!吉姆
0
2020-3-30 09:12:46   评论 分享淘帖 邀请回答

相关问题

7个回答
十六进制文件中的地址应该是DSPIC/PIC24的实际地址的两倍。
2020-3-30 09:29:42 评论

举报

是的,我知道这一点。HEX文件中的字节地址为0x13F00,对应于字地址0x9F80。
2020-3-30 09:44:50 评论

举报

试着先用-ON######、#####对序列号十六进制文件进行编程,然后用-OP############选项对主十六进制文件进行编程,即保留已经编程的序列号位置。
2020-3-30 09:55:56 评论

举报

是的,这不起作用。如果我先尝试对序列号进行编程,像这样:然后我用这个命令把一切都转储到一个文件中:没有进行任何编程。我注意到编程命令没有产生多少输出:通常它多说了很多,所以我试着将-E添加到编程命令中。还有:尽管如此,该部分的转储内容没有显示出我正在尝试编程的十六进制文件的内容的证据。编程代码(工作)和序列号之间的唯一区别就是十六进制文件的内容。我仍然怀疑我需要把其他的东西放进序号。
2020-3-30 10:11:51 评论

举报

更新:我让它工作了,但是非常不理想。这个命令成功地对序列号进行了编程,同时删除了其他所有内容。基本上,告诉ipecmd要编程到什么范围是没有意义的,因为十六进制文件会处理这个问题:然后我可以用这个命令对引导加载程序进行编程:它保护在我指定的序列号位置周围的512字节区域,因此现在我的代码正在运行,序列号在plac中。e.问题是,512字节的区域被保护起来不被使用,这对于宝贵的闪存空间来说是有意义的浪费,因为我只需要64字节的id就可以了。我仍然认为必须有另一种方式可以做到这一点。如果引导加载程序是先编程的,那么它将0xff放入所有未使用的位置。根据flash的工作方式(擦除为1,写为0),如果愿意,我可以对这个空间的一个字节进行编程。
2020-3-30 10:26:39 评论

举报

在编程之前,你不能用Healm插入序列号到你的主程序图像吗?
2020-3-30 10:42:40 评论

举报

是的,这是一个潜在的选项,但是我在不同的时间对它们进行编程,并且我还不知道在编程引导加载程序的时候的序列号。当然,我可以重新编程Bootloader,但是我希望一旦它被测试了它就可以离开它。
2020-3-30 10:54:00 评论

举报

只有小组成员才能发言,加入小组>>

103个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表