嗨!对话框。我的设备现在需要更新.I选择了Suota(我的设备使用外部SPI闪光灯)。当我的apk呼叫gattwritecharvalue(spota_mem_dev)时,设备会发送回到哪个ack?它发送0x01吗?
你好,我正在尝试通过实际业务应用程序实施/结合这个型话。我正在遵循AN-B-003_1.PDF中给出的话语流程。我有很少的问题:(1)我推荐一个正确的文件,偶像流是适合这个的吗?(2)什么是ACK?它会给0x00吗?0x01?
布罗尔,Govind.
嗨ggotta,
1)这是配置文件的规范,可以在AN-B-010 DA14580中使用Suota(通过空中软件更新)以及在教程部分教程6:添加软件更新空气。
2)你的意思是你看到的图2:Suota流程图?从堆栈中生成那个ACK,因为设备使用的命令是GattwriteCharvalue,规范定义了该设备的响应,它不是您应该从应用程序中爆发的响应,它们是写入响应中央发送的写请求。
谢谢mt_dialog.
你好,感谢您的答复。我推荐这两个应用笔记。我的案子很小。我有不同的领域,可以在苏诺(case-i)将OTA支持添加到接收器/响应者/设备侧 - 这部分完成。现在我能够使用Suota Android应用程序更新固件。(案例-II)在上述情况下启动器是移动小工具和拟议应用。如在我的情况下,我希望写自己的应用程序,类似于Suota Android应用程序,而是针对不同原因的C ++。我的问题与案例-II有关。现在,Q1:全氟于我的案例-II,我参考了AN-B-003_1.PDF的Suota流程图(Pageno14)。那么,我推荐一个正确的文件吗?Q1.1)如果是,那么您可以帮我收到以下信息:Q1.1.1)什么是第7节SUOTA流程中的ACK?是0x01我们应该收到或0x00?如果要验证成功或失败案例的响应应该是什么?Q1.1.2)在AN-B-003_1.PDF中,页面:8,表3:spota_mem_dev定义为suota模式:0x00:最古老的0x01:图像#10x02:图像#1究竟它是什么意思?在我的情况下,Byte#3是0x13(SPI)Q1.1.3)在第4.2.4节中,究竟应该是spota_patch_len?是总站文件大小吗?闪存块大小?或每次转移的数字字节?在我的情况下,Bin文件大小为33404字节。你能用一个例子解释一下吗?Q1.2)如果否,请您能通过正确的来源/来源来指导我来实施案例-II吗?
布罗尔,Govind。
Q1)是这是Suota配置文件的规范,没有其他文档描述了过程。
Q.1.1.1)当我已经提到了你所看到的写回复你的中心的写回复的ACK时,没有从奴隶接受写作的课程的ATT级别确认,没有特征它接收0x01或0x00以确认写入,ACK是从从站到主的写入响应,该主机包括包括ATT错误代码的命令的状态。
Q.1.1.2)Spota_mem_dev显示它使用的内存,0x13(第3个字节)表示所使用的内存是SPI内存,中间的两个字节始终为零,零的字节始终为哪个存储库Suota Profile将更新0x00(将更新包含最旧图像的银行)0x01和0x02对应0x8000和0x13000银行。
Q.1.1.3)由于文档在拟议的情况下表示,特性定义一次要发送的图像数据的长度,例如,如果留下默认块大小,则特征值的值为0x00 f0。
Q.1.2)关于启动器示例,可以提供Android和iOS的拟议应用程序,可根据要求提供,您希望我发送它吗?
非常感谢细节。Q.1.1.3)例如,我有一个映射32440字节的Image_size,我已经写成了240的block_size的字符。因此,现在我的块写入计数为135(240)个字节+ 1(共40个)字节i.E 32440/240 = 240x135 + 40。每个块都将写入MTU(20字节)的最大大小。请确认!Q.1.1.4)我假设通知是默认实现。启动器应该能够为每个块写入的通知。如果我错了,请纠正我。
顺便说一下,如果您可以为我的参考提供其中一个(adroid / iPhone)来源,则会有很大的帮助。
谢谢!布罗尔,Govind.
你好,问题Q.1.1.4很好。我能得到通知。但我仍然不清楚我的第四季度,请帮帮我。Q1.1.5)spota_serv_status状态中的spota_serv_status = OK是什么?它是spotar_cmp_ok(0x02)吗?
关于你的计算,是你是正确的,你将拥有135 * 240 +额外的图像尺寸,设备将执行大约12个写命令20字节,每个字节为完成240字节块,然后它会将它们写入NV作为AN-B-003.PDF的内存指示,然后从外设发送通知,以指示对NV存储器的正确写入,以便中央将继续下一批次数据,是的OK的值为0x02。
你好,谢谢你的确认。计算部分很好。现在进入不同的问题。我以同样的方式实现,流程是如下所示。(1)我收到了一个通知0x10,指示“spota_img_started spota开始下载图像”。(在此之前几个步骤,我在这里没有提到)(2)写GattwriteCharvalue(Spota_patch_len) - 在我的情况下是240。(3)GattwriteNoresp(Spota_patch_data) - 用20个字节粒度编写240字节的.img文件。(4)在完成240个字节后,我假设在完成240字节后获取通知(Spota_serv_status = OK)。(4.Q.1)这是我的问题,我在写240字节后我没有收到通知我在编写260字节后,在通知之后,每240个字节后,直到最后但是为什么它是如此?(将在下面讨论最后一块)(4.q.2)如果它是将前20个字节作为标题,我该怎么办。我需要单独写标题吗?(4.q.3)如果是这样,这个标题是kmimage生成的.img文件中的前20个字节吗?或者我需要明确写下这个标题吗?(4.Q.4)如果标题的信息(如上所述)是错误的,请告诉我在这种情况下是正确的?假设这一点(单独写一个标题),我确实继续我的实验进一步,并且观察结果如下。(5)我在前260个字节之后获得了通知(spota_serv_status = ok),并再次写入... gattwritecharvalue(spota_patch_len),带有240字节并写入数据....并写入最后一个块的12x20通知(Spota_serv_status = OK)!!(6.Q)正如您所解释的那样,我应该在12x20写之后获得通知,但没有发生,有什么问题吗?如果我用gattreadcharvalue查询memoy(spota_mem_info,我得到一个值0x7da0(32160)差异是244,不确定出了什么问题!
最早的回应将是一个很大的帮助。谢谢!供您参考,- 使用Suota Android应用程序工作正常的图像文件(.img)。- 我通过使用spota_patch_len的其他尝试,即超过240,少于240,进入不同的问题,如错误0x07,但现在将忽略。布罗尔,Govind.
(4.quq.1)我无法想象有什么导致设备在260字节上发送辅验通知,正常操作是我提到了240字节后的通知,然后设备应该在NV内存中写下数据并发送数据通知。我在接受文档时发送带有SLA的邮件,以获取Suota Android和IOS启动器应用程序的源代码,请以此为例。雷竞技安卓下载
(4.Q.2)上传到设备的图像包括图像标题,但这无需任何特殊处理,其部分图像。
(4.Q.3)图像标题由MK_Image.exe和运行MK_Image.exe的命令行中应用(和.bin文件offcouse)生成的fw版本(检查UM-B-012在第7节和附录A中创建辅助引导Loader.pdf以获取详细信息)。
谢谢你的细节。(4.Q.1)。这个问题得到了解决。现在我每240播放spotar_cmp_ok,然后我能够编写一个包括最后一个chuck的所有数据。现在,我得到了CRC错误。我正在阅读下面的fread()和伪代码的文件:1. LEN = Fread(BUF,1,20,FD);2.同样的“buf”我正在使用to to spota_patch_data char。这次我确定所有的数据32404字节传输,MEM信息读取请求也提供相同的值。
你好我确实验证了弄清楚CRC原因的所有可能方法,并观察到图像标题中的“图像ID”始终被读取为FF。70 51 FF 01 .....在其他成功案例70 51 AA 01 ....对此有什么想法?
图像的最后一个字节应包含整个图像的CRC(这是手机应用程序的某些东西),因此当XOR与上一个字节接收的字节,该字节是作为Spota.state的整个图像的CRC的CRC。CRC_CLAC结果为零(如果接收的字节是正确的,并且CRC是正确的)。如果您的图像中没有此最后CRC字节,则应用程序将导致错误(您可以在Spotar_Img_End的Spotar_img_End案例中检查在App_spotar_read_mem()函数中)。我将Suota Phone应用程序发送到已注册的电子邮件帐户。
谢谢!顺便说一下,当我尝试比较读取的图像(使用我的OTA应用程序传输)时,除了imageId之外的1-to-1匹配的字节。图像ID字节[2] = 0xFF附加了屏幕截图以供参考。右窗格“内存内容”区域中的一个是读取我使用自定义应用程序传输的数据。一个在左窗格的“数据文件内容”中,再次是我使用Suota Android应用程序传输的读取文件。我已经读过它,留在旁边,刚在这里打开以进行比较。这是我的问题5.q.1)为什么我得到0x13002为0xff而不是0xff?与crc有什么关系吗?5.Q.2)如果我附加这个CRC,我是否需要改变长度?我认为不是必需的!在我的情况下,最后一个查克是4个字节(33404/240 + 4)。我添加CRC它将是5个字节!如果我错了,请纠正我。
非常感谢!一切都很好,OTA正在工作!
很高兴你成了它,谢谢你的迹象。
你好,
我正在尝试通过实际业务应用程序实施/结合这个型话。我正在遵循AN-B-003_1.PDF中给出的话语流程。
我有很少的问题:
(1)我推荐一个正确的文件,偶像流是适合这个的吗?
(2)什么是ACK?它会给0x00吗?0x01?
布罗尔,
Govind.
嗨ggotta,
1)这是配置文件的规范,可以在AN-B-010 DA14580中使用Suota(通过空中软件更新)以及在教程部分教程6:添加软件更新空气。
2)你的意思是你看到的图2:Suota流程图?从堆栈中生成那个ACK,因为设备使用的命令是GattwriteCharvalue,规范定义了该设备的响应,它不是您应该从应用程序中爆发的响应,它们是写入响应中央发送的写请求。
谢谢mt_dialog.
你好,
感谢您的答复。
我推荐这两个应用笔记。我的案子很小。我有不同的领域,可以在苏诺
(case-i)将OTA支持添加到接收器/响应者/设备侧 - 这部分完成。现在我能够使用Suota Android应用程序更新固件。
(案例-II)在上述情况下启动器是移动小工具和拟议应用。如在我的情况下,我希望写自己的应用程序,类似于Suota Android应用程序,而是针对不同原因的C ++。
我的问题与案例-II有关。现在,
Q1:全氟于我的案例-II,我参考了AN-B-003_1.PDF的Suota流程图(Pageno14)。那么,我推荐一个正确的文件吗?
Q1.1)如果是,那么您可以帮我收到以下信息:
Q1.1.1)什么是第7节SUOTA流程中的ACK?是0x01我们应该收到或0x00?如果要验证成功或失败案例的响应应该是什么?
Q1.1.2)在AN-B-003_1.PDF中,页面:8,表3:spota_mem_dev定义为suota模式:
0x00:最古老的
0x01:图像#1
0x02:图像#1
究竟它是什么意思?在我的情况下,Byte#3是0x13(SPI)
Q1.1.3)在第4.2.4节中,究竟应该是spota_patch_len?是总站文件大小吗?闪存块大小?或每次转移的数字字节?
在我的情况下,Bin文件大小为33404字节。你能用一个例子解释一下吗?
Q1.2)如果否,请您能通过正确的来源/来源来指导我来实施案例-II吗?
布罗尔,
Govind。
嗨ggotta,
Q1)是这是Suota配置文件的规范,没有其他文档描述了过程。
Q.1.1.1)当我已经提到了你所看到的写回复你的中心的写回复的ACK时,没有从奴隶接受写作的课程的ATT级别确认,没有特征它接收0x01或0x00以确认写入,ACK是从从站到主的写入响应,该主机包括包括ATT错误代码的命令的状态。
Q.1.1.2)Spota_mem_dev显示它使用的内存,0x13(第3个字节)表示所使用的内存是SPI内存,中间的两个字节始终为零,零的字节始终为哪个存储库Suota Profile将更新0x00(将更新包含最旧图像的银行)0x01和0x02对应0x8000和0x13000银行。
Q.1.1.3)由于文档在拟议的情况下表示,特性定义一次要发送的图像数据的长度,例如,如果留下默认块大小,则特征值的值为0x00 f0。
Q.1.2)关于启动器示例,可以提供Android和iOS的拟议应用程序,可根据要求提供,您希望我发送它吗?
谢谢mt_dialog.
非常感谢细节。
Q.1.1.3)例如,我有一个映射32440字节的Image_size,我已经写成了240的block_size的字符。
因此,现在我的块写入计数为135(240)个字节+ 1(共40个)字节i.E 32440/240 = 240x135 + 40。
每个块都将写入MTU(20字节)的最大大小。
请确认!
Q.1.1.4)我假设通知是默认实现。启动器应该能够为每个块写入的通知。如果我错了,请纠正我。
布罗尔,
Govind.
顺便说一下,如果您可以为我的参考提供其中一个(adroid / iPhone)来源,则会有很大的帮助。
谢谢!
布罗尔,
Govind.
你好,
问题Q.1.1.4很好。我能得到通知。但我仍然不清楚我的第四季度,请帮帮我。
Q1.1.5)spota_serv_status状态中的spota_serv_status = OK是什么?它是spotar_cmp_ok(0x02)吗?
布罗尔,
Govind.
嗨ggotta,
关于你的计算,是你是正确的,你将拥有135 * 240 +额外的图像尺寸,设备将执行大约12个写命令20字节,每个字节为完成240字节块,然后它会将它们写入NV作为AN-B-003.PDF的内存指示,然后从外设发送通知,以指示对NV存储器的正确写入,以便中央将继续下一批次数据,是的OK的值为0x02。
谢谢mt_dialog.
你好,
谢谢你的确认。
计算部分很好。现在进入不同的问题。我以同样的方式实现,流程是如下所示。
(1)我收到了一个通知0x10,指示“spota_img_started spota开始下载图像”。(在此之前几个步骤,我在这里没有提到)
(2)写GattwriteCharvalue(Spota_patch_len) - 在我的情况下是240。
(3)GattwriteNoresp(Spota_patch_data) - 用20个字节粒度编写240字节的.img文件。
(4)在完成240个字节后,我假设在完成240字节后获取通知(Spota_serv_status = OK)。
(4.Q.1)这是我的问题,我在写240字节后我没有收到通知我在编写260字节后,在通知之后,每240个字节后,直到最后但是为什么它是如此?(将在下面讨论最后一块)
(4.q.2)如果它是将前20个字节作为标题,我该怎么办。我需要单独写标题吗?
(4.q.3)如果是这样,这个标题是kmimage生成的.img文件中的前20个字节吗?或者我需要明确写下这个标题吗?
(4.Q.4)如果标题的信息(如上所述)是错误的,请告诉我在这种情况下是正确的?
假设这一点(单独写一个标题),我确实继续我的实验进一步,并且观察结果如下。
(5)我在前260个字节之后获得了通知(spota_serv_status = ok),并再次写入... gattwritecharvalue(spota_patch_len),带有240字节并写入数据....并写入最后一个块的12x20通知(Spota_serv_status = OK)!!
(6.Q)正如您所解释的那样,我应该在12x20写之后获得通知,但没有发生,有什么问题吗?
如果我用gattreadcharvalue查询memoy(spota_mem_info,我得到一个值0x7da0(32160)差异是244,不确定出了什么问题!
最早的回应将是一个很大的帮助。谢谢!
供您参考,
- 使用Suota Android应用程序工作正常的图像文件(.img)。
- 我通过使用spota_patch_len的其他尝试,即超过240,少于240,进入不同的问题,如错误0x07,但现在将忽略。
布罗尔,
Govind.
嗨ggotta,
(4.quq.1)我无法想象有什么导致设备在260字节上发送辅验通知,正常操作是我提到了240字节后的通知,然后设备应该在NV内存中写下数据并发送数据通知。我在接受文档时发送带有SLA的邮件,以获取Suota Android和IOS启动器应用程序的源代码,请以此为例。雷竞技安卓下载
(4.Q.2)上传到设备的图像包括图像标题,但这无需任何特殊处理,其部分图像。
(4.Q.3)图像标题由MK_Image.exe和运行MK_Image.exe的命令行中应用(和.bin文件offcouse)生成的fw版本(检查UM-B-012在第7节和附录A中创建辅助引导Loader.pdf以获取详细信息)。
谢谢mt_dialog.
谢谢你的细节。
(4.Q.1)。这个问题得到了解决。现在我每240播放spotar_cmp_ok,然后我能够编写一个包括最后一个chuck的所有数据。
现在,我得到了CRC错误。我正在阅读下面的fread()和伪代码的文件:
1. LEN = Fread(BUF,1,20,FD);
2.同样的“buf”我正在使用to to spota_patch_data char。
这次我确定所有的数据32404字节传输,MEM信息读取请求也提供相同的值。
布罗尔,
Govind。
你好
我确实验证了弄清楚CRC原因的所有可能方法,并观察到图像标题中的“图像ID”始终被读取为FF。
70 51 FF 01 .....在其他成功案例70 51 AA 01 ....对此有什么想法?
布罗尔,
Govind.
嗨ggotta,
图像的最后一个字节应包含整个图像的CRC(这是手机应用程序的某些东西),因此当XOR与上一个字节接收的字节,该字节是作为Spota.state的整个图像的CRC的CRC。CRC_CLAC结果为零(如果接收的字节是正确的,并且CRC是正确的)。如果您的图像中没有此最后CRC字节,则应用程序将导致错误(您可以在Spotar_Img_End的Spotar_img_End案例中检查在App_spotar_read_mem()函数中)。我将Suota Phone应用程序发送到已注册的电子邮件帐户。
谢谢mt_dialog.
谢谢!
顺便说一下,当我尝试比较读取的图像(使用我的OTA应用程序传输)时,除了imageId之外的1-to-1匹配的字节。图像ID字节[2] = 0xFF
附加了屏幕截图以供参考。
右窗格“内存内容”区域中的一个是读取我使用自定义应用程序传输的数据。
一个在左窗格的“数据文件内容”中,再次是我使用Suota Android应用程序传输的读取文件。我已经读过它,留在旁边,刚在这里打开以进行比较。
这是我的问题
5.q.1)为什么我得到0x13002为0xff而不是0xff?与crc有什么关系吗?
5.Q.2)如果我附加这个CRC,我是否需要改变长度?我认为不是必需的!在我的情况下,最后一个查克是4个字节(33404/240 + 4)。我添加CRC它将是5个字节!
如果我错了,请纠正我。
布罗尔,
Govind.
非常感谢!一切都很好,OTA正在工作!
布罗尔,
Govind.
嗨ggotta,
很高兴你成了它,谢谢你的迹象。
谢谢mt_dialog.