嗨对话框,
最近在弄da14580的suota,之迹搞过北欧的大田,我想问da14580的概要怎么保证固件传输的可以,如果在传输固件的时代突然突然电影会不会会导致,北欧的方面是加♥Flash缓冲区,即先把接收到的固件块闪光闪光,校验正式后才会把来的固件覆盖,请问da14580是怎么做?我看代码里面好话是先放在sysram里面再贝拷到Flash是吗?户外,对要升级的固件有没有大小的限制?固件升级及蓝牙堆栈所耗的ram分享到多重?谢谢!
BR,
年轻的
设备:
不会,580在每个图像的头读对象有一个vidal_flag,如果中间断电,这位是不会写0xaa的。
580的型机器,是先先数码复制到spota_all_pd,然后再复制到闪光。这块区域在散射文件里面。
固件的大小上限是580 SRAM的大小,在图像头部有定义。
ram的消耗主要就是spotar服务的数据库大小,还有着是SRAM里奇暂存数据的那那数组。
嗨gongyu_dialog,
谢谢你的回复,我按照文字“AN-B-010 DA14580使用苏时”完整地做了一次,发表在ios上面的一击是可以的,所在的,所在的,所以在三星s6 android 6.0.1上面不成员,现象是升级刚开始就中间了(见见),辅助版本是v1.1,怀疑是连接间隔的设置问题,所以将sdk5.0.3的prox_reporter例子的连接间隔从从来的10-20ms改成20-30ms,结果也是一流的,这的,这怎么事?请赐教!
BR,
年轻的
补充:
外表的闪光是spi的连接方向,芯片为w25x20cl,256kb的毛大小,“使用suota”an-b-010 da14580使用suota“教程唯一来的地方为第8.5章烧写闪光的方便不错,我是用UART的连接方面,,我是我刚才站在制作图像上里加上加入作品,但结果还是一般的,ios可以,Android不行。
BR,
年轻的
补充:
双重形象引导装载程序存储在flash中即用scheme1的方式进行。
烧写方向应该有关系。加密操作品应该不合会没有.Android不行是什么,而且是刚开启最新就失败,还的是更新的中间跳出失败的?
没有跳出失败的提示,但是一切停留到升级,中间没有提示任何错误,见附件。
嗨gongyu_dialog,
又又测试了两台台机,LG G3 Android 5.0.1跟nexus 5x Android 6.0.1结果都是一道的,作品是怎么回事,你能帮我下来?
BR,
年轻的
我刚刚刚刚又试了另台机htc一个(Android 6.0.1),情况是一般的,最终也停留在那个页面。
你的ios环境是好的什么?Android环境下使用的空版本?
另外,文件不加密是否是好的?
嗨gongyu_dialog,
IOS环境是好的,android环境下用的APK版本是V1.1,文件加密不加密都一样。
BR,
年轻的
嗨gongyu_dialog,
更新了应用程序就可以正当行了,谢谢!户外,我是有权疑惑,根据“um-b-012_da14580_581_583创建次要引导Loader_v3.0”第8.2章的描述,aes_encrypted_image_supported及support_an_b_001的正交组合应该是:
1.双重形象引导装载程序放在闪光处:
#定义AES_ENCRYPTED_IMAGE_SUPPORTED 0
#define support_an_b_001
2.常规图像引导加载程序放在OTP处:
#定义AES_ENCRYPTED_IMAGE_SUPPORTED 1
# undef SUPPORT_AN_B_001
是的,我的双重图像引导加载程序放在闪存时闪存处种配置flash,代码根本跑那种的,而不是“双重图像引导加载程序放在otp处”的配置配置能正式驾驶,
双重形象引导装载程序放在OTP处的我没试过,不知道上面的配置对不对,是我的理解有误吗还是怎么回事?
BR,
年轻的
首先aes_encrypted_image_supported这个宏一定都建议开着,而是是通讯检查图像标题大的加密位来查看来查看查看需要解密.Image没有加法,在宏开的情况下也。
而support_an_b_001这个宏,会去检查以这8个头字节“0x70 / 0x50 / x / x / x / x / code size(l)/代码大小(h)的图片,也就是平时smartsnippets op的可启动图像会增加的8个字节头字节。
所以对照代码看spi_load activeImage and,就会看到如果双重图像引导加载程序放在闪存的情况下,不能定义support_an_b_001,否则直接从0地址开始图像内容了。
如果双重图像引导加载程序放在otp的情况下则就定义定义spearch_an_b_001是吧,刚刚试过不定义根跑不再是offere foot offerent bootloader跟双映像引导程序的区别作品是什么?
“UM-B-012_DA14580_581_583创建次要引导Loader_v3.0”说的定义太绕口,看得一头雾水。
BR,
年轻的
补充:要将双重图像引导加载程序放在otp有什么需要的?代码处需要做什么修改,电动有没有什么要求(除了除了条件要的电气及gpio oxy)?
谢谢!
BR,
年轻的
放otp是一般性的,宏别无催化。你看文档AN-B 15-16页,关键词种模式的闪光存储存储。
SUPPORT_AN_B_001定义,只有一种情况,就是二级引导装载程序在OTP,同时闪光里面0地址带有- b - 001的8个头字节,也不存在双重形象的选择,就一片闪光直接复制到内存里了
“如果双重图像引导加载程序放在otp的情况下则就定义spearch_an_b_001是吧,刚刚试过不少根本跑不行来”
/ /我想你的flash 0地址一定放了一个- b - 001的8个字节,或者smartsnippets烧写的时候,选了引导使的模式。
如果OTP里没东西,正常会进入发展模式,即按照罗默认的引导装载程序的顺序跑,所以最长时间需要遍历SPI / UART / I2C / SPI。
但如果otp里有代码,即次级引导加载程序,那otp模式把seconday引导程序的内容内容复制到ram 0地址,就可以按照里面代码的执,直接从你想要的外部靴子。这样会省时间。
双重图像引导加载程序讲的是,通俗读取产品标题字段,可以在两块代码空间进选择,然后决定把谁副本到ram的0地址去。主要ram的0地址。主要用在suota上,方便。
嗨gongyu_dialog,
意志是OTP标题分数没,所以可以是可以正正常了,谢谢!
关键词的SPI的SPI闪光,想请教请教:
情况是这样,如上面说的,双图像引导装载程序放在OTP,应用放在外挂的FLASH (W25X20CL)里的面,把他们烧到正确的位置后,程序可以正常跑,SUOTA也可以做,都正常,考虑到FLASH如果一直开着,功耗会比较大,所以做了个新的形象,在这个新的形象的主要函数里将FLASH配置为断电模式以节省功耗,配置如下所示:
int main_func(空白)
{
sleep_mode_t sleep_mode;
system_init ();
spi_flash_power_down();
而(1)
{.............}
}
?
这里还致发起了另一个,当双重图像引导加载程序烧进otp时,原来通讯Uart给falsh烧录程序的方法行不通,smartsnippets一般来在Uart重置的界面,这又是怎么回事,有条学补救么?是在苏时期的时代,它的时代广播固件的固件的时代只能的有条的方法来擦除擦除烧烧。
BR,
年轻的
我会在sencod_bootloader代码里面,start_run_user_application遇到数码面已经有关闪光的作用了。为之要再加一文相关闪光的作品?
start_run_user_application里面仅仅是DA14580拉高了CS而已,而对W25X20CL来说还是处于备用模式而不是省电低功耗模式,用spi_flash_power_down()才是正确的吧,还有就是SUOTA升级完不是会复位吗?是在app_spotar_read_mem()里面的这个语句吗:platform_reset (RESET_AFTER_SPOTA_UPDATE) ???
我现在的代理方法是在主函数相关的方法Flash使使其offol-down低功耗低功耗:
Int8_t man_dev_id = 0;
man_dev_id = spi_flash_enable(spi_en_gpio_port,spi_en_gpio_pin);
if(man_dev_id == spi_flash_auto_detect_not_detected)
{
//未识别设备。使用默认参数。
//可选地,这里可以断言错误。
spi_flash_init (SPI_FLASH_DEFAULT_SIZE SPI_FLASH_DEFAULT_PAGE);
}
spi_flash_power_down();
在platform_reset (RESET_AFTER_SPOTA_UPDATE)疑似复位操作的语句前加了:
案例spotar_reboot:
man_dev_id = spi_flash_enable(spi_en_gpio_port,spi_en_gpio_pin);
if(man_dev_id == spi_flash_auto_detect_not_detected)
{
spi_flash_init (SPI_FLASH_DEFAULT_SIZE SPI_FLASH_DEFAULT_PAGE);
}
spi_flash_release_from_power_down ();
platform_reset (RESET_AFTER_SPOTA_UPDATE);
打破;
将程序烧进去后发表再次再次偶像时,升级失败,提示提示法与外面弗拉通行,就算我在主函数处将闪光问题,但的只是诗歌的前将会去子呢?求解!谢谢
BR,
年轻的
我在Suota代码里的app_spi_flash_init带有spi_flash_release_from_power_down();
case spotar_img_spi_flash:
#如果(SPOTAR_SPI_DISABLE !)
app_spotar_spi_config (&spi_conf);
app_spi_flash_init(&spi_conf.cs);
而void on_spotar_status_change(const uint8_t spotar_event)因为是580,所以这段代码走不进
{
#f定义(__ da14583__)&&(!spotar_spi_disable)
Int8_t man_dev_id = 0;
man_dev_id = spi_flash_enable(spi_en_gpio_port,spi_en_gpio_pin);
if(man_dev_id == spi_flash_auto_detect_not_detected)
{
//未识别设备。使用默认参数。
//可选地,这里可以断言错误。
spi_flash_init (SPI_FLASH_DEFAULT_SIZE SPI_FLASH_DEFAULT_PAGE);
}
if(spotar_event == spotar_end)
{
//关闭SPI Flash
spi_flash_power_down();
}
#万一
}
嗨gongyu_dialog,
现在可以正常跑了,FLASH的功耗也应该正常了,但是,我重复做SUOTA的过程中发现,不管是在IOS还是Android,都很容易在传输完后的CRC校验这里出的错,提示“整体补丁数据CRC失败”,而且Android平台比IOS更容易出现这个错误,Android报错率:90%,IOS: 40%左右,通讯距离已经尽可能地短了,应该不是距离的问题,这是什么问题,能解决么?谢谢!
ps:我的连接间隔别为:
.intv_min = ms_to_doubleslots(20),
.intv_max = ms_to_doubleslots(30),
BR,
年轻的
我遇里比较很少遇见crc错的问题。空间隔,一切是手机,设备血液动动发数更更了吗?
Android 90%的错,你用的是哪个应用?要不用语的试试?