首先,我使用SmartSnippets将8字节的数据刻录到0x8001中,并通过单击read来验证flash内容。无论我使用DA14580_beacon_3.40.6还是外围测试项目的spi_flash,都无法通过调用spi_flash_read_data()正确读取flash内容。看来这两个项目是基于14580来实施的,对吗?请建议。
嗨jackiechau,
您试图通过信标参考设计读取插入到闪光灯中的数据?对于从flash中读取数据的信标器,它使用两个报头,一个产品报头和一个配置报头,产品报头指示程序配置报头的位置。对于外围设备的例子,它在读写过程发生之前擦除整个芯片。这两个项目都是为了580。你是否按照583内部闪光引脚的顺序配置了合适的GPIO引脚?
由于MT_dialog
嗨MT_dialog,
在外围的例子中,我已经注释掉了整个芯片。但是可能是我配置了错误的GPIO,请您列出是哪个I/O以及它的功能来控制583的内部flash引脚,谢谢。
控制内部flash的583引脚是P2_0/CLK - P2_3/CS - P2_4/MISO - P2_9MOSI,你可以在数据表和SDK项目中的user_外围_setup.h中找到它们,除了外围示例项目。
感谢您的信息,我已经修改了外围设备示例,可以在调试模式下成功读取0x8000的16字节flash数据(使用JLink调试器)。然而,我烧程序图像到闪存和复位板,它似乎程序停止和运行非常慢,然后16字节0x00被读取。那些读的数据是不正确的,我已经通过使用SmartSnippets验证了flash数据。然后我在程序中添加了一些printf调试消息,并以独立模式运行程序,当开始执行spi_flash_auto_detect()时,程序似乎停止了。在flash中执行程序和同时读取flash数据有问题吗?如果有,如何解决,谢谢。
嗨Jackiechau,
在flash中燃烧一个图像并在flash的另一个较低的部分有一些数据是没有问题的,为了验证是否有问题发生,我已经在这个简单的例子中做了一些修改,以便与flash交互并打印读数,我用专有头程序员从智能代码片段烧毁了一些数据,并将数据放在闪存的0x18000地址中。我可以从闪存读取数据,并在终端上显示,没有任何延迟。听起来你的flash根本不可访问,你调用release_from_power_down()函数来唤醒你的flash吗?从SPI引导583的引导加载程序后,它把闪光灯下电。
问题解决了,谢谢。
嗨jackiechau,
您试图通过信标参考设计读取插入到闪光灯中的数据?对于从flash中读取数据的信标器,它使用两个报头,一个产品报头和一个配置报头,产品报头指示程序配置报头的位置。对于外围设备的例子,它在读写过程发生之前擦除整个芯片。这两个项目都是为了580。你是否按照583内部闪光引脚的顺序配置了合适的GPIO引脚?
由于MT_dialog
嗨MT_dialog,
在外围的例子中,我已经注释掉了整个芯片。但是可能是我配置了错误的GPIO,请您列出是哪个I/O以及它的功能来控制583的内部flash引脚,谢谢。
嗨jackiechau,
控制内部flash的583引脚是P2_0/CLK - P2_3/CS - P2_4/MISO - P2_9MOSI,你可以在数据表和SDK项目中的user_外围_setup.h中找到它们,除了外围示例项目。
由于MT_dialog
嗨MT_dialog,
感谢您的信息,我已经修改了外围设备示例,可以在调试模式下成功读取0x8000的16字节flash数据(使用JLink调试器)。然而,我烧程序图像到闪存和复位板,它似乎程序停止和运行非常慢,然后16字节0x00被读取。那些读的数据是不正确的,我已经通过使用SmartSnippets验证了flash数据。然后我在程序中添加了一些printf调试消息,并以独立模式运行程序,当开始执行spi_flash_auto_detect()时,程序似乎停止了。在flash中执行程序和同时读取flash数据有问题吗?如果有,如何解决,谢谢。
嗨Jackiechau,
在flash中燃烧一个图像并在flash的另一个较低的部分有一些数据是没有问题的,为了验证是否有问题发生,我已经在这个简单的例子中做了一些修改,以便与flash交互并打印读数,我用专有头程序员从智能代码片段烧毁了一些数据,并将数据放在闪存的0x18000地址中。我可以从闪存读取数据,并在终端上显示,没有任何延迟。听起来你的flash根本不可访问,你调用release_from_power_down()函数来唤醒你的flash吗?从SPI引导583的引导加载程序后,它把闪光灯下电。
由于MT_dialog
嗨MT_dialog,
问题解决了,谢谢。