嗨,Dialog!
我的SUOTA接收机由DA14580、外部SPI闪存(GPIO已正确连接)和16mhz晶体(没有32khz晶体)组成。制作:
SmartSippets将Product_Header.txt刻录到“Memory Header / NVDS程序员”的内存偏移(HEX):0x1f000。
产品标题.txt是:
地址大小(字节)参数值
0x1F000 2签名7052
0x1f002 2版本1234
0x1f004 4 offset1 00800000
0x1F008 4抵销2 00300100
将fw_1.img刻录到SPI闪存编程器,SPI闪存偏移量(十六进制)为0x8000。
将secondary_bootloader.hex刻录到SPI闪存编程器,SPI闪存偏移量(hex)为0x0000。
现在我用的是SUOTA-1.1版本的Android APK,找不到蓝牙,也是我的SUOTA接收器。
如果产品\u header.txt、fw\u 1.img和secondary\u bootloader.hex是正确的,那么我的步骤正确吗?你能告诉我细节吗?
设备:
嗨豆
我不明白您是如何创建产品标题.txt的。
请按照下面的说明进行拟订。
1)创建第一张图片:mkimage.exe单个fw_1.bin fw_1.h fw_1.img enc
2) 创建第二个映像:mkimage.exe single fwïu 2.bin fwïu 2.h fwïu 2.img enc(您也可以使用第一个映像)
3)为整个SPI内存创建图像:mkimage.exe多SPI辅助_BOOTLOODER.BIN FW_1.IMG 0x8000 fw_1.img 0x13000 0x1f000 multipart.bin
4)使用智能片段将其刻录到Flash中。
对于文件fw_1,2.h,请重命名文件\ dk_apps \ src \ dialog \ include \ ble_580_sw_version.h
请尝试一下,让我们知道。
谢谢你的对话
嗨,MT\u dialog!
将multipart.bin以偏移量0x00刻录到闪存中,对吗?
谢谢你的帮助!
嗨豆
首先擦除闪存,是的,将multipart.bin刻录到地址0上,当Windows Promts您可启动时,请选择否。
之后,你应该重置你的设备,它应该开始广告。
谢谢你的对话
嗨,MT\u dialog!
谢谢您!现在我成功了。
但有一个问题需要帮助:
我有两个img文件,它们的MAC地址不同,分别是80:EA:CA:00:00:01和80:EA:CA:00:11:01。
答。一个是80:EA:CA:00:00:01,用于为SUOTA接收器生成multipart.bin。SUOTA-1.1-RELEASE.apk向SUOTA接收器发送MAC为80:EA:CA:00:11:01的文件,
但是当SUOTA完成时,SUOTA接收器的MAC地址是80:EA:CA:00:00:01。这似乎是不正确的!
B.一个是80:EA:CA:00:11:01,它用于制作用于拟议接收器的多部分。Suota-1.1-Release .Apk发送其Mac为80:EA:00:00:01到拟议接收器的文件,
但是当SUOTA完成时,SUOTA接收器的MAC地址是80:EA:CA:00:00:01。这看起来没问题!
我想知道第一个案例的原因是什么?
期待你的答复!
嗨豆,
您是否正在更改nvds.c文件中db地址的值?
请尝试更改设备的其他凭据,如名称,也请尝试将DA14580\U SW\U版本从ble\U 580\U SW\U版本更改,并让我们知道发生了什么。
谢谢你的对话
嗨,MT\u dialog!
我使用的文件是为其他人提供的。我不知道DA14580的软件版本是否改变了。
之前,我从SDK3.0.6编译了reporter\u fh,但不支持SUOTA。
你能告诉我如何创建索塔项目吗?是否需要注意细节?
嗨豆,
你可以拿接近或智能标签参考设计为例,它们都支持SUOTA功能。智能标签更灵活一点。确保da14580\U配置中的SPOTA配置文件已启用。有关更多说明,请参阅智能标记参考应用程序文档。
谢谢mt_dialog。
嗨,MT\u dialog!
我能做到!这非常兴奋!非常感谢你!
但我还有一个问题:
根据智能标签参考文档UM-B-018,我们知道图像(内存)库只接受3个值:0、1或2:
1:使用产品标题中所示的启动地址使用第一组。
2:使用第二个银行,起始地址如产品标题所示。
0:将图像刻录到保存最旧图像的银行中。
在我的实践中,图像库的值是0或1,对应的字段是偏移量#1 0x8000。且值为2,对应字段为偏移量#2 0x13000。
我不知道我的司令,对吗?还是错了?
嗨,MT\u dialog!
你能帮我解决这个问题吗?
期待你的答复!
嗨豆
你是什么意思,图像库的值是0或1?
智能手机应用程序的选项包括:
1)将新图像放在内存库1中(内存库1具有0x8000偏移量)。
2)将新图像放在内存库2中(内存库2具有0x13000偏移量)。
3) 将新图像放在最旧图像的顶部(例如保存最旧图像的1号银行)。
在偏移0x00000,是位于偏移0x1f000的辅助引导加载程序是产品标题。
在下周内,将有一个关于Suota的新版本应用笔记。
谢谢你的对话
嗨,MT\u dialog!
android应用程序的版本是v1.1 for suota。设置Suota参数时,有一个需要参数是图像(内存)银行设置,它有三个值:0,1和2。
谢谢你!
嗨豆
是的,当你选择了文件,并且你想把它下载到你的设备上,android应用程序会让你选择把图像放在哪个内存库上……1。内存库1(0x8000.),2. Mevert_Bank_2(0x13000)或默认选择0.如果新图像将替换在内存BANK_1或MEMORY BANK_2中位于的内存中的最旧图像。
谢谢你的对话
嗨,MT\u dialog!
我知道你说什么。
在我的练习中,在为Android应用程序设置参数时:
设置MemoryBank = 0或内存库= 1,新图像将替换内存库(0x8000)的位置。
设置memorybank=2,新图像将替换内存库所在的位置(0x13000)。
现在我想知道上述现象是否正确?
嗨豆,
是的,这是正常的,当您下载两个映像(multipart.bin)到设备(重启后)荷载第一个图像(bank1),当您使用新的一个(通tuota)更新图像时,它将使用第一个银行。然后再次更新时(通过套子)新映像设备将知道哪个是最新下载的映像,并将用新映像替换最旧的映像。本质上,它遵循每一轮图像已更新。
谢谢你的对话
嗨mt_dialog,
关于上面的帖子,如果我们有两个不同的图像,比如imgïu 1在内存库0中,imgïu 2在内存库1中。有没有一种方法可以选择内存库来为应用程序类型选择合适的imgè2。
谢谢!
嗨,春天,
您可以查看secondary\u bootloader代码并对其进行修改,以便设置适当的条件来加载所需的映像文件。
谢谢你的对话