关于拟议的问题?

17个帖子/ 0新
最后一篇
溧阳
离线
最后一次露面:10个月1日前
专家
加入:2014-09-24 11:51
关于拟议的问题?

嗨!对话框。
我的设备现在需要更新.I选择了Suota(我的设备使用外部SPI闪光灯)。当我的apk呼叫gattwritecharvalue(spota_mem_dev)时,设备会发送回到哪个ack?它发送0x01吗?

GGOTTA.
离线
最后一次露面:1个月2个星期前
加入:2016-02-20 20:10
你好,

你好,
我想实现/沿着实际的业务应用将这一SUOTA应用。我下面的AN-B-003_1.pdf的SUotA流给出。
我有很少的问题:
(1)我推荐一个正确的文件,偶像流是适合这个的吗?
(2)什么是ACK?它会给出0x00吗?0 x01吗?

布罗尔,
戈文德

mt_dialog.
离线
最后一次露面:6个月2个星期前
职员
加入:2015-06-08 34
嗨ggotta,

嗨ggotta,

1)这是配置文件的规格,其他附加资源的SUOTA配置文件可以在AN-B-010 da14580使用SUOTA(软件通过空中更新),也在教程部分教程6:添加软件通过空中更新。

2)你的意思是你看到的图2:Suota流程图?从堆栈中生成那个ACK,因为设备使用的命令是GattwriteCharvalue,规范定义了该设备的响应,它不是您应该从应用程序中爆发的响应,它们是写入响应中央发送的写请求。

由于MT_dialog

GGOTTA.
离线
最后一次露面:1个月2个星期前
加入:2016-02-20 20:10
你好,

你好,
谢谢您的回复。
我推荐这两个应用笔记。我的案子很小。我有不同的领域,可以在苏诺
(Case-I)在接收端/响应端/设备端添加OTA支持-这部分已经完成。现在我可以使用SUOTA android应用程序更新固件。
(case - ii)在上述情况下,启动器是移动小工具和SUOTA应用程序。在我的情况下,我希望写我自己的应用程序类似于SUOTA Android应用程序,但在c++不同的原因。
我的问题与案例-II有关。现在,
Q1:全氟于我的案例-II,我参考了AN-B-003_1.PDF的Suota流程图(Pageno14)。那么,我推荐一个正确的文件吗?
Q1.1)如果是,那么你能帮我得到更多的信息如下:
Q1.1.1)在第7节SUotA流中确切的ACK是什么?我们应该接收0x01还是0x00?如果想验证响应的成功或失败案例,它应该是什么?
在AN-B-003_1.pdf中,page:8, Table 3: SPOTA_MEM_DEV for SUOTA mode定义:
0 x00:老
0x01:图像#1
# 1 0 x02:形象
究竟它标志着?在我的情况字节#3是0×13(SPI)
在4.2.4节中,SPOTA_PATCH_LEN到底应该是什么?它的总文件大小?闪存块大小?或者每次传输的字节数?
在我的情况下,Bin文件大小为33404字节。你能用一个例子解释一下吗?
Q1.2)如果否,可以请你指导我的文档来实现的情况下-II正确的源/来源?

布罗尔,
Govind。

mt_dialog.
离线
最后一次露面:6个月2个星期前
职员
加入:2015-06-08 34
嗨ggotta,

嗨ggotta,

Q1)是的,这是SUOTA配置文件的规范,没有其他文件描述该程序。

Q.1.1.1)当我已经提到了你所看到的写回复你的中心的写回复的ACK时,没有从奴隶接受写作的课程的ATT级别确认,没有特征它接收0x01或0x00以确认写入,ACK是从从站到主的写入响应,该主机包括包括ATT错误代码的命令的状态。

Q.1.1.2) SPOTA_MEM_DEV显示它使用的内存,0x13(第3字节)表示使用的内存是一个SPI内存,中间的两个字节总是0,零位上的字节表示SUOTA配置文件将更新哪个内存银行0x00(将更新保存最老映像的银行)0x01和0x02对应于0x8000和0x13000银行。

正如文档所指出的,在SUOTA的情况下,特征定义了一次要发送的图像数据的长度,例如,如果保留默认的块大小240,特征的值应该是0x00 F0。

Q.1.2)关于启动器的例子,可以提供android和iOS的SUOTA应用程序,可以根据需要提供,需要我发送过来吗?

由于MT_dialog

GGOTTA.
离线
最后一次露面:1个月2个星期前
加入:2016-02-20 20:10
非常感谢细节。

非常感谢细节。
Q.1.1.3)例如,我有一个映射32440字节的Image_size,我已经写成了240的block_size的字符。
所以,现在我的块的写入计数将是(240)135个字节(40)+ 1字节即二百四十零分之三万二千四百四十〇= 240x135 + 40。
每个块都将写入MTU(20字节)的最大大小。
请确认!
Q.1.1.4)我假设通知是默认实现。启动器应该能够为每个块写入的通知。如果我错了,请纠正我。

布罗尔,
戈文德

GGOTTA.
离线
最后一次露面:1个月2个星期前
加入:2016-02-20 20:10
顺便说一句,这将是

顺便说一下,如果您可以为我的参考提供其中一个(adroid / iPhone)来源,则会有很大的帮助。

谢谢!
布罗尔,
戈文德

GGOTTA.
离线
最后一次露面:1个月2个星期前
加入:2016-02-20 20:10
你好,

你好,
问题1.1.4很好。我能收到通知。但我还是不清楚我的问题1.1.3,请帮助我。
问题1.1.5)在SPOTA_SERV_STATUS状态中什么是SPOTA_SERV_STATUS = OK ?是SPOTAR_CMP_OK (0x02)吗?

布罗尔,
戈文德

mt_dialog.
离线
最后一次露面:6个月2个星期前
职员
加入:2015-06-08 34
嗨ggotta,

嗨ggotta,

关于你的计算,是的,你是正确的你会有135 * 240 +额外的图像大小,设备将执行12 20字节写命令每个为了完成一个240字节块然后它会写NV内存作为一个- b - 003. - pdf表示,然后从外设发送一个通知,指示正确的写入到NV内存,以便中央将继续处理下一批数据,是的,ok的值是0x02。

由于MT_dialog

GGOTTA.
离线
最后一次露面:1个月2个星期前
加入:2016-02-20 20:10
你好,

你好,
谢谢你的确认。
计算部分是好的。现在来看看另一个问题。我以同样的方式实现,流程如下所示。
(1)我收到了一个通知0x10,指示“spota_img_started spota开始下载图像”。(在此之前几个步骤,我在这里没有提到)
(2)写GATTWriteCharValue(SPOTA_PATCH_LEN) - 这是在我的情况240。
(3) GATTWriteNoResp (SPOTA_PATCH_DATA) -写入240字节的。img文件,20字节粒度。
(4)这里我假设获得通知(SPOTA_SERV_STATUS=OK)完成240字节。
(4.Q.1)这是我的问题,我在写240字节后我没有收到通知我在编写260字节后,在通知之后,每240个字节后,直到最后但是为什么它是如此?(将在下面讨论最后一块)
(4.Q.2)如果万一如果采取前20个字节的头,我应该怎么办。我是否需要分开来写头?
(4.q.3)如果是这样,这个标题是kmimage生成的.img文件中的前20个字节吗?或者我需要明确写下这个标题吗?
(4.问题4)如果标题上的信息(如上所述)是错误的,请让我知道在这种情况下什么是正确的?
假设这个(分开来写头)我继续我的实验进一步和观察如下。
(5) I got Notification(SPOTA_SERV_STATUS=OK) after first 260 bytes and again have written…GATTWriteCharValue(SPOTA_PATCH_LEN) with 240 byte and write data…等等……然后写入最后一块数据块的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,但现在将忽略。
布罗尔,
戈文德

mt_dialog.
离线
最后一次露面:6个月2个星期前
职员
加入:2015-06-08 34
嗨ggotta,

嗨ggotta,

(4.Q.1)我不能想象什么会导致上发送260个字节的SUOTA通知的装置中,正常运行是如我后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

GGOTTA.
离线
最后一次露面:1个月2个星期前
加入:2016-02-20 20:10
感谢您的详细信息。

感谢您的详细信息。
(问题1 . 4.)。这个问题得到了解决。现在我得到SPOTAR_CMP_OK为每240,然后我能够写一个所有的数据,包括最后一次chuck。
现在,我得到CRC错误。我正在阅读的文件与fread()和伪代码如下:
1. LEN = Fread(BUF,1,20,FD);
2.和相同的“BUF”我使用写上SPOTA_PATCH_DATA字符。
这一次我确定我所有的数据32404字节被转移,mem信息读请求也给出相同的值。

布罗尔,
Govind。

GGOTTA.
离线
最后一次露面:1个月2个星期前
加入:2016-02-20 20:10
你好

你好
我没有验证所有可能的方式来弄清楚了CRC的原因,并指出,在图像标题中的“图像ID”被解读为FF始终。
70 51 FF 01 .....在其他成功案例70 51 AA 01 ....对此有什么想法?

布罗尔,
戈文德

mt_dialog.
离线
最后一次露面:6个月2个星期前
职员
加入:2015-06-08 34
嗨ggotta,

嗨ggotta,

你的图像的最后一个字节应该包含整个图像的crc(这是手机应用程序做的事情),所以当设备接收到的字节与最后一个字节的crc的整个图像的spot .state。crc_clac结果为零(如果接收的字节是正确的,并且CRC是正确的)。如果映像中没有这个最后的CRC字节,应用程序将会导致一个错误(在交换机的SPOTAR_IMG_END情况下,您可以在app_spotar_read_mem()函数中检查)。我已经将SUOTA电话申请发送到注册的电子邮件帐户。

由于MT_dialog

GGOTTA.
离线
最后一次露面:1个月2个星期前
加入:2016-02-20 20:10
谢谢!

谢谢!
顺便说一下,当我尝试比较读取的图像(使用我的OTA应用程序传输)时,除了imageId之外的1-to-1匹配的字节。图像ID字节[2] = 0xFF
附参考截图。
右窗格“内存内容”区域中的一个是读取我使用自定义应用程序传输的数据。
一个在左窗格的“数据文件内容”中,再次是我使用Suota Android应用程序传输的读取文件。我已经读过它,留在旁边,刚在这里打开以进行比较。
我的问题是
为什么我得到0x13002作为0xFF而不是0xFF?跟CRC有关系吗?
5.Q.2)如果我把这段CRC,我需要改变的长度?我认为它不是必需的!在我的情况下,最后盘是4个字节(二百四十零分之三万三千四百零四+ 4)。我想补充的CRC这将是5个字节!
如果我错了请纠正我。

布罗尔,
戈文德

依恋:
GGOTTA.
离线
最后一次露面:1个月2个星期前
加入:2016-02-20 20:10
谢谢!一切都是

谢谢!一切都很好,OTA正在工作!

BR,
戈文德

mt_dialog.
离线
最后一次露面:6个月2个星期前
职员
加入:2015-06-08 34
嗨ggotta,

嗨ggotta,

很高兴你成了它,谢谢你的迹象。

由于MT_dialog