I want to know wheather is supportable if I change the P0(p0_0 p0_3 p0_5 p0_6) to other ports as SPI when the chip power on?
就是上电检测是否从外部flash启动,作为SPI接口我可以修改flash_programmer.bin文件检查其他管脚吗
Keywords:
Device:
你好,
可以的。如果你是用电脑的 SmartSnippets 来烧录 flash,则直接在SmartSnippetsToolbox -> Layout -> Booter & Setup 中配置即可。
你好:
请问SmartSnippets要求版本吗?我手中的没有找到对应的Booter&Setup选项,官方哪里有详细的说明文档吗
你好,
每个版本都有这个配置的,或许路径不一样;请仔细找一下。
最新的版本,在以下链接中找到并下载:
//www.xmece.com/products/connectivity/bluetooth-low...
网页打开有点慢,请耐心
你好:
我刚接触这款芯片,具体情况是这样的,当初设计电路的时候,外接flash 的SPI放在了P1脚上,所以问一下从外部启动是否改变管脚,查除了P0脚以外的管脚,您的意思是对应的SmartSnippets软件中我可以配置成我自己想要的管脚,然后执行SPI flash将APP下载到外接flash中即可?
你好,
芯片的启动流程是这样的:
1. 上电,产生复位,芯片启动 boot 流程(boot 代码在芯片内部的 rom 中)
2. boot 程序依次、循环地检测各个默认的端口(外部 spi flash 属于 spi slave 端口)是否有时序,然后与有效的端口通讯
3. 端口通讯成功后,会依照既定的协议,将用户的固件加载到芯片内部的 ram 中,然后软件复位,运行 ram 中的用户固件
使用 SmartSnippets toolbox,通过 580 给 flash 烧程序的流程如下:
1. 580 和SmartSnippets 通过串口(默认 P04 P05)通讯、握手成功
2.SmartSnippets通过串口,将 flash_programer.bin 这个固件加载到 580 的 ram 中并运行
3.flash_programer 运行之后,会通过串口,继续与SmartSnippets通讯,实现:配置闪光灯的spi 口,擦除 flash,接收SmartSnippets 发送的用户固件数据,烧录到 flash 中等。
回到你的问题,默认的 spi 口改变了之后,应该如何让 580 成功从定制的 spi 口加载 flash 中的代码?
方法如下:
1. 打开 sdk 中的 secondary bootloader 工程,找到 SPI_BOOTER 相关的代码,修改其中的 spi boot 引脚配置。
2. 将secondary bootloader 编译、烧录到 580 的 OTP 中
修改后,580 启动流程如下:
1. 580 上电,发现 OTP 中有程序(secondary bootloader),将其拷贝到 ram 中运行
2. secondary bootloader 运行后,从相应的 spi 接口中,将 flash 的固件拷贝到 ram 中,并运行
以上方法,建议你先接触、熟悉 SUOTA 的流程之后,再尝试使用。
修改默认 spi flash 接口会带来一些额外的工作,在开发阶段会造成一些麻烦,请尽量选用默认的接口。
您好:
很详细了,谢谢。主要是现在板子硬件改动可能小,根据您的经验,如果修改SPI接口,对于后续产品化,包括工装设计,产线检测,OTA升级等方面会造成麻烦吗?方便说明造成的额外工作具体指哪些方面吗?现在的硬件如果使用默认的SPI,对于我们目前硬件设计来说,布线会影响信号。
你好,
额外的工作,即我上述所说之内容。
总而言之,改变默认 spi 引脚,就必须烧录 secondary bootloader 来进行适配,如果你的产品是支持 OTA 的,则这个不算额外的工作,因为 OTA 也必须烧录 secondary bootloader
您好:
实验过了,太感谢了!!
不客气