关于EFR32MG21 TOKEN的使用中,我遇到这样的问题:我创建了一个token,
#define Nvm3kEY_MY_TOKEN_test (0x0107)
DEFINE_BASIC_TOKEN(MY_TOKEN_TEST, uint8_t, 0)
然后设置token的值为1,
halcommonSetToken(TOKEN_MY_TOKEN_TEST,1);
然后再读出token的值,
halcommonGetToken(&temp, TOKEN_MY_TOKEN_TEST);
我发现读出的值是128。
然后我又尝试设置token的值为2,结果读出的值为0.
设置token的值为3,读出的值为32
感觉写入的值和读出的值,完全对不上,请问这个问题如何解决?-
创建于2020-04-09
2个回答
-
- 用户78355755 Lv3 . 高级工程师 (0)
- 我也在MG21的NVM3使用过程发现了类似的问题,写入完之后 第一次重启数据是对的,第二次重启就变成0了
- 创建于2020-09-23
-
asd_世强:
您好。关于 nvm3 TOKEN 的定义请参考 AN1154: Using Tokens for Non-Volatile Data Storage 中 3.2.1 Define the Token Name 的说明及 example code
2020-09-24
- |
- +1 赞 0
- 收藏
平台合作
相关推荐
EFR32MG21芯片的zigbee工程,如何调整TOKEN区域的大小呢?我想存 1kB 的数据到芯片的flash里面。
token里面存了很多网络参数,一次性保存 1kB 的数据,可能会有问题。可以试下使用MSC(memory system controller),把数据保存在flash最后一个扇区。 https://docs.silabs.com/gecko-platform/3.2/emlib/api/efr32xg22/group-msc
我使用EFR32MG21A020F768IM32怎么选择BootLoader,怎么设置OTA的地址?
EFR32MG21A020F768IM32的BOOTLOADER是从0X0000开址开始,大小为16K,16K之后是用户程序地址,用户程序之后是OTA数据的始地址,一般BOOTLOADER程序中默认的设置地址为:278528,NVM3是从地址高频倒数第6个扇区开始,占用5个扇区,共40K的空间,最后一个扇区是manufacturing TOKEN的保存地址。具体的分配情况可以参考UG434的7.1这个小节的介绍.
通过指令给模组写MAC,commander device info --device EFR32MG21 commander tokendump --tokengroup znet --token TOKEN_MFG_CUSTOM_EUI_64 --serialno 440141500 --device EFR32MG21A020F512 但是2种方式读出来的MAC不一样, 客户端实际使用会以哪个MAC为准,谢谢!
如果没有MFG-CUSTOM_EUI数据,就使用芯片默认的硬件的MAC地址,如果这个TOKEN有数据就使用这个MAC地址。
EFR32MG21的Zigbee3.0协议栈中,token可以用来定义数据存储,在哪里可以看到默认的token定义?
EmberZNet PRO协议栈已经为协议栈本身,应用程序框架,制造数据等定义了许多Token。 要查看协议栈所定义的Token,请参考文件: <install-dir>/stack/config/token-stack.h
EFR32MG使用token会不停地reset?
使用Silicon Labs Zigbee 无线SoC EFR32MG的TOKEN时,需要使用正确的方法:【经验】多协议无线SoC EFR32MG的ZigBee开发之Token使用教程
在使用芯片EFR32MG21A020F1024IM32进行zigbee开发时。。在读写flash用于存储数据这边遇到的一些疑问: 1 关于NVM3驱动 a NVM3驱动的读写的起始地址是不是在0x0000 0000 - 0x0010 0000之间,使用的是用户代码flash区? b NVM3创建自定义令牌时,测试时发现如果令牌大小超过256字节时读写失败。如果需要一次性读写超过256字节该怎么操作? c 是否支持动态创建令牌,如果支持的话该怎么操作? 2 关于划分自定义flash区用于存储数据 a 如果想从flash区划分出一部分空间用于存储自定义数据,那么该自定义空间的起始地址该怎么设置? b 该使用哪些合适的底层接口对该区域进行读写操作 c 需要设置什么操作才能使划分的区域在烧录固件时不会被擦除 3 下图中FLASH RESERVED(0x0ff0 0000 - 0x1fff ffff)区域是否可以用作问题2中自定义划分空间?
1. EFR32MG21的NVM是分配到用户代码区的高端,占用4个扇区。从倒数第五个扇区开始,最后一个扇区用于保存用户数据。2.NVM3中的TOKEN是有条目大小限制的,BASIC TOKEN不能超过254,INDEX TOKEN不能超过126.要保存大于这些数据要使用多个TOKEN来保存。3.不支持你所说的动态TOKEN,只能在编译时分配好。4.如果要在程序FLASH空间中划出一部分空间用于保存用户数据,可以参考:https://www.sekorm.com/news/68494416.html的方法设置。5.使用MSC与MSC_SE相关的接口函数进行操作。6.划分出来的区域无法保证在烧录固件时不被意外擦除。烧录固件时是对主FLASH进行操作,但操作时是按扇区进行擦除与写入的。所以如果划分的区域在高端一般也不会被擦除。7.0X0FF00000-0X1FFFFFFF是保留区,用户无法使用,可以使用USER DATA FLASH区保存数据。这个区域不在主FLASH中,在烧录固件时就不会被擦除,操作上也比在主FLASH划分区域要方便。
世强文章《【经验】多协议无线SoC EFR32MG的ZigBee开发之Token使用教程》 我按连接中教程操作,但是我还要定义一个CREATOR_DEVICE_INSTALL_DATA_SIZE而且我的token掉电无法保存,请问这是为什么?文章链接 https://www.sekorm.com/news/17697304.html
请问你的工程中哪里会用到CREATOR_DEVICE_INSTALL_DATA_SIZE,是什么提示需要定义这个宏定义呢?另外,你工程是使用模拟EEPROM的插件还是NVM3的插件,上述文章是针对模拟EEPROM的。
Silicon Labs的Zigbee无线SoC EFR32MG在Zigbee的应用中,这里有读token 和写token,怎样擦除对应的token信息呢?
你好,Token的存储是存放在模拟的EEPROM中的,实际区域是Flash中,写Token的地址并不是Flash的绝对地址。操作Token时,不需要擦除Token,真正的数据存储到Flash里是模拟EEPROM来实现的,Silicon Labs提供了尽量较少擦除Flash次数的Sim-EEPROM方法,用户可以直接使用,而不用担心擦除Flash而影响产品的Flash寿命。
我们想要通过commander,修改芯科efr32芯片ncp的token,用来测试不同的CCA在实际应用中的丢包率,使用MG21时读写顺利,但是使用MG13时报了“ERROR: No such token: “MFG_CCA_THRESHOL“”,请问是否我们操作指令有问题,谢谢
你好。关于 simplicity commander 的命令使用方法请参考 UG162: Simplicity Commander Reference Guide https://www.sekorm.com/doc/2214273.html;其中这里 device 选项需要遵循以下原则:Using a complete part number such as --device EFR32MG1P233F256GM48 is always supported and recommended.
EFR32MG21 如何通过CLI设置TOKEN 我使用如下命令尝试设置TOKEN,提示需要2个参数,请问下magic number是什么,是否有对照表? security mfg-token set Wrong number of args Usage: <int>: 123 or 0x1ABC <string>: “foo“ or {0A 1B 2C} security mfg-token set (args) <uint32_t> magic number <uint16_t> value - Z3GatewayHost>
这条命令的定义如下:security mfg-token get security mfg-token set <Magic number> <EmberKeySettings value>Magic number - uint32_t. The 4-byte magic number EMBER_MFG_SECURITY_CONFIG_MAGIC_NUMBER to prevent accidental execution.EmberKeySettings value - uint16_t. The 2-byte value for EmberKeySettings indicating key permissions.在ember-types.h中有这个参数的定义:#define EMBER_MFG_SECURITY_CONFIG_MAGIC_NUMBER 0xCABAD11FUL
请问下efr32mg21 flash地址分布是怎么样的,即他的bootload的起始地址,OTA 数据的起始地址,用户程序的起始地址,NV3的起始地址等,可否简略提供个示意图,以及这些地址可以在哪里查看和修改呢
EFR32MG21r BOOTLOADER是从0X0000开址开始,大小为16K,16K之后是用户程序地址,用户程序之后是OTA数据的始地址,一般BOOTLOADER程序中默认的设置地址为:278528,NVM3是从地址高频倒数第6个扇区开始,占用5个扇区,共40K的空间,最后一个扇区是manufacturing TOKEN的保存地址。具体的分配情况可以参考UG434的7.1这个小节的介绍。UG434: Silicon Labs Bluetooth ® C Application Developer’s Guide for SDK v3.x
使用Silicon Labs的多协议无线SoC 做Zigbee开发时,请问模拟eeprom在什么位置,有一些自己的Flash数据要保存,怎么才不冲突?
EmberZNet的模拟EEPROM分两个版本,分别是SimEEPROM VERSION 1用最后8K的Flash空间,sim EEPROM VERSION 2用的最后32K Flash空间.另外,用户的数据也可以用token存储。
efr32,zigbee,token擦写有次数限制吗?是不是等同于擦写flash?
TOKEN的数据是保存在FLASH中的,实际的使用寿命是受FLASH的使用寿命限制。但Silicon Labs提供了尽量少擦除Flash次数的Sim-EEPROM方法,用户可以直接使用,而不用担心擦除Flash而影响产品的Flash寿命。
Silicon Labs 的Zigbee SoC EFR32MG系列中的EFR32MG1B 和EFR32MG1P有什么区别?
Silicon Labs 的Zigbee SoC EFR32MG系列中的EFR32MG1B中的B代表Basic,支持Zigbee协议,EFR32MG1P中的P代表performance,代表支持蓝牙协议、支持Zigbee。
电子商城
品牌:SILICON LABS
品类:Wireless Gecko SoC
价格:¥7.4330
现货: 86,204
品牌:SILICON LABS
品类:Mighty Gecko Multi-Protocol Wireless SoC
价格:¥27.0929
现货: 62,767
品牌:SILICON LABS
品类:Wireless Gecko SoC
价格:¥10.4994
现货: 60,389
品牌:SILICON LABS
品类:Wireless Gecko SoC
价格:¥17.6531
现货: 47,914
现货市场
服务

Ignion可支持多协议、宽频段的物联网天线方案设计,协议:Wi-Fi、Bluetooth、UWB、Lora、Zigbee、2G、3G、4G、5G、CBRS、GNSS、GSM、LTE-M、NB-IoT等,频段范围:400MHz~10600MHz。
最小起订量: 2500 提交需求>

可根据用户的wifi模块,使用无线连接测试仪MT8862A,测试IEEE802.11a/b/g/n/ac (2.4Ghz和5Ghz)设备的TX、RX射频特征,输出测试报告。支持到场/视频直播测试,资深专家全程指导。
实验室地址: 深圳 提交需求>