嗨,对话框!
我的SUOTA接收器是由DA14580,外部SPI Flash (GPIO已经连接正确),和16 MHZ晶体(没有32 KHZ晶体)。制作:
SmartSippets刻录product_header.txt到“Memory Header/NVDS Programmer”的内存偏移量(HEX):0x1F000。
product_header.txt是:
地址大小(字节)参数值
0x1F000 2签名7052
0x1F002 2版本1234
0x1F004 4偏移1 00800000
0x1F008 4偏移2 00300100
fw_1燃烧。SPI Flash memory Offset(HEX)为0x8000。
secondary_bootloader燃烧。十六进制到SPI Flash Programmer, SPI Flash内存偏移量(十六进制)是0x0000。
现在我使用的是SUOTA-1.1- release Android APK,没有找到蓝牙,也是我的SUOTA接收器。
如果product_header.txt,则fw_1. txt。img和secondary_bootloader。海克斯是正确的,我的脚步是正确的吗?你能详细说说吗?
设备:
嗨,豆
我不明白你是如何创建product_header.txt的。
请按照以下说明与SUOTA一起工作。
1)创建第一个镜像:mkimage.exe single fw_1.bin fw_1.h fw_1.himg enc
2)创建第二个镜像:mkimage.exe single fw_2.bin fw_2.h fw_2. exeImg enc(您也可以使用第一个图像)
3)为整个SPI内存创建镜像:mkimage.exe multi SPI secondary_bootloader.bin fw_1。img 0 x8000 fw_1。img 0x13000 0x1F000 multipart.bin
4)使用智能片段将其烧成flash。
对于fw_1,2.h文件,请将其重命名为\dk_apps\src\dialog\include\ ble_580_sw_version.h
请尝试一下,并让我们知道。
由于MT_dialog
嗨,MT_dialog !
刻录multipart。bin到flash的偏移量为#0x00,对吧?
谢谢您的帮助!
嗨,豆
首先擦除FLASH,是的,刻录multipart.bin到FLASH地址0,当窗口提示你启动时,选择NO。
之后,你应该重置你的设备,它应该开始广告。
由于MT_dialog
嗨,MT_dialog !
谢谢你!现在我根据。
但有一个问题需要解决:
我有两个img文件,它们的MAC地址不同,80:EA:CA:00:00:01和80:EA:CA:00:11:01。
a .一个是80:EA:CA:00:00:01,用于制作一个多部件。bin的SUOTA接收器。SUOTA-1.1- release .apk将其MAC为80:EA:CA:00:11:01的文件发送给SUOTA Receiver,
但当SUOTA完成时,SUOTA Receiver的MAC地址为80:EA:CA:00:00:01。这似乎是不正确的!
B.一个是80:EA:CA:00:11:01,用于制作一个多部件。bin的SUOTA接收器。SUOTA-1.1- release .apk将其MAC为80:EA:CA:00:00:01的文件发送给SUOTA Receiver,
但当SUOTA完成时,SUOTA Receiver的MAC地址为80:EA:CA:00:00:01。这似乎没问题!
我想知道第一种情况的原因是什么?
期待您的回复!
嗨,豆,
您是否正在修改nvds.c文件中db地址的值?
请尝试更改设备的其他凭证,如名称,也尝试从ble_580_sw_version更改DA14580_SW_VERSION,并让我们知道发生了什么。
由于MT_dialog
嗨,MT_dialog !
我使用的文件是提供给别人的。我不知道DA14580_SW_VERSION是否更改了。
以前,我从SDK3.0.6编译reporter_fh,但不支持SUOTA。
你能告诉我如何创建一个suota项目吗?如果有需要注意的细节?
嗨,豆,
您可以以邻近或Smart Tag参考设计为例,它们都支持SUOTA功能。智能标签更加灵活。请确保da14580_config中的SPOTA配置文件已启用。请参阅Smart Tag参考应用程序文档了解进一步说明。
谢谢MT_dialog。
嗨,MT_dialog !
我能做到!这是非常兴奋!非常感谢!
但我还有一个问题:
根据智能标签参考文档UM-B-018,我们知道图像(内存)银行只接受3个值:0,1或2:
1:使用第一家银行,起始地址如产品标题中所示。
2:使用第二行,起始地址如产品标题中所示。
0:将图像刻录到保存最老图像的存储库中。
在我的实践SUOTA中,映像库的值是0或1,相应的字段是偏移#1 0x8000。如果值是2,相应的字段偏移#2 0x13000。
我不知道我的SUOTA,对吧?还是错的?
嗨,MT_dialog !
关于这个问题你能帮我吗?
期待您的回复!
嗨,豆
示例中的图像库值为0或1是什么意思?
智能手机应用程序的选择如下:
1)将新映像放入内存组1(内存组1有0x8000偏移)。
2)将新映像放入内存组2(内存组2有0x13000偏移)。
3)将新图像放在旧图像的上方(例如存放旧图像的银行编号1)。
在偏移量0x00000处是位于辅助引导加载程序的位置,在偏移量0x1F000处是位于产品头的位置。
下周将会有一个关于SUOTA的新发布应用说明。
由于MT_dialog
嗨,MT_dialog !
android应用程序的版本是v1.1为SUOTA。在设置SUOTA参数时,需要一个参数,就是要设置的Image(内存)bank,它有三个值:0,1和2。
谢谢你!
嗨,豆
是的,当你选择了文件,并且你想将它下载到你的设备上时,android应用程序会让你选择将图像放在哪个内存银行......1。memory_bank_1 (0 x8000), 2。Memory_bank_2 (0x13000)或默认选项0。新图像将替换内存bank_1或内存bank_2中最旧的图像。
由于MT_dialog
嗨,MT_dialog !
我知道你在说什么。
在我的实践中,当为android应用设置参数时:
设置memorybank = 0或memorybank = 1,新映像将替换内存银行(0x8000)的位置。
设置memorybank = 2,新映像将替换内存银行(0x13000)的位置。
现在我想知道上面的现象是否正确?
嗨,豆,
是的,正常,当你下载两个图像(multipart.bin)设备(重启后)加载第一个图像(bank1),当你用一个新图像(通过suota)更新图像时,它将使用第一个银行。然后当你再次更新(suota身子)新图像设备将知道哪个是最新下载的图像,并将用新的图像替换旧的图像。本质上,它跟随每一个图像已经更新。
由于MT_dialog
嗨MT_Dialog,
关于上面的帖子,如果我们有两个不同的图像,如img_1在内存库0和img_2在内存库1。有没有一种方法来选择内存库来为应用程序的类型选择适当的img_2。
谢谢你!
嗨iqspring,
您可以查看并修改secondary_bootloader代码,以便设置适当的条件来加载所需的图像文件。
由于MT_dialog