使用nordic原厂sdk调用fstorage模块进行flash操作时,fstorageCallbackFunc()回调接口报错“–> Event received: ERROR while executing an fstorage operation.error number = 3”,进一步追查,是static uint32_t write_execute(nrf_fstorage_sd_op_t const * p_op)接口报错,返回0X10(NRF_ERROR_INVALID_ADDR),该接口调用的是协议栈底层接口sd_flash_write(),经过排查,写入flash地址为0xf8000没有问题,源数据在内存的地址为0x20002E36没有4字节对齐。反复做实验,证明了协议栈的接口sd_flash_write()会对源数据的内存地址做对齐校验,因此重新定义源数据的大小保证4字节对齐,再写入后正常。
nrf52840/52832 sd_flash_write 报错NRF_ERROR_INVALID_ADDR(0x10)
最新推荐文章于 2022-04-20 19:00:00 发布