我使用Dialog提供的Beacon v5.40.2代码来开发我的产品。
我想在没有外部flash的OTP中使用代码。我认为可能有一些依赖项需要更改,但我不能找到所有的。
我想这是我需要注释掉的:
/ *
注释/取消注释SW配置切换为包含/排除构建
* /
#define CFG_CONFIG_STORAGE //定义配置结构时从flash中读取
我正在测试每个构建加载十六进制文件到RAM,看看它是否显示在信标扫描器应用程序,但到目前为止,我还不能找到所有的flash依赖项,使此正常运行没有外部flash。
我的测试设置是两个相同的电路板与外部闪存的足迹,其中一个装载芯片,另一个没有填充。带flash的那个在标准代码下运行得很好,但是没有flash,同样的代码就不能在板子上运行。
请帮助识别flash相关的代码部分。
谢谢你!
关键词:
设备:
嗨dlo,
CFG_CONFIG_STORAGE是正确的#define,为了构建没有flash访问的OTP固件,应该删除它,而且你也不能使用SUOTA配置文件,因为它需要flash来执行更新。另外,为了不使用flash访问,您需要注释掉与flash交互的user_on_init()函数中的几行代码(注释中有关于应该在特定函数的代码中注释掉哪些行的说明)。您还应该从错误处理程序(nmi_handder () Hardfault_Handler()和wrap_platform_reset())中删除spi_flash_release_from_power_down()函数。
谢谢,PM_Dialog
在user_config.h中我注释掉了
#定义CFG_CONFIG_STORAGE
在user_on_init(void)中我注释掉了:
spi_flash_enable (SPI_EN_GPIO_PORT SPI_EN_GPIO_PIN);
spi_flash_power_down ();
然后我将spi_flash_release_from_power_down()注释掉:
void HardFault_HandlerC(unsigned long *hardfault_args)
void NMI_HandlerC(unsigned long *hardfault_args)
空白wrap_platform_reset (uint32_t错误)
现在十六进制文件不能在任何板上工作(有或没有flash)。
我正在使用SmartSnippets工具箱的引导器加载十六进制。
嗨dlo,
如果你不包括SUOTA配置文件在你的构建,那么你将不能访问SPI Flash。如果你包含SUOTA构建并向用户公开SUOTA服务,并且用户试图更新fw,那么fw会崩溃,因为代码将试图访问一个不存在的flash。关于弗兰克-威廉姆斯的事实不运行在上面的插件时,尝试这套装和灯塔是广告,所以你需要调试,请检查与调试器在运行时代码摊位,当设备最终修改后的软件。
谢谢,PM_Dialog