DA14583闪存读/写

⚠️
你好。。谢谢你来到论坛。令人兴奋的消息!我们现在正在迁移到新的论坛平台,该平台将提供更好的功能,并包含在主对话网站中。所有员额和帐户都已迁移。我们现在只接受新论坛的流量-请在//www.xmece.com/support. 我们将在未来几天内修复bug/优化搜索和标记。
10个员额/0个新员额
最后一篇文章
拉贾普雷罗希特
离线
最后一次见到:11个月,3个星期前
加入:2017-04-20 09:17
DA14583闪存读/写

亲爱的对话框支持,

我需要非常紧急的闪存读写程序的帮助。

我使用DA14583 MCU设计了一个设备,并编写了代码,在按下按钮时,我切换LED灯泡组。

为了操作LED灯泡,创建一个数据包(包包括灯泡的数量和它们的地址),从BLEScanner分配到自定义设备。

固件中的下一件事是,我读取从应用程序发送的数据包,然后根据我的应用程序对其进行解析,并将值/数据存储到闪存中(数据存储正在完美进行)。

我从闪存读取数据时,系统上电休息(当设备启动时),读取也是完美的发生。

我在将.hex文件刻录到设备时遇到问题,

我已经为我的项目创建了一个.hex文件,并使用smart snippet工具将固件刻录到自定义设备中。成功编程设备后,我需要让设备停止播发和启动,在执行此操作时,如果我在buring.hex文件后停止设备,我将从闪存缓冲区获得“0xFF”,如果我再次(第二次)停止设备,我将从闪存缓冲区获得默认状态。

我不明白为什么设备需要两次休息才能从闪存缓冲区读取实际数据?

或者我遵循错误的方法从falsh得到默认数据。

我急需解决这个问题,请帮我解决。

感谢和问候

罗希特

设备:
PM_对话框
离线
最后一次见到:1周5天前
工作人员
加入:2018-02-08 11:03
嗨Rajapurerohit,

嗨Rajapurerohit,

让我问你几个问题,以便了解你的成就。您烧伤SPI flash与您的固件与使用flash程序员的SmartSnippets工具箱,不是吗?当你下载你的代码并按下重置键后,你能确认你的设备是否正确的广告吗?您可以使用工具箱的Power分析器进行测试。你是否基于我们的SDK示例?如果我能够正确理解,在引导后你想从SPI flash读取一些数据,这是正确的吗?因为你有一个自定义的板和自定义的应用程序代码,这将是非常有帮助的提供我一些额外的输入或截图,以复制你的问题。

谢谢,下午好

拉贾普雷罗希特
离线
最后一次见到:11个月,3个星期前
加入:2017-04-20 09:17
你好PM_Dialog,

你好PM_Dialog,

您烧伤SPI flash与您的固件与使用flash程序员的SmartSnippets工具箱-是的,

下载代码并按“重置”后,请确认您的设备是否正确进行了广告宣传-是的,设备广告

在引导之后,您想要从SPI flash读取一些数据,这是正确的吗?——是的,

在我的固件user_custs1_imple文件,我写了一个函数,我存储数据/读取/从flash。请找到我的文件附在闪存配置和闪存读写读写功能写入。

存储数据闪存缓冲功能-

1.作废设置(作废);

2.空白CombineBDAwithBrightness(无效);

从闪存功能读取数据-

1.空白ReadPIRSettings(无效);

2.空白ui8UpdateLocalDatabase(无效);

当与应用程序断开连接时,我将这些数据存储到闪存[void StoreintoFlash(void)],并在设备启动时从闪存[void ReadfromFlash(void)]读取数据(即,在用户设置文件void periph_init(void);函数中)。

因此,在。hex文件烧录之后,当reset按下我将在缓冲区中获得(255)0xFF,如果再次重置设备,我将获得0x00。在第二次重置后,我的设备工作得很好数据存储和读取也很好。

我想知道为什么这个设备需要两次休息才能正常工作。请帮助我哪里做错了,或者我遵循错误的步骤调试。

感谢和问候

罗希特

PM_对话框
离线
最后一次见到:1周5天前
工作人员
加入:2018-02-08 11:03
嗨Rajapurerohit,

嗨Rajapurerohit,

我想你应该在用户应用程序中调用StoreintoFlash(),不是吗?因此,在断开连接之后。请检查您希望从SmartSnippets工具箱的flash编程器写入存储数据的地址,好吗?您是否能够看到仅显示0xFF的预期数据?如果看到0xFF,则表示尚未写入该值。另外,正如我从您发布的代码片段中看到的,您在ReadfromFlash()和StoreintoFlash()中初始化并启用了SPI闪存,但我看不到SPI初始化。请您查看SDK的spi_flash_peripheral示例的spi_flash_peripheral_init()函数,好吗?您是否遵循此示例作为参考?

谢谢,下午好

拉贾普雷罗希特
离线
最后一次见到:11个月,3个星期前
加入:2017-04-20 09:17
你好PM_Dialog,

你好PM_Dialog,

是的,在断开连接后,我正在将数据存储到flash中,但我不明白您提到的遵循的步骤-[您能检查一下您想从SmartSnippets工具箱的flash程序员写入存储的数据的地址吗?你能看到你只看到0xFF的预期数据吗?

你能给我简单介绍一下上述建议的步骤吗?

是的,我遵循了spi_flash()代码,按照我的理解进行了更改,我在初始化步骤中是否做错了什么?

在一个更多的项目中,我面临不同的问题与flash,相同的程序,我已经遵循读/写什么,我正在遵循的当前项目。然而,

在这个项目(另一个项目)中,设备停止广告。

感谢和问候

罗希特Rajapure

PM_对话框
离线
最后一次见到:1周5天前
工作人员
加入:2018-02-08 11:03
嗨Rajapurerohit,

嗨Rajapurerohit,

我的意思是从smart snippets工具箱的flash程序员中读取SPI flash。因此,在断开连接后,在不重置电路板的情况下,您可以检查数据是否已成功存储。关于第二个问题,您能在调试模式下运行代码吗?我需要将固件下载到系统RAM中,热连接调试器并检查代码是否卡在某个地方。

谢谢,下午好

拉贾普雷罗希特
离线
最后一次见到:11个月,3个星期前
加入:2017-04-20 09:17
嗨PM_Dialog,

嗨PM_Dialog,

感谢您的快速回复,

我已经做了以下步骤,为第一个计划-

1.首先,刻录。hex文件并重置设备[设备广告]

2.其次,我再次按下SmartSnippet工具上的connect选项,然后单击Read选项,看到7000以后的地址数据是0xFF[没有写入数据]

3.第三,我从App (BLE Scanner)分配数据,并重复步骤2,能够看到字段7000的地址

4.从USB断开(断电)设备,然后再次使用USB重新连接(通电),再次重复步骤2,我可以看到数据。

这是我所遵循的正确步骤吗?

关于我的第二个项目-

在调试模式下,代码在任何地方都不会被卡住。我把密码保存了半个小时。该设备仍然可以完美地进行广告宣传。

只有在烧录.hex文件并从应用程序分配数据后,如果我断开设备(USB)并再次接通设备电源(USB),我才能看到我的设备广告。

我的第一个项目,我认为我们可以解决它,但第二个项目,我需要紧急帮助,它是一个大问题。

所以,请帮助解决我的第二个项目广告问题。

感谢和问候

罗希特

PM_对话框
离线
最后一次见到:1周5天前
工作人员
加入:2018-02-08 11:03
嗨Rajapurerohit,

嗨Rajapurerohit,

关于您的第一个项目,似乎数据没有写入SPI Flash。我将再次检查您的代码片段。

关于你的第二个项目,我认为你已经烧毁了SPI Flash与你的固件和设备从那里启动。断开后,如果你重置你的板,你能再次广告吗?

谢谢,下午好

拉贾普雷罗希特
离线
最后一次见到:11个月,3个星期前
加入:2017-04-20 09:17
你好PM_Dialog,

你好PM_Dialog,

很抱歉迟了答复。

第一个项目:

这个问题解决了,断电和电源周期后,我的设备广告正常,没有任何问题。

对于第一个项目,问题在于通知功能。由于通知功能的多个副本,设备在断电后未进行广告。现在问题解决了,设备也正常工作。

在第二个项目中:

是的,在。hex文件燃烧和重置检测后,设备正在发布。

现在,对于这两个项目,我面临相同的问题,其中重置检测闪存字段为0xFF,第二个重置后的内存字段为0x00。

感谢和问候

罗希特

PM_对话框
离线
最后一次见到:1周5天前
工作人员
加入:2018-02-08 11:03
嗨Rajapurerohit,

嗨Rajapurerohit,

很抱歉耽搁了,但我无法复制您的问题。在向flash写入数据时可能会出现错误。

谢谢,下午好