如何使用ASCII指令切换Flasher中保存的多个烧录文件?

浏览:672来源:本站时间:2021-10-14

在前文中我们介绍过如何通过网络更新Flasher中的烧录文件(点击标题可查阅文章)但是如果生产环境限制,无法将Flasher连接到网络中时,可以先将要烧录的多个项目文件保存到Flasher的内置存储中,之后再通过RS232串口发送ASCII指令来切换所要烧录的文件。使用RS232串口或者网线接口连接设备时所支持的ASCII指令是一样的。为方便演示ASCII指令的效果,本文将使用网络接口来进行演示,使用上位机软件Tera Term通过TeInet 23端口连接到Flasher以传输ASCII指令。当产品实际部署时可以切换为使用RS232接口传输ASCII指令。

01

要令Flasher工作在stand-alone模式,需要在Flasher的内置存储中保存要烧录项目的数据文件(*.dat)及其配置文件(*.cfg)等烧录信息。使用J-Flash软件对Flasher的配置过程中,默认创建的项目名称为Flasher,其对应的文件为Flasher.dat和Flasher.cfg。在没有额外配置的情况下,此时Flasher中仅保存一个项目的烧录信息。

图片

02

如果要保存多个项目的烧录文件,可以在Flasher的内置存储中进一步添加烧录信息文件。例如增加了Flasher_key.cfg和Flasher_key.dat两个文件,此时Flasher中保存了两个项目(Flasher和Flasher_key)的烧录信息。其中包含默认创建的Flasher项目,这种情况下Flasher将选择默认创建的Flasher项目来烧录。

图片

03

但如果Flasher中存在多个项目的烧录文件信息,例如“Flasher_led”和“Flasher_key”两个项目,却不存在默认会被选择的“Flasher”项目时,Flasher将无法从所保存的多个项目中选择要烧录哪一个项目,此时Flasher将会烧录失败。

图片

04

如上文所述,当Flasher中保存有多个项目的烧录信息文件时可能会烧录失败,此时需要通过ASCII指令来选择所要烧录的项目。可以通过Flasher支持的“#FLIST”和“#SELECT”等ASCII指令来实现。

#FLIST指令用于显示Flasher中所保存的文件列表,可以看到Flasher_key和Flasher_led两个项目的烧录信息文件保存在Flasher中。

图片

#SELECT指令用于选择要烧录的项目,注意当Flasher中保存有Flasher_key.dat和Flasher_key.cfg这样的烧录信息文件时,#SELECT指令后面跟的参数应该是文件所对应的项目名称“Flasher_key”,而不是具体的文件名。

#SELECT指令执行成功后,所选择的项目信息会自动保存到Flasher.ini文件中,该文件中会随#SELECT指令的完成自动创建,该文件中的内容将一直保存,直到被下一次#SELECT指令的执行结果覆盖。

图片

长按Flasher的PROG按钮以MSD模式连接电脑,可以看到Flasher.ini文件中的内容,正是#SELECT指令所选择烧录的项目工程。可以通过#SELECT指令来灵活切换所要烧录的项目文件。

图片

通过#SELECT指令,用户可以事先将多个要烧录的项目文件保存在Flasher中,在无需移动Flasher或将其连接到网络中的情况下,可以使用单片机等外部控制设备通过RS232接口发送ASCII指令来选择所要烧录的项目文件。可以极大的方便Flasher在生产环境中的部署。

除了上文中提到的两条指令,其他常用ASCII指令如下(详情请参考手册):

图片

Flasher是Segger针对生产环境而推出的系列编程器,为了方便在生产环境中进行部署,Flasher ARM和Flasher Pro等型号提供了多种接口,包括USB接口、RS232接口和网线接口,并且内置128MB存储空间用于存储烧录文件。

京ICP备:京ICP备05011254号-1 版权归北京麦克泰软件技术有限公司所有
北京麦克泰软件技术有限公司