晚上好。
我面临着一个奇怪的问题,我无法向自己解释,也许你可以帮助我
我通过支持UART ANS SPI(BootLoader.h中的更改)编译了辅助引导加载程序项目
-#undef SUPPORT_AN_B_001 //启用辅助引导加载程序
+#定义support_an_b_001 //为辅助引导加载程序启用它
- #定义allow_no_header
+#undef allow_no_header
- #define aes_encrypted_image_supported 1
+#定义AES_ENCRYPTED_IMAGE_SUPPORTED 0 //根据UM-B-012第15页
- # undef UART_SUPPORTED
+#define uart_supported
#define spi_flash_supported.
根据您的文档,UART下载在UART模式下使用J6上的跳线与J6上的跳线工作完美。
在SPI配置中移动跳线,我无法加载闪存上存在的代码(SmartSnippet在我读取时在闪存上确认它)
但是,当其他寄存器用于时,奇怪的部分是正确读取闪光灯:
#define man_dev_id 0x90.
#define read_unique_id 0x4b.
但是在代码中读取时,返回满满0xff的标题:
spiflashread((unsigned long)&An001header,(unsigned long)0,(unsigned long)an001_spi_header_size);
我做错什么了吗?
在附上PDF与SPI内存的转储和调试会话的快照
MIK.
P.S.
在spi_commands.c中添加了新功能
uint16_t spi_flash_type(void){
返回spi_read_flash_memory_man_and_dev_id();
}
uint64_t spi_uniqueid(空白){
返回spi_read_flash_unique_id();
}
嗨fontamihw,
您是否试图遵循特定的应用笔记或特别做某事?您能描述一下你关注的步骤吗?另外尝试使用UART打印SPI Flash的内容,只是为了确定,您可以使用其中一个SPI外围示例。
谢谢mt_dialog.
好的。
我做了更多的测试,我仍然不明白发生了什么。
我从U建议的例子开始(感谢它真的很有用),并发现,在第一次开始时,我遇到了我在第二个引导加载程序中遇到的同样的问题。
其测试闪存评估Pro Mount,及其唯一编号正常工作,但读取页面返回满0xFF。
继续测试我写了一些数据,并且能够读取SAMES(所以正确地通过其SPI通道编程闪光灯)。
但如果我阅读Flash与smartnippet .....仍然可以看到我下载的应用程序在这个线程的开始与“SPI Flash程序员”标签。
基于这种经验,我略微改变了辅助引导加载器。
从UART启动时,我将所有字节复制到SPI闪存中并开始下载的应用程序
从SPI引导时,它将从SPI Flash开始读取的应用程序。
我使用UART引导,不同的应用程序进行了一些测试并复制到Flash中。雷竞技安卓下载
所有时间我都使用keil调试运行辅助引导加载程序,它们都被执行,两个UART引导以及SPI启动后。
但仍然SmartSnippet将其他应用程序显示到SPI中。
现在的古玩地点是:
OTP图像是原始的,当我在没有调试器的PRO时电源时,执行“SmartSippet应用程序”。
即使我在j6上删除所有跳线,在该应用程序上的电源时,也会启动(并且辅助引导加载程序无法读取无跳线的闪光灯)
因为我想刻录到我改变的次级引导程序时,所以我的问题是.....
从OTP阅读“SmartSnippet应用程序”而不是闪存中的位置
如果我很了解,原来的OTP从UART SI和I2C依次读取,所以为什么这项行为?
MIK.
嗨fontamihw,
关于智能片段和SPI,请确保您正确配置了Pro Board上的SPI引脚(检查跳线)还确保在“电路板设置”选项卡中,为SPI Flash引脚配置选择了相应的引脚。此外,在智能片段尝试使用JTAG接口连接,以防您使用UART接口,如果正确的图像返回,请再次检查一次。关于你的问题,我有点困惑,我没有得到你的意思,你说,当SPI闪光灯加载图像时,即使你删除SPI跳线来自SPI的图像也被加载?如果启用了应用程序标志并且禁用主引导加载程序的串行引导,则主引导加载程序靴子从OTP启动,请检查o雷竞技安卓下载fficoctum-b-012_da14580_581_583创建辅助引导Loader_v3.0和An-B-001 - 启动从串行接口V2.0文档的过程中580才能启动。
谢谢mt_dialog.