[求助] 用BlueNRG-X Flasher Utility批量烧写blueNRG-1更改MAC问题

千本樱大白   2020-11-30 18:25 楼主

MAC location :设置的是 0x10044BCC

******FLASH OPERATION******

Connected N.1 device by ST Link

17:57:53.953: Waiting device to flash -> Device connected
17:57:54.967: Device Identification -> BlueNRG-1
17:57:55.674: Mass Erase Operation -> SUCCESS
17:57:57.049: Device Flash Programming -> FAILED
17:58:00.917: Device Disconnection ->SUCCESS

17:58:02.009: Flash operation finished!


******END FLASH OPERATION******
发现是写不进去的,想问下那个MAC地址写入是在那个位置的呢?麻烦大佬们了。

回复评论 (12)

image.png

 

UMxxxx_Flasher_ALPHA_v0.9.2.pdf (1.05 MB)
(下载次数: 23, 2020-11-30 19:33 上传)

虾扯蛋,蛋扯虾,虾扯蛋扯虾
点赞  2020-11-30 19:35

#if SERVER
  uint8_t role = GAP_PERIPHERAL_ROLE;
  uint8_t bdaddr[] = {0xaa, 0x00, 0x00, 0xE1, 0x80, 0x01};

#else
  uint8_t role = GAP_CENTRAL_ROLE;
  uint8_t bdaddr[] = {0xbb, 0x00, 0x00, 0xE1, 0x80, 0x02};
#endif 
  
  /* Configure Public address */
 ret = aci_hal_write_config_data(CONFIG_DATA_PUBADDR_OFFSET, CONFIG_DATA_PUBADDR_LEN, bdaddr);
  if(ret != BLE_STATUS_SUCCESS){
    printf("Setting BD_ADDR failed: 0x%02x\r\n", ret);
    return ret;
  }

 

烧写是成功了,但是MAC仍然是aa, 00, 00, E1, 80, 01这个地址,用的是BLE_Examples\BLE_Chat的代码

点赞  2020-12-1 09:53
引用: 千本樱大白 发表于 2020-12-1 09:53 #if SERVER   uint8_t role = GAP_PERIPHERAL_ROLE;   uint8_t bdaddr[] = {0xaa, 0x00, 0x00, ...

BlueNRG-X Flasher Utility是将你要定义的地址写到FLASH的指定位置

在你的代码里bdaddr使用了内存定义好的地址,所以BlueNRG-X Flasher Utility写入的地址不会使你的程序发生变化

如果要使用BlueNRG-X Flasher Utility烧写的地址,你的代码里要把对应FLASH地址的数据映射到bdaddr上

比如可以这样

image.png

然后再通过BlueNRG-X Flasher Utility烧写固件,地址才会发生变化

Screenshot_20201207_123750_com.st.bluems.jpg

  • image.png
虾扯蛋,蛋扯虾,虾扯蛋扯虾
点赞  2020-12-7 12:42
引用: littleshrimp 发表于 2020-12-7 12:42 BlueNRG-X Flasher Utility是将你要定义的地址写到FLASH的指定位置 在你的代码里bdaddr使用了内存定义 ...

好的,谢谢啦

点赞  2020-12-9 09:54

点赞  2022-7-19 20:16
引用: littleshrimp 发表于 2020-11-30 19:35  

您好,我使用BLUNRG-2,也是需要批量烧写采用Utility设置MAC地址,但是无法设置成功,可以帮忙看看什么原因吗,谢谢

  • 礼_20220719201859.png
  • 礼_20220719201831.png
  • 111111.png
点赞  2022-7-19 20:20

你可以先看一下这个文档

um2406-the-rfflasher-utility-sw-package--stmicroelectronics.pdf (1.52 MB)
(下载次数: 6, 2022-7-19 23:32 上传)

虾扯蛋,蛋扯虾,虾扯蛋扯虾
点赞  2022-7-19 23:32
引用: littleshrimp 发表于 2022-7-19 23:32 你可以先看一下这个文档

44444.jpg 44444.jpg 44444.jpg 9999.png 9999.png 您好,不用Utility,直接在代码里修改物理地址,也无法修改成功,这是什么原因?

点赞  2022-7-20 09:50
引用: aldlkd 发表于 2022-7-20 09:50 您好,不用Utility,直接在代码里修改物理地址,也无法修改成功,这是什么原因?

你用的官方例程还是自己写的代码?

虾扯蛋,蛋扯虾,虾扯蛋扯虾
点赞 (1) 2022-7-22 09:56
引用: littleshrimp 发表于 2022-7-22 09:56 你用的官方例程还是自己写的代码?

感谢虾哥帮忙,我们用的历程中直接修改,不过这个问题我们使用其他方式解决,通过广播数据来分辨不同蓝牙物理地址。

现在还有一个问题,就是我们的休眠功耗降不下来,达到了1mA

1.首先是休眠时仍然存在广播,我们利用aci_gap_set_non_discoverable()关闭广播,然后aci_gap_set_discoverable开启广播,但是发现无法开启广播,看了文档,进入待机状态,是不是无法通过设置的唤醒源进行唤醒,那应该如何关闭广播?

2.其次通过设置gpio的 Mode 来降低功耗

点赞  2022-7-23 08:58
引用: aldlkd 发表于 2022-7-23 08:58 感谢虾哥帮忙,我们用的历程中直接修改,不过这个问题我们使用其他方式解决,通过广播数据来分辨不同蓝牙 ...

我在私信里的回复看了吗 那里有一个低功耗大赛的链接 那里有很多例程 你可以看看

点赞  2022-7-23 11:58

虾哥,我看看可以吧

点赞  2023-8-15 18:12
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复