芯片型号为FR8008A,OTA结束后ROM擦写切换时,发现需要3秒左右的时间,而外置看门狗最大复位时间1.1秒,导致FR8008A一直启动失败,这种情况应该怎么处理,有什么软件的办法加快程序的切换速度吗?
chiyanzhitong
@chiyanzhitong
chiyanzhitong 发布的帖子
-
OTA跳转时,ROM擦写时间超过外置看门狗最大复位时间
-
GPIO操作时的速率异常
FR8008A在操作GPIO时,发现一些无法理解的地方,如下一段代码
只做了一个GPIO的电平翻转,理论上应该是一样的,但是对应的耗时却存在很大的不同,如下图
前6次耗时32us,while里的6次耗时1.5us,这是什么情况导致的,又如何解决呢? -
RE: FR8008A的Flash读写操作时,读正常,写不进去
@song 想参考蓝牙OTA的代码做无线OTA,手册里OTA流程的第一步,写入固件信息的时候,重点是flash写不成功啊,用户手册、规格手册、例程代码里也没有flash的说明,你说的官方OTA流程是指哪个文档里哪块内容,ota_state没有置位,这个在哪个文档里体现了?
-
RE: FR8008A的Flash读写操作时,读正常,写不进去
@mars 用户空间测试可以读写,但是做OTA,需要把程序写到B区域,这个测试下来不可写,要想写入的话,如何解锁呢?看了蓝牙OTA的flash操作,复制过来也不成功
-
FR8008A的Flash读写操作时,读正常,写不进去
做软件OTA过程中,将升级文件写入flash时,调用官方driver_flash.h驱动库的读写函数如下:
uint8_t flash_write(uint32_t offset, uint32_t length, uint8_t *buffer);
uint8_t flash_read(uint32_t offset, uint32_t length, uint8_t *buffer);
测试发现读flash正常(读bin文件地址区,核对数据一致),但是写flash没有生效,两个函数的返回值都是0,请问是什么原因? -
FR8008A休眠后无法唤醒
目的:RTC设置定时A值为1s,周期性工作后休眠
程序结构:
main
{
RTCinit();
while(1)
{
1、system_sleep_enable();
2、co_printf("sleep start\r\n");
3、while(!ble_stack_sleep_check());
4、co_printf("enter sleep allowed\r\n");
5、ble_stack_enter_sleep();
6、co_printf("ble_stack_enter_sleep\r\n");
}
}
目前情况:在不执行休眠时,RTC周期工作正常,在执行休眠后,RTC无法进入中断(中断打印调试信息);然后在执行休眠时,程序可以运行到第5步,且可以看出功耗有降低,判断芯片应该进入了休眠,进入了user_entry_before_sleep_imp函数,但是这种情况,RTC无法唤醒,系统会被看门狗重启,user_entry_after_sleep_imp函数以及程序的第六步无法运行到。
目前个人判断下来应该是进入了休眠,但没有被RTC唤醒,但是就不清楚到底是哪里配置得不对,或者流程思路有问题,发帖请教。