我正在使用对话台v5.40.2代码来开发我的产品。
我想在没有外部闪存的情况下使用OTP中的代码。我认为可能有一些依赖性我需要改变,但我找不到所有这些依赖性。
我认为这是我需要发表评论的人:
/ *
注释/未提交的SW配置交换机以包括/排除构建
* /
#define cfg_config_storage //在定义时,从闪存中读取配置结构
我正在通过将十六进制文件加载到RAM中来测试每个构建,看看它是否显示在信标扫描仪应用上,但到目前为止我还没有找到所有闪存依赖项,以便在没有外部闪存的情况下正确地运行此运行。
我的测试设置是两个相同的电路板,具有外部闪光灯的占地面积,其中一个装满了芯片,另一个未填充另一个芯片。具有闪存的闪光灯与标准代码运行精细,但同样的代码在没有闪存的情况下不会在电路板上运行。
请帮助识别闪存相关的代码部分。
谢谢!
关键词:
设备:
嗨DLO,
CFG_CONFIG_STORAGE是应删除的正确#define,以便为OTP构建无闪存访问的固件,并且您将无法使用Suota配置文件,因为它需要闪存以执行更新。此外,为了运行没有Flash访问,您需要在与Flash交互的user_on_init()函数中注释出几行(有关您应该在该特定功能的代码中注释出来的评论有关的说明)。您还应从错误处理程序(nmi_hanlder()hardfault_handler()和wrap_platform_reset())中删除spi_flash_release_from_power_down()函数。
谢谢,PM_DIALOG.
在user_config.h我发表了评论
#define 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 stardfault_handlerc(unsigned long * hardfault_args)
void nmi_handlerc(无符号长* hardfault_args)
void wrap_platform_reset(UINT32_T错误)
现在,十六进制文件在任何一个板上都不适用(有或没有闪存)。
我正在使用SmartSnippets Toolbox的Booter加载Hex。
嗨DLO,
如果您不包含构建中的Suota配置文件,那么您将无法访问SPI闪存。如果您包含Suota Build并在用户上公开拟议服务,并且用户尝试更新FW,则是FW将崩溃,因为代码将尝试访问不存在的闪存。关于FW在执行上述Mods时运行的事实,在Pro套件上尝试了此功能,并且灯架是广告的,所以您将不得不调试此操作,请使用代码摊位和何时调试该调试器运行修改过的SW时,设备最终结束。
谢谢,PM_DIALOG.