【经验】ZigBee程序中NVM3基地址的重新定义
我们在使用无线SoC芯片EFR32MG21做ZigBee程序时,程序中会用到NVM3保存一些参数,但NVM3的存储地址我们在程序中很难找到设置的地方,如果想修改NVM3的存储地址要如何处理?
在处理NVM3的存储地址时,需要到编译器的LINKER文件中进行修改。还要注意ZigBee协议栈版本不同,处理的细节也有一点不同。EmberNet6.x版本中项目的LINKER文件使用的是SDK中默认的文件:
这个LINKER文件调用了cortexm3下的gcc.ld文件,在这个文件内对NVM3的地址定义如下:
.=MFB_TOP - SIMEEPROM_SIZE - INTERNAL_STORAGE_SIZE - LONGTOKEN_SIZE - PSSTORE_SIZE - LOCKBITS_IN_MAINFLASH_SIZE + 1;
.simee ALIGN(FLASH_PAGE_SIZE) (NOLOAD) :
{
KEEP( * (.simee .simee.*) );
}>flash
OUR_BEGIN = (SIZEOF(.simee) == 0) ? 0 : ADDR(.simee);
PROVIDE(__SIMEE__begin = OUR_BEGIN);
PROVIDE(__SIMEE__end = OUR_BEGIN + SIZEOF(.simee));
PROVIDE(__SIMEE__size = SIZEOF(.simee));
ASSERT ( __SIMEE__size == SIMEEPROM_SIZE , "
======================================================================
======== LINKER ERROR: SIMEEPROM_SIZE is misconfigured
======================================================================
" )
修改时我可以在第一行上加偏移,也可以直接赋值一个绝对地址,比如:
. = 0x58000
这样NVM3的地址就被分配到0x58000开始的地址。
EmberNet7.x版本中的LINKER文件是由项目产生的:
在这个文件中定义如下:
.nvm (DSECT) : {
KEEP(*(.simee*))
} > FLASH
linker_storage_end = ORIGIN(FLASH) + LENGTH(FLASH);
linker_storage_begin = linker_storage_end - SIZEOF(.internal_storage);
linker_storage_size = SIZEOF(.internal_storage);
linker_nvm_end = linker_storage_begin;
linker_nvm_begin = linker_nvm_end - SIZEOF(.nvm);
linker_nvm_size = SIZEOF(.nvm);
__nvm3Base = linker_nvm_begin;
这里我们只要修改linker_nvm_end地址就可以了。比如,我们设置linker_nvm_end = 0x62000.
按以上两个方法修改的程序运行后的NVM3的地址分配如下图:
- |
- +1 赞 0
- 收藏
- 评论 0
本文由John提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。
相关推荐
【经验】多协议无线 SOC EFR32MG实现ZigBee的OTA操作指南
EFR32MG系列是Silicon Labs公司推出支持多协议无线 SOC,可以单芯片支持私有协议、BLE5.0、BLE MESH、ZigBee和Thread协议,并且可以单芯片支持Sub-GHz和2.4GHz的频段。由于其超低功耗、高射频性能以及高集成度等特点被广泛应用于智能家居、安防、智能工业等市场。在ZigBee的实际应用中,OTA是必不可少的功能,由于选择的型号不同,配置OT
设计经验 发布时间 : 2018-09-24
【经验】基于Silicon Labs无线SoC芯片MG24开发套件的Matter入门指导文章汇总
本文主要介绍基于Silicon Labs MG24开发套件的Matter入门指导文章汇总。
设计经验 发布时间 : 2023-06-30
【经验】使用Simplicity Commander工具读写EFR32无线SoC芯片EUI和install code方法
本文以Silicon Labs EFR32FG23 Sub-G无线SoC芯片为例,介绍如何读写EFR32无线SoC芯片的EUI和install code的方法。
设计经验 发布时间 : 2023-04-21
最新Matter智能家居参考设计打破生态藩篱—尽在深圳物联网展
随着智能家居市场的兴起,消费者对设备间的无缝互联与高效协同提出了更高要求。在这一情形下,Matter标准应运而生。连接标准联盟推出的Matter是一项全新的智能家居互联标准,旨在打破不同品牌、不同协议间的壁垒,实现智能家居设备的统一管理和互操作。自Matter标准发布以来得到了国内外众多厂商的支持,其功能不断增强,认证产品数量快速增长,覆盖品类更加多样化。本文介绍Matter 1.3带来哪些更新。
原厂动态 发布时间 : 2024-08-16
【经验】使用串口来升级EFR32FG23无线SoC芯片固件的方法
本文主要介绍如何使用BootLoader——NCP UART XMODEM工程实现使用串口升级Silicon Labs EFR32FG23无线SoC芯片固件的方法。
设计经验 发布时间 : 2022-09-01
芯科科技Matter-over-Thread SoC芯片技术,优化实现“无钥匙进入”智能锁系统解决方案
Nuki和U-tec集成芯科科技(Silicon Labs)的Matter-over-Thread SoC芯片技术,优化实现了“无钥匙进入”智能锁系统解决方案。通过Matter-over-Thread,两款无线门锁系统都不需要额外的桥接或模块,即可达成在多个物联网或智能家居生态系统中运行。
应用方案 发布时间 : 2024-05-10
【经验】创建ZigBee的无线SOC网关工程操作步骤
Silicon Labs公司的EFR32MG系列是针对智能家居市场应用的多协议无线SOC,单芯片支持蓝牙、ZigBee和Thread等协议,尤其是高性价比的系列2产品MG21、MG22,在ZigBee应用方面受到广大工程师的青睐。对于新手来说,使用SOC模式网关是最简单不过,本文就指导大家创建ZigBee的SOC网关工程操作步骤。
设计经验 发布时间 : 2020-04-09
EFR32无线通信模块AN004--RailTest(接收灵敏度开路测试)
EFR32标准模块,是世强独立研发,供用户学习、使用的射频模块。这个模块搭载Silicon Labs 多频段多协议的EFR32MG系列无线SOC芯片EFR32MG12P433F1024GM48,7*7mm QFN48封装,广泛用于智能门锁,门禁系统,照明系统,智能家居,无线抄表等领域。本文基于一站式开发平台simplicity studio V4和EFR32标准模块,介绍如何测试接收灵敏度。
设计经验 发布时间 : 2018-08-24
双模SOC蓝牙技术:智能家居与物联网的理想选择
在无线通信技术迅猛发展的今天,双模SOC蓝牙技术以其独特的双模特性和高度集成化的优势,正逐渐成为市场的新宠。双模SOC蓝牙,顾名思义,是指能够同时支持经典蓝牙和低功耗蓝牙(BLE)两种模式的系统级芯片(SOC)。这种技术的出现,不仅为用户提供了更多的连接选择,还进一步拓宽了蓝牙技术的应用场景。双模SOC蓝牙技术的核心在于其能够灵活切换两种蓝牙模式,以满足不同的通信需求。
技术探讨 发布时间 : 2024-05-10
【经验】配置迈斯威志WizPro200EFM烧录器实现脱机烧录无线SoC芯片EFR32MG21固件的方法
Silicon Labs的EFR32MG21无线SoC芯片,主要用于ZigBee和Matter设备。本文主要介绍如何配置迈斯威志WizPro200EFM烧录器,实现脱机烧录EFR32MG21无线SoC芯片固件的方法。
设计经验 发布时间 : 2023-01-21
【经验】联盛德无线SOC芯片W801硬件设计中的注意事项
W801芯片是一款安全的IoT Wi-Fi/蓝牙双模SoC芯片。支持2.4G IEEE802.11b/g/n Wi-Fi通讯协议;性能优良、性价比高。可适用于智能家电、智能家居等物联网领域。本文主要介绍联盛德无线SOC芯片W801在硬件设计中要注意的具体事项。
设计经验 发布时间 : 2022-11-25
如何用EFR32FG23无线SoC芯片读取平均RSSI?
本文以Silicon Labs的EFR32FG23无线SoC芯片的rail_soc_simple_trx工程为例,介绍EFR32FG23芯片读取某个信道的平均RSSI的方法。
设计经验 发布时间 : 2024-03-07
【经验】使用Simplicity Commander工具对无线SoC芯片EFR32FG23执行recover的方法
在使用芯科科技EFR32FG23时,有时一些错误的操作会导致芯片烧录一次固件之后就不能重新烧录,或无法识别到芯片等问题,需要对芯片执行recover。本文主要介绍使用Simplicity Commander工具对EFR32FG23执行recover的方法。
设计经验 发布时间 : 2022-01-15
【经验】无线SoC芯片EFR32MG21手动生成OTA文件的方法与注意事项
在使用SILICON LABS无线SoC芯片EFR32MG21芯片设计ZigBee产品时,我们会用到OTA功能,这就要产生OTA文件。EmberZNet 6.x版本的项目中会自动为启用了OTA客户端插件的项目创建OTA文件,需要我们手动去创建OTA文件。
设计经验 发布时间 : 2023-05-24
EFR32FG23无线SoC芯片读取数据包实时RSSI值的方法
本文以Silicon Labs的EFR32FG23无线SoC芯片的rail_soc_simple_trx工程为例,介绍EFR32FG23芯片读取数据包的实时RSSI值的方法。
设计经验 发布时间 : 2024-03-07
电子商城
品牌:SILICON LABS
品类:Wireless Gecko SoC
价格:¥8.1764
现货: 103,858
品牌:SILICON LABS
品类:Mighty Gecko Multi-Protocol Wireless SoC
价格:¥27.0929
现货: 90,767
现货市场
品牌:SILICON LABS
品类:Switch Hall Effect Magnetic Position Sensor
价格:¥2.2924
现货:126,000
服务
Ignion可支持多协议、宽频段的物联网天线方案设计,协议:Wi-Fi、Bluetooth、UWB、Lora、Zigbee、2G、3G、4G、5G、CBRS、GNSS、GSM、LTE-M、NB-IoT等,频段范围:400MHz~10600MHz。
最小起订量: 2500 提交需求>
世强深圳实验室提供Robei EDA软件免费使用服务,与VCS、NC-Verilog、Modelsim等EDA工具无缝衔接,将IC设计高度抽象化,并精简到三个基本元素:模块、引脚、连接线,自动生成代码。点击预约,支持到场/视频直播使用,资深专家全程指导。
实验室地址: 深圳 提交需求>
登录 | 立即注册
提交评论