功能需求:由于我每个ble板子要使用不同的MAC地址, 因此我将mac地址写到flash的0x1f100, 然后再通过spi读取出来, 赋值给dev_bdaddr, 这样就能显示我写的MAC地址了.那么现在问题来.问题描述:我无法使用手机进行ota升级了. 如果我不是使用spi去读取, 直接调用sdk里的nvds_read_bdaddr_from_otp, 那么ota升级就很正常.
请麻烦帮我解决一下ota升级问题.
我这边解决了.原来是spi 管脚被释放了.
你好,我现在也在尝试修改MAC地址,但我操作不成功,我直接写的寄存器SetWord32(BLE_BDADDRL_REG,co_read32p(&bd[0]));SetWord16(BLE_BDADDRU_REG,co_read16p(&bd[4]));请问下你是怎么操作的?你说的赋值给dev_bdaddr?是在开机初始化的时候操作的么?非常感谢!
代码上电的时候,工程都会调用custom_nvds_get_func去读蓝牙地址。查看代码,如果dev_bdaddr是0(co_null_bdaddr是全0地址),那么就会去调用rom里的函数nvds_get_func去读结构nvds_data_storage里的内容。否则,就直接把dev_bdaddr当作实际的地址。
开机后,我想只要加在代码void rwble_init(void)里的lld_init(false)之前就可以。
更方便的办法,如果不涉及OTP的应用,打开宏CFG_INITIALIZE_NVDS_STRUCT,在生成的bin文件里直接找到写的默认地址字段,直接改就可以。
非常感谢,直接在BIN文件中修改mac地址的方法,我已经明白,等批量工具做好了,再使用这方法。“加在代码void rwble_init(void)里的lld_init(false)之前就可以”,实际我测试了下不行,我试着添加到rwble_init()之前,srand(1);之后,便可以了。Gongyu_Dialog,还有一个之前的问题,你说MAC唯一地址是要向SIG组织申请,我们前期用量不是很大,我查阅了一些资料,说很多蓝牙厂商都有自己申请过,请问dialog是否可以提供一小段MAC地址,在我们产品正式上市的时候。
关于地址提供,dialog应该没有这样的支持。要不你就用随机的地址应该也可以。
“加在代码void rwble_init(void)里的lld_init(false)之前就可以”,实际我测试了下不行”//SDK3.0.110里,宏BLE_HOST_PRESENT打开的,所以rwip_init函数默认是空的,走不进去了。
非常感谢,我现在调试就是用6字节的随机数充当MAC地址的,那最后产品上市的时候,在想办法购买把。
我这边解决了.
原来是spi 管脚被释放了.
你好,我现在也在尝试修改MAC地址,但我操作不成功,
我直接写的寄存器
SetWord32(BLE_BDADDRL_REG,co_read32p(&bd[0]));
SetWord16(BLE_BDADDRU_REG,co_read16p(&bd[4]));
请问下你是怎么操作的?
你说的赋值给dev_bdaddr?是在开机初始化的时候操作的么?
非常感谢!
代码上电的时候,工程都会调用custom_nvds_get_func去读蓝牙地址。查看代码,如果dev_bdaddr是0(co_null_bdaddr是全0地址),那么就会去调用rom里的函数nvds_get_func去读结构nvds_data_storage里的内容。否则,就直接把dev_bdaddr当作实际的地址。
开机后,我想只要加在代码void rwble_init(void)里的lld_init(false)之前就可以。
更方便的办法,如果不涉及OTP的应用,打开宏CFG_INITIALIZE_NVDS_STRUCT,在生成的bin文件里直接找到写的默认地址字段,直接改就可以。
非常感谢,直接在BIN文件中修改mac地址的方法,我已经明白,等批量工具做好了,再使用这方法。
“加在代码void rwble_init(void)里的lld_init(false)之前就可以”,实际我测试了下不行,我试着添加到rwble_init()之前,srand(1);之后,便可以了。
Gongyu_Dialog,还有一个之前的问题,你说MAC唯一地址是要向SIG组织申请,我们前期用量不是很大,我查阅了一些资料,说很多蓝牙厂商都有自己申请过,请问dialog是否可以提供一小段MAC地址,在我们产品正式上市的时候。
关于地址提供,dialog应该没有这样的支持。要不你就用随机的地址应该也可以。
“加在代码void rwble_init(void)里的lld_init(false)之前就可以”,实际我测试了下不行”
//SDK3.0.110里,宏BLE_HOST_PRESENT打开的,所以rwip_init函数默认是空的,走不进去了。
非常感谢,我现在调试就是用6字节的随机数充当MAC地址的,那最后产品上市的时候,在想办法购买把。