亲爱的对话框支持,
我需要非常紧急的闪存读写程序的帮助。
我设计了一个使用DA14583单片机的设备,并编写了代码,在按钮按下我切换的组LED灯泡。
为了操作LED灯泡,创建一个数据包(包包括灯泡的数量和它们的地址),从BLEScanner分配到自定义设备。
在固件的下一件事,我读取数据包发送从应用程序,我parsh它作为我的应用程序和存储的价值/数据到闪存(存储数据是完美的发生)。
我从闪存读取数据时,系统上电休息(当设备启动时),读取也是完美的发生。
我面临的问题,当烧制。hex文件到设备,
我已经创建了一个。hex文件,我的项目和使用智能代码片段工具,刻录固件到自定义设备。编程设备成功之后,我需要其他设备来宣传和启动,而这样做,如果我休息设备燃烧.hex文件之后,我得到了“0 xff”从flash缓冲区,如果我再次(第二次)其他设备我得到我从flash缓冲区的默认状态。
我不明白为什么设备需要两次休息才能从闪存缓冲区读取实际数据?
或者我遵循错误的方法从falsh得到默认数据。
我急需解决这个问题,请帮我解决。
感谢和问候
罗希特
设备:
嗨Rajapurerohit,
让我问你几个问题,以便了解你的成就。您烧伤SPI flash与您的固件与使用flash程序员的SmartSnippets工具箱,不是吗?当你下载你的代码并按下重置键后,你能确认你的设备是否正确的广告吗?您可以使用工具箱的Power分析器进行测试。你是否基于我们的SDK示例?如果我能够正确理解,在引导后你想从SPI flash读取一些数据,这是正确的吗?因为你有一个自定义的板和自定义的应用程序代码,这将是非常有帮助的提供我一些额外的输入或截图,以复制你的问题。
谢谢,PM_Dialog
你好PM_Dialog,
您烧伤SPI flash与您的固件与使用flash程序员的SmartSnippets工具箱-是的,
当你下载你的代码并按下重置键后,你能确定你的设备是否在正确地发布广告吗?是的,设备发布广告
在引导之后,您想要从SPI flash读取一些数据,这是正确的吗?——是的,
在我的固件user_custs1_imple文件,我写了一个函数,我存储数据/读取/从flash。请找到我的文件附在闪存配置和闪存读写读写功能写入。
存储数据闪存缓冲功能-
1.空白StorePIRSettings(无效);
2.空白CombineBDAwithBrightness(无效);
读取数据从flash功能-
1.空白ReadPIRSettings(无效);
2.空白ui8UpdateLocalDatabase(无效);
当从应用程序断开连接时,我将这些数据存储到flash [void StoreintoFlash(void)],当设备初始化时,从flash [void ReadfromFlash(void)]读取数据。在user_setup文件中功能)。
因此,在。hex文件烧录之后,当reset按下我将在缓冲区中获得(255)0xFF,如果再次重置设备,我将获得0x00。在第二次重置后,我的设备工作得很好数据存储和读取也很好。
我想知道为什么这个设备需要两次休息才能正常工作。请帮助我哪里做错了,或者我遵循错误的步骤调试。
感谢和问候
罗希特
嗨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,
是的,在断开连接后,我正在将数据存储到flash中,但我不明白您提到的遵循的步骤-[您能检查一下您想从SmartSnippets工具箱的flash程序员写入存储的数据的地址吗?你能看到你只看到0xFF的预期数据吗?
你能给我介绍一下上述建议的步骤吗?
是的,我遵循了spi_flash()代码,我做了我理解的更改,我在初始化步骤中做错了什么吗?
在一个更多的项目中,我面临不同的问题与flash,相同的程序,我已经遵循读/写什么,我正在遵循的当前项目。然而,
在这个项目(另一个项目),设备停止广告。
感谢和问候
罗希特Rajapure
嗨Rajapurerohit,
我的意思是从智能代码片段工具箱的flash程序员那里读取SPI flash。因此,在断开连接后,无需重新设置您的板,您可以检查您的数据是否已成功存储。关于你的第二个问题,你可以在调试模式下运行你的代码吗?我将固件下载到System-RAM中,加载调试器并检查代码是否卡住了。
谢谢,PM_Dialog
嗨PM_Dialog,
谢谢你的快速回复,
我已经做了以下步骤,为第一个项目- - - - - -
1.首先,刻录。hex文件并重置设备[设备广告]
2.第二,我再次按下smarsnippet工具上的连接选项,并点击Read选项,看到7000向前的地址数据是0xFF[没有数据写入]
3.第三,我从App (BLE Scanner)分配数据,并重复步骤2,能够看到字段7000的地址
4.断开(关机)设备的USB和重新连接(上电)再次使用USB,再次重复步骤2,我可以看到数据。
这是我所遵循的正确步骤吗?
关于我的第二个项目-
在调试模式下,代码不会在工作的任何地方卡住。我让代码运行了半个小时。这款设备的广告效果依然完美。
只有在烧制。hex文件并从App中分配数据之后,如果我断开设备(USB)并再次打开设备(USB),我将无法看到我的设备广告。
我的第一个项目,我认为我们可以解决它,但第二个项目,我需要紧急帮助,它是一个大问题。
所以请帮忙解决我的第二个项目广告问题。
感谢和问候
罗希特
嗨Rajapurerohit,
关于您的第一个项目,似乎数据没有写入SPI Flash。我将再次检查您的代码片段。
关于你的第二个项目,我认为你已经烧毁了SPI Flash与你的固件和设备从那里启动。断开后,如果你重置你的板,你能再次广告吗?
谢谢,PM_DIalog
你好PM_Dialog,
抱歉回复晚了。
第一个项目:
这个问题解决了,断电和电源周期后,我的设备广告正常,没有任何问题。
对于第一个项目,问题在于通知功能。由于通知功能的多个副本,设备没有广告后的电源下降-电源上升周期。现在问题解决了,设备也可以工作了。
在第二个项目中:
是的,在。hex文件燃烧和重置检测后,设备正在发布。
现在对于两个项目,我都面临着同样的问题,即复位检测flash memory字段是0xFF,第二次复位后flash memory字段是0x00。
感谢和问候
罗希特
嗨Rajapurerohit,
很抱歉耽搁了,但我无法复制您的问题。在向flash写入数据时可能会出现错误。
谢谢,PM_Dialog