我正在阅读UM-B-012文档,该文档涉及创建辅助引导程序。
我的问题是关于两件事:
1UART支持的定义和
2DMA长度。
我的系统有一个外部SPI闪存,它可以容纳我的实际应用程序。我使用Smartsnippet的“SPI flash程序员”工具,用我的应用程序编程外部从SPI flash,这非常简单。我可以读取闪存并查看(0x70、0x50。。。。。(应用程序代码))。我希望在系统启动时用这个程序加载它。
我正在阅读UM-B-012,以了解如何为OTP创建辅助引导加载程序。
大部分内容都很清楚,我想了解的是:
我已经启用支持SPI\u FLASH\u和支持\u AN_uub\u 001定义,但在我的系统中,我也应该启用支持UART\u在引导程序中定义。我倾向于不是启用它。但是如果我这样做,我会怀疑如何在应用程序发生变化时重新编程SPI闪存,而UART不支持。
1因此,通过在OTP中禁用UART_U支持的标志的自定义引导加载程序,将来需要时,我是否仍然能够使用Smartsnippets工具重新编程外部SPI flash?
接下来,DMA长度。
2在文档的第21页,它说您必须修复DMA长度. 我不知道这个值是什么。
有人能解释一下这两个问题吗?
非常感谢。
关键词:
设备:
嗨维克拉姆西奥,
1.通过将辅助引导加载程序刻录到OTP,将通过绕过da的端口扫描并直接进入SPI闪存,从而增强系统的启动速度。如果定义SPI和UART,您将丢失该私有边缘,因为UART将首先被扫描(因此您将能够从UART启动并使用智能SNIPTES烧录SPI),因为sb首先检查UART接口,然后是SPI。
2.DMA字段的值应为1FC0,即32512字节,即OTP区域的总大小。当da从深度睡眠中醒来后,OTP中的自定义代码区域将全部复制到系统RAM。
谢谢你的对话
您希望在烧了辅助引导加载程序后,能够用SmartSnippet重新编程代码是什么目的?辅助引导加载程序仅用于生产。如果您没有在OTP标头中禁用它,您仍然可以使用JTAG连接到设备。更新固件的另一种方法是使用SUOTA。如果您真的想通过UART引导,您应该启用支持的UART。
DMA字段包含将复制到sysram的OTP的单词数。1FC0指整个应用区域。要优化将OTP复制到sysram所需的时间,您应该将其设置为存储在OTP中的固件大小,在这种情况下,是次要引导加载程序(字节数除以四舍五入)。复制的时间非常快,所以如果你不费心设置正确的大小,你可以总是设置1FC0。