需要帮助:如果SPI flash不是空的,则无法对其进行编程

9 posts / 0 new
最后一篇文章
gouzhuang
离线
最后一次见到:4年10个月前
已加入:2015-04-16 08:10
需要帮助:如果SPI flash不是空的,则无法对其进行编程

Hi Dialog Support,

我们已经建立了一些董事会完全复制了聪明Tag reference design and encountered some very strange behaviours on programming the boards.

SmartSnippets 3.7 SPI Flash编程器用于编程。如果一个电路板是第一次被编程,它将成功。当我第二次尝试编程时,它失败了。

There were 2 cases:
案例1:
在板1上,第一个成功编程的固件是SmartTag参考应用程序。当我试图将其编程到另一个自定义固件时,单击“连接”时会显示以下消息
[INFO@15-04-29 23:58:16]无法测量总IR长度。时差持续偏高。
[错误@15-04-29 23:58:16]无法读取内存。
[错误@15-04-29 23:58:16]打开JLink连接时未找到已知芯片。正在终止进程。。。
[INFO@15-04-29 23:58:16]无法将固件文件下载到主板。

If I press the reset button while click "Connect", it connects successfully
[信息@15-04-30 00:02:40]已选择BTLE设备。
[INFO@15-04-30 00:02:40]固件文件C:\Users\bgou\SmartSnippets\resources\jtag\u programmer.bin已选择下载。
[INFO@15-04-30 00:02:41]已成功将固件文件下载到主板。

然后我选择了要下载的f/w文件并单击Burn,下面显示的日志消息看起来很成功,但是读取的内存内容与f/w文件不同
[INFO@15-04-30 00:04:35]头记录已从十六进制文件custom\u fw.hex中删除。
[INFO @15-04-30 00:04:35] Read 17416 bytes from file custom_fw.hex.
[INFO@15-04-30 00:05:01]开始烧录地址0x00000处17736字节的内存。
[INFO @15-04-30 00:05:05] Memory burning completed successfully.
[INFO@15-04-30 00:05:05]读取内存以刷新内存内容。。。。
[信息@15-04-30 00:05:08]阅读已完成。读取32768字节。

我断开了电路板的连接并测试了它,发现它仍然运行旧的f/w。以上步骤我重复了很多次,结果都一样。

案例2:
在另一块板上,我用SmartSnippets连接它,它显示:
[INFO@15-04-30 00:02:40]固件文件C:\Users\bgou\SmartSnippets\resources\jtag\u programmer.bin已选择下载。
[INFO@15-04-30 00:02:41]已成功将固件文件下载到主板。

然后我断开了电路板,没有烧掉任何黑白图像。然后我再次连接主板,这次尝试烧录一个f/w,其行为类似于案例1:日志显示烧录成功完成,但刷新的内存内容不同,测试显示没有烧录f/w。

Thanks,
比尔

gouzhuang
离线
最后一次见到:4年10个月前
已加入:2015-04-16 08:10
有一点需要补充:两者都适用

需要补充的一点是:对于这两块板,我可以使用Keil将f/w毫无问题地加载到RAM中。

夏季20100514
离线
最后一次见到:4 years 5 months ago
Guru
已加入:2014-12-30 05:01
嗨,SPI闪光灯应该是

嗨,在进行写入操作之前,应该擦除SPI闪存(至少是要写入的扇区)。

gouzhuang
离线
最后一次见到:4年10个月前
已加入:2015-04-16 08:10
是的,我试图抹去

是的,我试图先擦除flash,但不幸的是刷新的内容看起来很奇怪:有些是00,有些是FF,有些是随机值。

JE\U对话框
离线
最后一次见到:13小时15分钟前
工作人员
已加入:2013-12-05 14:02
Hi gouzhuang, what image are

你好,勾庄,你想把什么图像烧成闪光?这是从智能标签项目的标准源代码生成的,还是您自己定制的版本?你有一个第二引导加载程序烧成OTP吗?
BR JE\u对话框

gouzhuang
离线
最后一次见到:4年10个月前
已加入:2015-04-16 08:10
我要烧掉的图像

我尝试刻录的图像是一个基于模板项目的非常简单的图像,只有电池服务和定制的adv内容。

我在otp中没有辅助引导加载程序。

Thanks.

gouzhuang
离线
最后一次见到:4年10个月前
已加入:2015-04-16 08:10
我知道了什么是

我知道问题出在哪里了。如果flash只编程一次,那么每次通电时板都会从flash引导。这似乎妨碍了再次擦除/写入闪存。我要做的是在单击SmartSnippets中的连接之前打开电源开关,这样我就有机会在它从flash启动之前进行连接。我已经成功地重新编程3板使用这个技巧。

注意:复位对我不起作用,我必须使用电路板上的电源开关。

这是预期的行为还是我做错了什么?希望有人能解释一下。

Thanks.

JE\U对话框
离线
最后一次见到:13小时15分钟前
工作人员
已加入:2013-12-05 14:02
你好,是郭庄

你好,gouzhuang,如果没有OTP并且检测到外部连接(这表明ROM bootloader工作正常),那么设备将直接从FLASH引导。参考设计的UART编程的问题是,在上电复位时,UART线路上有时会有电压,从而停止设备引导。我们通常使用JTAG对参考设计板进行编程,尽管tihs需要特定的电缆,并且alreayd可以访问JLINK调试器。

BR JE\u对话框

gouzhuang
离线
最后一次见到:4年10个月前
已加入:2015-04-16 08:10
Hi JE_Dialog, the fact is

嗨,JE\u Dialog,事实上我是通过DevKit Basic使用JTAG编程板的。

Thanks,
比尔