需要帮助:无法编程SPI flash,如果它不是空的

9个员额/ 0个新员额
最后发表
gouzhuang
离线
最后看到:4年9个月前
加入:2015-04-16 08:10
需要帮助:无法编程SPI flash,如果它不是空的

嗨对话框支持,

我们确实复制了SmartTag参考设计,并在编写电路板时遇到了一些非常奇怪的行为。

SmartSnippets 3.7 SPI Flash Programmer用于编程。如果一个董事会是第一次被编程,它就会成功。当我第二次尝试编程时,它失败了。

有2例:
案例1:
在1号机上,第一个成功编程的固件是SmartTag参考应用程序。当我试图将它编程到另一个自定义固件时,当我点击“连接”时显示以下消息
不能测量全部的IR len。TDO是恒定的高。
ERROR @15-04-29 23:58:16
[ERROR @15-04-29 23:58:16]在打开JLink连接时未发现已知芯片。终止过程中…
[INFO @15-04-29 23:58:16]固件下载到单板失败。

如果我在点击“连接”的同时按下复位键,则连接成功
[INFO @15-04-30 00:02:40] BTLE设备已选中。
[INFO @15-04-30 00:02:40]固件文件C:\Users\bgou\SmartSnippets\resources\ jtag_programman .bin已被选择下载。
[INFO @15-04-30 00:02:41]成功下载固件文件到单板。

然后我选择f/w文件下载,点击Burn,显示如下日志消息,看起来是成功的,但内存内容读取与f/w文件不同
[INFO @15-04-30 00:04:35]已经从hex文件custom_fw.hex中删除了头记录。
[INFO @15-04-30 00:04:35]从文件custom_fw.hex中读取17416字节。
[INFO @15-04-30 00:05:01]在地址0x00000开始烧存17736字节的数据。
内存燃烧成功完成。
[INFO @15-04-30 00:05:05]阅读记忆刷新记忆内容....
阅读已经结束。读取32768字节。

我断开了板和测试它,发现它仍然运行旧的f/w。我重复了很多次以上的程序,都有相同的结果。

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

然后我断开了板没有烧伤任何f/w图像。然后我重新连接板子,尝试这次烧f/w,表现与案例1类似:日志显示烧成功,但刷新的内存内容不同,测试显示没有烧f/w。

谢谢,
比尔

gouzhuang
离线
最后看到:4年9个月前
加入:2015-04-16 08:10
还有一件事要补充:对两者来说

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

summer20100514
离线
最后看到:4年4个月前
大师
加入:2014-12-30 05:01
嗨,SPI FLASH应该是

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

gouzhuang
离线
最后看到:4年9个月前
加入:2015-04-16 08:10
是的,我试着擦掉

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

JE_Dialog
离线
最后看到:4周1天前
工作人员
加入:2013-12-05 14:02
你好,郭庄,什么形象

你好,勾庄,你想烧什么形象到FLASH里?这是从智能标签项目的标准源代码生成的,还是您自己定制的版本?你是否在OTP中刻录了一个辅助引导加载程序?
BR JE_Dialog

gouzhuang
离线
最后看到:4年9个月前
加入:2015-04-16 08:10
我想要烧掉的形象

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

我在otp中没有第二个引导加载程序。

谢谢。

gouzhuang
离线
最后看到:4年9个月前
加入:2015-04-16 08:10
我弄明白了

我知道问题出在哪了。如果闪存被编程一次,板从闪存每次开机。这似乎妨碍了再次擦除/写入闪光。我要做的是在SmartSnippets中点击连接之前打开电源开关,这样我就有机会在它从flash启动之前连接。我已经用这个技巧成功地重新编程了3块电路板。

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

这是意料之中的行为,还是我做错了什么?希望有人能解释清楚。

谢谢。

JE_Dialog
离线
最后看到:4周1天前
工作人员
加入:2013-12-05 14:02
你好,勾庄,就是

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

BR JE_Dialog

gouzhuang
离线
最后看到:4年9个月前
加入:2015-04-16 08:10
嗨,JE_Dialog,事实是

你好,JE_Dialog,事实上,我是通过DevKit Basic使用JTAG来编程的。

谢谢,
比尔