【经验】EFM32系列32位MCU常量定位问题的解决方法

2019-01-27 世强
32位MCU,低功耗32位MCU,EFM32,FM32WG 32位MCU,低功耗32位MCU,EFM32,FM32WG 32位MCU,低功耗32位MCU,EFM32,FM32WG 32位MCU,低功耗32位MCU,EFM32,FM32WG

SILICON LABS32位MCU EFM32系列具有低功耗、集成度高的优势,在电池供电类的应用中具有非常明显的优势。开发EFM32的软件一般都是在Simplicty Studio软件下完成,而且目前在开发程序时由于都是使用C语言开发,所以很多工程师已经不再关心变量的存储地址,但对于一些特殊的应用来说还是要考虑这些常量在FLASH的存储地址的,但笔者在网站上找了一些方法发现实现起来比较麻烦,尤其是在使用GNU ARM编译器,网上的一些方法并不是很正确,下面笔者总结了一个方法以供参考,

 

使用GCC的链接描述文件实现常量的定位功能。以EFM32WG为例,使用Example自动产生的Stk3800_blink.ld文件为模板进行修改,这里要注意要将这个文件从当前的目录中复制到其它目录再做修改。


 

打开这个Stk3800_blink.ld,找到下面的定义,并增加一个MY_MEMORY的新内存区域

MEMORY,由于此区域只是用于数据存储不需要执行程序,所以设置为rw属性,同时我们还减少了FLASH区域的长度以适应这个新的区域。

{

         FLASH (rx) : ORIGIN = 0x0, LENGTH = 0x3FFF0 /* 256k */

         RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x8000 /* 32k */

         MY_MEMORY (rw) : ORIGIN = 0x3FFF0, LENGTH = 9    

}

接下来创建一个名为.mysection的新部分,这一部分会将包含字符串.mysection的section属性的定义放到MY_MEMORY中。我们在__etext=.之后添加这个部分,这样不会影响FLASH的溢出边界检查,添加后的内容如下:

__etext = .;

 

  .mysection :

  {

    . = ALIGN(4);

    __mysection_start__ = .;

         *(.mysection*)

    __mysection_end__ = .;

  } > MY_MEMORY

 

最后再增加一个溢出边界检查:

ASSERT( LENGTH(MY_MEMORY) >= (__mysection_end__ - __mysection_start__), "MY_MEMORY memory overflowed !")

 

到这里这个文件就已经修改完成,保存后可以在项目的属性中使用这个指定的链接文件对文件进行编译,链接文件的指定如下图:

 

在源文件中定义如下的一个数组:

Volatile unsigned char buff2[9] __attribute((section(“.mysection”)))={‘M’,’Y’,’_’,’M’,’E’,’M’,’O’,’R’,’Y’};

对程序编译链接后,在MAP文件中可以找到如下的分配:

*(.mysection*)

 .mysection     0x0003fff0        0x9 ./src/blink.o

                0x0003fff0                buff2

                0x0003fff9                __mysection_end__ = .


到这里可以看到buff2这个数组已经分配到0X0003FFF0开始的地址,我们将程序下载到芯片中,在FLASH MEMORY中可以观察到这些数据:

到此,将常量分配到FLASH的指定地址功能就实现了。

授权代理商:世强先进(深圳)科技股份有限公司
技术资料,数据手册,3D模型库,原理图,PCB封装文件,选型指南来源平台:世强硬创平台www.sekorm.com
现货商城,价格查询,交期查询,订货,现货采购,在线购买,样品申请渠道:世强硬创平台电子商城www.sekorm.com/supply/
概念,方案,设计,选型,BOM优化,FAE技术支持,样品,加工定制,测试,量产供应服务提供:世强硬创平台www.sekorm.com
集成电路,电子元件,电子材料,电气自动化,电机,仪器全品类供应:世强硬创平台www.sekorm.com
  • +1 赞 0
  • 收藏
  • 评论 0

本文由John提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。

相关研发服务和供应服务

评论

   |   

提交评论

全部评论(0

暂无评论

相关推荐

【经验】如何基于J-FLASH对32位MCU EFM32 进行批量烧写?

Silicon Labs 32位MCU EFM32,以低功耗、高性能等著称,被广泛应用在电池供电等需要低功耗的领域。因应用广泛,在批量烧写上,也得到多家软件支持。本文将详细描述名基于SEGGER的J-Flash软件对EFM32烧写FLASH的方法及步骤。

2018-09-17 -  设计经验 代理服务 技术支持 现货查询 批量订货

【经验】基于EFM32JG1B200F128低功耗32位MCU中RTC在暂态录波型故障指示器无线采样三相同步设计方法

在JYL-60架空暂态录波型远传故障指示器项目开发过程中,考虑到架空线路ABC三相的特殊性,三支架空暂态录波型远传故障指示器分别挂在ABC线路上,无法提供可靠的硬件同步信号,在这样的环境下,无线三相同步技术正好提供了三相同步录波的可能。本文以EFM32JG1B200F128低功耗32位MCU中的RTC,设计了一种无线的三相同步采样方法。

2019-09-21 -  设计经验 代理服务 技术支持 现货查询 批量订货

【经验】对使用SWD接口的32位MCU的内部闪存及用户画面进行编程

本文介绍Silicon Labs独立编程器的硬件与软件,以及详细的用户界面介绍,提供用户进行测试。

2019-03-07 -  设计经验 代理服务 技术支持 现货查询 批量订货

【IC】芯科科技新品PG26 32位MCU系列,大容量存储 + 快速AI/ML推理满足未来的物联网需求

SILICON LABS最新发布的EFM32PG26(PG26)32位微控制器系列通过提升两倍的闪存和RAM容量,以及GPIO的数量来满足各种低功耗和高性能嵌入式物联网应用需求。面向无线连接功能的需求,PG26可作为EFR32xG26多协议无线SoC平台的软件兼容MCU版本,有助于开发人员基于同一平台设计快速且无缝地升级低功耗蓝牙、Matter、Thread、Zigbee或专有无线连接设计。

2024-04-17 -  产品 代理服务 技术支持 现货查询 批量订货

【经验】用STK3700评估板采集EFM32GG低功耗32位MCU外部频率信号完整周期的经验

在调试EFM32GG低功耗32位MCU,想测试外部频率信号的周期,范例程序测试的是按键按下的时间,也就是对应的是半个周期,不是完整的周期信号。针对范例程序做了如下修改(修改部分用红色字体标识),实现了用STK3700评估板对外部频率信号周期时间的计算

2019-05-03 -  设计经验 代理服务 技术支持 现货查询 批量订货

【应用】32位MCU在中高端音频处理系统中的应用

音频信号处理涉及多方面,如采集、去除噪声等等,普通MCU很难用一颗芯片集成如此众多的功能。

2017-07-18 -  新应用 代理服务 技术支持 现货查询 批量订货

【经验】32位MCU EFM32ZG与5V系统连接的电平转换接口电路设计

Silicon Labs的EFM32ZG系列是超低功耗和低能耗的32位MCU,在与5V系统连接时,EFM32ZG的GPIO无法直接接到5V的GPIO上,长期工作有引起芯片损坏的风险。因此与5V系统连接时需要依靠外部的电平转换电路保证芯片的可靠工作。本文就将介绍其设计与注意事项。

2020-09-27 -  设计经验 代理服务 技术支持 现货查询 批量订货

【应用】基于低功耗32位MCU EFM32G2X的智能温控器节能解决方案

采用Silicon Labs的ARM Cortex-M3内核EFM32是全球最低功耗的32位MCU,外设丰富,5大超低模式,非常适用于智能温控器。无线WIFI模块采用WGM110,具有卓越的射频性能,并可提供远程范围的稳定无线连接和安全性。

2019-07-30 -  方案 代理服务 技术支持 现货查询 批量订货

【经验】32位MCU EFM32JG系列RTCC定时器不能正常工作问题分析

Silicon Labs的32位MCU EFM32JG系列是针对低功耗电池产品推出的ARM Cortex-M3内核的主控单片机。最高可达40Mhz主频,低功耗模式下也可以进行ADC的采集、DMA的数据传输。本文通过分析一个客户在故障指示器的采集单元应用时遇到的时钟管理单元设置不正确导致模式不能定时切换的问题,来介绍时钟源的设置需要注意的事项。

2019-09-11 -  设计经验 代理服务 技术支持 现货查询 批量订货

【应用】功耗电流仅900nA的32位MCU在GPS定位器上的应用

相对于传统的8位、16位单片机实现的GPS追踪器,基于EFM32JG实现的本方案具有超低功耗、集成度高和扩展性良好的优势。

2019-09-05 -  新应用 代理服务 技术支持 现货查询 批量订货
展开更多

电子商城

查看更多

品牌:SILICON LABS

品类:32位MCU

价格:¥9.8488

现货: 21,867

品牌:SILICON LABS

品类:Gecko MCU

价格:¥64.5731

现货: 450

品牌:SILICON LABS

品类:32 BIT MCU

价格:¥10.4057

现货: 17,600

品牌:SILICON LABS

品类:32位MCU

价格:¥19.1398

现货: 10,450

品牌:SILICON LABS

品类:32位MCU

价格:¥24.8076

现货: 10,000

品牌:SILICON LABS

品类:32位MCU

价格:¥12.9143

现货: 8,950

品牌:SILICON LABS

品类:32位MCU

价格:¥19.2326

现货: 8,740

品牌:SILICON LABS

品类:32 BIT MCU

价格:¥11.9853

现货: 7,500

品牌:SILICON LABS

品类:32 BIT MCU

价格:¥13.3792

现货: 6,169

品牌:SILICON LABS

品类:32位MCU

价格:¥21.0907

现货: 5,950

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

现货市场

查看更多

品牌:兆易创新

品类:MCU

价格:¥7.0000

现货:25,380

品牌:MindMotion

品类:32位MCU

价格:¥5.9400

现货:19,996

品牌:RENESAS

品类:32-BIT GENERAL MCU

价格:¥61.8336

现货:17,200

品牌:RENESAS

品类:32-BIT GENERAL MCU

价格:¥16.7100

现货:15,887

品牌:NXP

品类:单片机

价格:¥90.8686

现货:10,811

品牌:RENESAS

品类:32-BIT GENERAL MCU

价格:¥69.9064

现货:7,680

品牌:MindMotion

品类:32位MCU

价格:¥2.3800

现货:6,427

品牌:RENESAS

品类:32BIT MCU

价格:¥135.5187

现货:4,320

品牌:航顺芯片

品类:32位MCU

价格:¥4.1500

现货:2,900

品牌:航顺芯片

品类:32位MCU

价格:¥4.1500

现货:2,900

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

服务

查看更多

大电流低功耗变压器定制

可定制变压器支持60W-600W范围,额定电流最高10A,漏感稳定度最小3%;支持开关变压器、电流感测变压器、栅极驱动变压器、LLC谐振变压器、PoE变压器等产品定制。SPQ为5K。

提交需求>

低功耗测试

提供全面表征产品器件耗电特征及功耗波形、快速瞬态效应、电源优化、表征和仿真测试服务,使用直流电源分析仪测量精度达50µV,8nA,波形发生器带宽100kHz,输出功率300W,示波器200kHz,512 kpts

实验室地址: 深圳/苏州 提交需求>

查看更多

授权代理品牌:接插件及结构件

查看更多

授权代理品牌:部件、组件及配件

查看更多

授权代理品牌:电源及模块

查看更多

授权代理品牌:电子材料

查看更多

授权代理品牌:仪器仪表及测试配组件

查看更多

授权代理品牌:电工工具及材料

查看更多

授权代理品牌:机械电子元件

查看更多

授权代理品牌:加工与定制

世强和原厂的技术专家将在一个工作日内解答,帮助您快速完成研发及采购。
我要提问

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

研发客服
商务客服
服务热线

联系我们

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

投诉与建议

E-mail:claim@sekorm.com

商务合作

E-mail:contact@sekorm.com

收藏
收藏当前页面