在使用CH583芯片的蓝牙OTA升级时,用安卓BLEOTA工具通过手机端进行APP更新,HEX文件是可以的,但是如果是BIN文件则不能运行,请教一下这个是哪方面的问题?
使用方式二升级的话:使用bin文件烧录的话注意LD文件中的地址,在再次升级的时候使用OTA工具的软件的擦除地址要和LD文件中的一致。
要用app和jumplap的两个文件合并成bin文件,不能用单个app生成的bin文件,问题已经解决了!
使用方式一 backup放方式,升级时候,选择bin文件,弹出的擦除地址如何填写,填写0x1000,升级后程序就死机,如果选择HEX文件升级,升级后正常运行 hex文件和bin文件,是用户程序编译后的文件
填写0x1000,上位机会擦除前4K的数据。
由于hex固件包含了地址信息,在升级的时候,上位机识别到该hex的地址信息,擦除前4K的数据,对hex本身的数据不会产生影响。
bin文件不包含地址信息,在升级的时候,bin文件的数据会默认往前存放,因此上位机会将前4K的应用代码给擦除,进而出现问题。
针对该问题,可以直接使用编译器生成hex固件,不使用bin文件。
或者使用bin时,将该APP的bin文件与jumpiap的bin文件(正好占用前4K)合并,这样升级时上位机擦除会将jumpiap的内容擦除,不会影响到APP。