10个帖子/ 0个新
最后发表
GGQ_in
离线
最后看到:7个月2天前
加入:2019-07-23 04:41
SPI FLASH烧写问题

你好,我用DA14580和GD25D10C flash烧写OTA.bin文件,当烧写完复位后蓝牙没广播,当我烧写完复位后,再调试二次引导文件蓝牙才从运行了我烧写的程序(开始广播),文件夹中是二次引导和flsh_programmer工程中的部分调试截的图。请问这种情况是二次引导文件烧写问题还是flsh_programmer工程的问题吗?

关键词:
附件:
设备:
CYibin
离线
最后看到:8个月1周前
工作人员
加入:2017-12-14 02:48
你好,

你好,

能否再描述清楚你的目的?

用 580 做烧录器?还是想对580烧录闪光吗?

GGQ_in
离线
最后看到:7个月2天前
加入:2019-07-23 04:41
你的好,是想对580烧录闪光

你好,

是想对580烧录闪光

CYibin
离线
最后看到:8个月1周前
工作人员
加入:2017-12-14 02:48
你好,

你好,

关于这个问题,你有几个帖子,我们集中在这里讨论吧。

你是在用使形象工具,生成多本文件的时候遇到问题了吗?

如果是,需要检查:

1.FLASH 0地址处(包含70 50头),或者OTP中(不包含70 50头),有二次引导装载程序代码

2.0 x8000处有70 51和图像1

3.0 x13000处有70 51和图片2

4.0 x1f000处有70 52头,并且头中有0 x8000 0 x13000数据

580芯片建议在OTP中烧录二级引导装载程序

GGQ_in
离线
最后看到:7个月2天前
加入:2019-07-23 04:41
你好,

你好,

我在生成多本文件的时候没有出现错误。0 x8000 0 x13000和0 x1f000这三个的地址都能读到相应imge和头信息,调试调试second_bootloader读取FLASH 0地址时就卡在那里了似乎一直在等待,以下为读取读取FLASH 0时的片段代码。当我用SmartSnippets读取地址0处是有50 70信息的。

我现在用的是580的芯片和另外的FLASH芯片,spi引脚和默认的spi启动引脚不同。OTP中烧录二次引导装载程序代码是往FLASH 0处写二次引导装载程序?那我在生成多本文件的时候就把二次引导装载程序放在地址0了就可以了吗?

uint8 AN001Header [AN001_SPI_HEADER_SIZE];SpiFlashRead((unsigned long)AN001Header, (unsigned long) 0, (unsigned long)AN001Header);if (AN001Header[0]==0x70 && AN001Header[1]==0x50) {}

谢谢!

CYibin
离线
最后看到:8个月1周前
工作人员
加入:2017-12-14 02:48
你好,

你好,

是的,在生成multibin的时候,要将二次引导装载程序烧到地址0 FLASH, 70 50头之后

GGQ_in
离线
最后看到:7个月2天前
加入:2019-07-23 04:41
你好, 这个步骤我有

你好,

这个步骤我有

E:\code\ota_file>hex2bin -e bin nodata_salve。最低地址= 00000000最高地址= 0000732B Pad Byte = FF 8位Checksum = 2F E:\code\ota_file>mkimage single first01_version.h nodata_salve.bin nodata_salve. h nodata_salve. hmkimage multi spi gsecondary_bootloader.bin nodata_salve. img E:\code\ota_file>mkimage multi spi gsecondary_bootloader.bin nodata_salve。img 0 x8000 nodata_salve。img 0x13000 0x1f000 nodata_salve_ota.bin正在创建nodata_salve_ota.bin映像…[00000000] AN-B-001 SPI header [00000008] Bootloader [000012b0] Padding (FF's) [00008000] 'nodata_salve。[000080df] Padding (FF's) [00013000] 'nodata_salve. txt[000130df]填充(FF的)[0001f000]产品头部

CYibin
离线
最后看到:8个月1周前
工作人员
加入:2017-12-14 02:48
你好,

你好,

抱歉之前没看清你的一个情况:“spi flash引脚和默认的不同”

在这种情况下,你必须修改二级引导装载程序来对你的flash引脚进行适配,并且需要把二级引导装载程序烧录到你的OTP中。

上电经历的流程应该是:
1.芯片硬件初始化

2.芯片ROM引导运行,发现OTP中有代码(二次引导装载程序),将其拷贝到RAM中运行

3.二级引导装载程序读头取产品,获取图像1/2的图像头的地址

4.二级引导装载程序决定拷贝图像1,从图1头中获取到图像的相关信息,如图像大小

5.二级引导装载程序将图像1拷贝到RAM中并运行

GGQ_in
离线
最后看到:7个月2天前
加入:2019-07-23 04:41
你好,

你好,

我已经修改了FLASH引脚,也把二次引导装载程序放在了FLASH 0,这次的二级引导装载程序烧录到OTP中是烧录到OTP图像里面吗?

还有我想请问, 蓝牙的时钟晶振引脚排线错误会影响蓝牙的广播吗,比如广播地址会发生错误?

谢谢!

CYibin
离线
最后看到:8个月1周前
工作人员
加入:2017-12-14 02:48
你好,

你好,

是的,二级引导烧录到OTP形象区域。

广播地址错误,具体是指什么?晶振异常会到导致无广播或连接不稳定