亲爱的对话支持,
我需要在闪存读/写过程中非常紧急帮助。
我设计了一个使用DA14583单片机的设备,我写了代码,在按钮按下我正在切换LED灯泡组。
要操作LED灯泡,创建了一种数据包(数据包包括灯泡的数量及其地址),它从Blescanner分配到自定义设备。
在固件的下一件事,我读数据包从应用程序发送,我parsh它作为我的应用程序和存储值/数据到flash(存储数据是完美的发生)。
当系统电源休息时(设备启动时)读取时,我读取来自Flash的数据也完全发生。
我面临的问题,同时刻录。hex文件到设备,
我已经创建了我的项目的。hex文件,并使用智能代码片段工具,将固件刻录到自定义设备。编程设备成功之后,我需要其他设备来宣传和启动,而这样做,如果我休息设备燃烧.hex文件之后,我得到了“0 xff”从flash缓冲区,如果我再次(第二次)其他设备我得到我从flash缓冲区的默认状态。
我不了解为什么设备需要两次休息以从闪存缓冲区读取实际数据?
或者遵循错误的方法来获取来自falsh的默认数据。
它非常迫切地为我制作这个问题,请帮我解决它。
感谢致敬
rohit.
设备:
嗨rajapurerohit,
让我问你一些问题,以了解你的成就。你用固件烧掉了SPI闪光灯,用Smartsnippets Toolbox的Flash程序员使用,不是吗?下载您的代码并按重置后,您是否可以确认您的设备是否正确广告?您可以测试使用工具箱的Power Profiler。您是否根据我们的任何SDK示例?如果我能够正确理解,在启动后,您想从SPI闪存中读取一些数据,这是正确的吗?由于您拥有自定义板和自定义应用程序代码,因此为我提供一些额外的输入或屏幕截图是非常有帮助的,以便复制您的问题。
谢谢,PM_Dialog
你好pm_dialog,
使用SmartSnippets Toolbox的Flash程序员使用Flash程序员,您将SPI Flash与固件烧掉 - 是的,
在你下载你的代码并按下重置键后,你能否确认你的设备广告是否正确-是的,设备广告
启动后,您想从SPI闪存中读取一些数据,这是正确的吗?- 是的,
在我的固件user_custs1_imple文件中,我已经写了一个函数,我将数据存储到/ relf flash。请在写入闪存配置和闪存读/写读/写函数的情况下,找到我的文件。
将数据存储到闪存缓冲功能 -
1.空白StorePIRSettings(无效);
2.无效CombineBDAWithBrightness(无效);
从flash读取数据功能
1. void ReadPirsettings(空白);
2. void ui8updatelocaldataTabase(空白);
我存储这些数据到flash [void StoreintoFlash(void)]当断开从应用程序和读取数据从flash [void ReadfromFlash(void)]当设备初始化(即。,在user_setup文件中无效的外围init(无效);功能)。
所以,在.hex文件刻录后,当重置时,我在缓冲区中获得(255)0xFF,如果再次重置设备,我得到0x00。第二个重置后,我的设备工作完美地存储并读取了完美。
我想知道为什么设备需要两次休息才能正常运行。请帮助我在哪里做错事,或者我遵循错误的步骤来调试。
感谢致敬
rohit.
嗨rajapurerohit,
我认为您在user_app_disconnect中调用了StoreintoFlash(),不是吗?所以,断开连接之后。您能检查一下您想要从SmartSnippets工具箱的flash程序员中写入存储数据的地址吗?您是否能够看到仅看到0xFF的预期数据?如果您看到0xFF,这意味着该值还没有被写入。此外,正如我能够从您发布的代码片段中看到的,您初始化并启用SPI flash,在ReadfromFlash()和StoreintoFlash()中,但我不能看到SPI初始化。你能检查一下SDK的spi_flash外设示例的spi_flash_peripheral_init()函数吗?你是按照这个例子来做的吗?
谢谢,PM_Dialog
你好pm_dialog,
是的,在断开连接后,我将数据存储到闪存,但我不明白你提到的步骤跟随 - [你能检查你想要从SmartSnippet工具箱的闪存程序员写下存储的数据吗?你能看到你只看到0xFF的预期数据吗?]。
你能简要告诉我对上述建议的步骤吗?
是的,我已经遵循spi_flash()代码,我已经做了我所理解的更改,我在初始化步骤中做错了什么吗?
在另一个项目中,我面临着闪存的不同问题,我已经遵循的相同程序读/写我正在关注当前项目的内容。然而,
在这个项目(另一个项目)设备停止广告。
感谢致敬
Rohit Rajapure.
嗨rajapurerohit,
我的意思是从智能片段工具箱的flash程序员读取SPI flash。因此,在断开连接后,无需重新设置您的主板,您可以检查您的数据是否已成功存储。关于你的第二个问题,能否在调试模式下运行你的代码?我要下载固件到System-RAM,热连接调试器并检查代码是否卡在某处。
谢谢,PM_Dialog
嗨pm_dialog,
谢谢你的快速回复,
我已经完成了以下步骤第一的项目- - - - - -
1.首先,刻录.hex文件并重置设备[设备广告]
2.其次,我再次按下SmartSnippet工具上的连接选项,并单击读取选项,看到7000以上的地址数据是0xFF[没有数据被写入]
3.第三,我从App(BLE扫描仪)分配了数据并重复步骤2,能够在字段7000上查看地址上的数据
4.断开(下电)设备从USB和重新连接(上电)再次使用USB,再次重复步骤2,我可以看到数据。
这是我遵循的正确步骤吗?
并就我的第二个项目问题 -
在调试模式下,代码不会被卡在任何地方。我把代码保存了半小时。该设备的广告仍然很完美。
只有在燃烧。hex文件和从App分配数据后,如果我断开设备(USB),再次启动设备(USB),我无法看到我的设备广告。
我的第一个项目我认为我们可以解决它,而是第二个项目我需要紧急帮助,这是一个主要问题。
所以请帮忙解决我第二个项目的广告问题。
感谢致敬
rohit.
嗨rajapurerohit,
关于您的第一个项目,似乎数据没有写入SPI Flash。我会再次检查代码段。
关于您的第二个项目,我想您已将SPI Flash与固件和设备靴子烧毁。断开连接后,如果您重置电路板,您是否能够再次宣传?
谢谢,PM_DIalog
你好pm_dialog,
抱歉回复晚了。
第一个项目:
这是解决的,在关闭电源和电源周期后,我的设备在没有任何问题的情况下正确宣传。
对于第一个项目,问题是通知功能。由于通知功能有多个副本,设备在上电后没有通告。现在问题解决了,设备也工作了。
在第二个项目中:
是的,在.ehex文件刻录并重置检测后,设备是广告的。
现在对于两个项目,我面临同样的问题,其中复位检测闪存字段是0xFF,第二个复位内存字段是0x00。
感谢致敬
rohit.
嗨rajapurerohit,
为延迟道歉,但我无法复制您的问题。将数据写入闪存时可能会出错。
谢谢,PM_Dialog