【经验】如何通过解读M51文件确定EFM8系列的变量、函数定位?

2021-04-14 世强
8位单片机,EFM8,Silicon Labs 8位单片机,EFM8,Silicon Labs 8位单片机,EFM8,Silicon Labs 8位单片机,EFM8,Silicon Labs

SILICON LABS推出的EFM8系列8位单片机具有集成度高、速度高、体积小等优点,被广泛应用在光模块、无人机、智能家居等产品上。最近有软件工程师问 “我的变量放哪里了?我的代码是如何分配的”问题,为解决这些疑惑,本文特做如下总结,供参考。


当代码编译成功后,变量及代码“在哪里”就都被固定下来了,对于EFM8系列8位单片机来说,这可以在编译后生成的M51文件中可以看到。

 

如下图1,就是M51文件中DATA变量定位明细部分。它展示了所有的自定义的BIT类型、DATA类型、IDATA类型变量及特殊功能寄存器分配情况,地址从0x00到0xFF。该记录段共分为5列:Type—类型,Base—基地址,Length—长度,Relocation—再定位,Segment Name—段名。其中,“类型”,表示数据类型,比如,BIT型,DATA型,等;“基地址”,表示该类型变量的起始地址;“长度”,表示该类型变量的数量;“再定位”,表示该段的性质;“段名”,表示该变量在源代码中的名称,一般格式表达为“?PR?+函数名+C文件名”或“?PR?+C文件名”。从图1,我们能明确地看到我们的变量分配在哪里了、长度是多少。

图1  Data变量定位明细

 

在下图2中,是XATA类型变量分配情况,各段定义及格式等与DATA类型情况一致,它的地址可覆盖0x0000到0xFFFF。

图2  XData变量定位明细

 

如下图3,它展示了CODE空间定位情况。各段定义与图1类似,地址覆盖从0x0000,到0xFFFF。只是在Segment Name这列,它表示:“?PR? + 函数名 + C文件名”;如果该C文件下没有函数,也可以表示:“?PR? + C文件名”;标注是“GAP”的,表示该段是空的、即未被分配代码CODE空间。

图3 Code代码段定位明细

 

通过对M51文件中如上3个片段的解读,我们可以清晰地看到我们的变量及代码是如何分配的。当我们代码出现BUG时,这些信息对排除BUG将非常有用。


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

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

评论

   |   

提交评论

全部评论(0

暂无评论

相关推荐

【经验】如何下载、安装、设置Silicon Labs 8位单片机集成开发环境IDE?

Silicon Labs的8位单片机集成开发环境IDE,简单、容易、强大,是C8051F及EFM8等8位单片机软件开发的强大利器!为了让新手能够快速上手IDE,本将详细接收Silicon Labs IDE的下载、安装、设置等方法。

设计经验    发布时间 : 2018-09-19

【经验】8位单片机EFM8BB51正确初始化ADC后不工作的问题处理经验

芯科最新推出的8位单片机EFM8BB51,EFM8BB51使用模拟部分功能(比如ADC,比较器),客户往往会忽略AMUXCP的初始化,导致模拟功能不能使用。本文介绍AMUXCP功能的使用。

设计经验    发布时间 : 2023-04-01

【经验】8位单片机EFM8的参考电压Vref引脚用于电压输出功能的经验

在某些应用中,需要一路低电流的电源,例如热敏电阻,为了减少LDO的使用,希望使用MCU的Vref输出电压。本文介绍Silicon Labs 8位MCU Vref输出电压使用有什么后果,需要注意什么。

设计经验    发布时间 : 2019-10-30

【应用】基于双MCU的低成本400G PAM4光模块应用方案

基于双MCU的低成本400G PAM4光模块应用方案采用2个通用MCU,32位的MCU作为DSP的协处理器,8bit的MCU满足多路DAC来控制LD Driver,不但降低了设计难度同时降低了成本。采用多路电源输出解决方案比采用多颗单路电源芯片占用面积更小,且整体成本更低。

应用方案    发布时间 : 2023-11-17

【经验】8位单片机EFM8系列的SFR Page操作

Silicon Labs的8位单片机EFM8系列,集成丰富的外设,高性能,小封装。软件开发时,由于外设多,寄存器操作引入了SFR Page机制,注意SFR Page设置,防止程序错误,让EFM8系列芯片设计出稳定的优质产品。

设计经验    发布时间 : 2019-04-17

【经验】如何配置中微8位单片机CMS80F7519的GPIO为推挽输出

中微半导体的8位单片机CMS80F7519,GPIO的模式配置,在例程中并没有对应的代码,使客户使用时不清楚怎么操作。本文介绍GPIO模式配置的具体实现方式。

设计经验    发布时间 : 2022-10-09

【应用】大大降低转矩脉动?这款MCU是无人机电调的“战斗机”

EFM8BB使无刷直流电动机在运行时产生更低的电流纹波和转矩脉动。

新应用    发布时间 : 2017-01-04

【经验】如何计算8位单片机EFM8LB系列PWM最高输出频率?

在电机驱动、电源发生、可调电压发生等应用中,经常需要PWM波,Silicon Labs推出的高性能、高集成度、小体积、高性价比的EFM8LB系列8位单片机,可广泛应用光模块、电机控制等领域,它支持输出PWM波。本文将详细讲解如何计算EFM8LB系列8位单片机PWM最高输出频率。

设计经验    发布时间 : 2020-02-05

【经验】如何解决8位单片机EFM8BB21F16G串口通信不正常问题?

本文以Silicon Labs的8位单片机EFM8BB21F16G为例,介绍如何通过软件程序置位中断标志位,通过串口中断方式来解决清除前如果有数据到来会引起数据丢失并无法产生中断的方法。

设计经验    发布时间 : 2021-05-19

【经验】8位单片机C2自制烧录器不能用于EFM8问题分析及解决

Silicon Labs公司推出的8位单片机,采用独特的C2调试接口,在占用极少的引脚资源的情况下,实现在线仿真调试,烧录功能,方便软件的开发设计。客户自制C2烧录器,可以更好的用于批量生产。以前用于C8051F系列的自制烧录器如果在EFM8烧写时出现问题,可以根据文章内容进行简单修改,解决烧写问题。

设计经验    发布时间 : 2019-08-02

【经验】如何给Silicon Labs的集成开发环境IDE指定工具链?

Silicon Labs的集成开发环境IDE简单强大,是C8051F及EFM8等8位单片机软件开发的优秀武器。最近有客户问, 如何给Silicon Labs集成开发环境IDE指定工具链?本文总结了2个方法来解决这个问题。

设计经验    发布时间 : 2020-09-29

【经验】低成本8位单片机EFM8BB21在25G SFP28 LR光模块应用中的硬件电路设计注意事项

Silicon Labs推出的EFM8BB21系列8位单片机,具有高速度、高模拟性能、高集成度、小体积、低成本等优点,被广泛应用于光通信、工业控制等领域。本文将详细介绍在25G SFP28 LR光模块应用中EFM8BB21的硬件电路设计注意事项。

设计经验    发布时间 : 2021-03-28

【经验】对EFM8系列8位单片机可编程逻辑单元CLU的作用及应用的理解

Silicon Labs的EFM8系列8位单片机,集成了独特数字外设可编程逻辑单元CLU,让EFM8单片机的功能更加强大。那么,这个CLU的作用及应用是什么呢?本文将详细为你解读。

设计经验    发布时间 : 2019-08-21

【经验】如何基于Production Programmer实现EFM8系列8位单片机HEX文件下载?

当软件工程师调试并测试完毕代码后,下一个步骤,就是交给生产进入下载、生产环节。对于Silicon Labs的8位单片机,产线上下载方式有多种多样。本文将为你介绍一种简单、高效、低成本的下载方式,即基于原厂提供的通用软件“Production Programmer”+ U-EC6的方式。

设计经验    发布时间 : 2019-11-27

【经验】如何正确设置EFM8LB1系列8位单片机的堆栈空间?

Silicon Labs推出的EFM8LB1系列8位单片机,具有集成度高、速度快、模拟性能好及体积小等优点。最近有使用的软件工程师问,为了让EFM8LB1配合DSP工作, 如何扩大它的堆栈空间?本文就将为你讲解。

设计经验    发布时间 : 2021-03-18

展开更多

电子商城

查看更多

品牌:SILICON LABS

品类:8 BIT MCU

价格:¥3.9026

现货: 83,205

品牌:晟矽微电子

品类:8 位单片机

价格:¥0.2500

现货: 49

品牌:芯海

品类:8位单片机MCU

价格:

现货: 0

品牌:晟矽微电子

品类:8 位单片机

价格:¥0.2500

现货: 0

品牌:Holychip

品类:通用8位单片机

价格:

现货: 0

品牌:晟矽微电子

品类:8位单片机

价格:

现货: 0

品牌:芯海

品类:8位单片机MCU

价格:

现货: 0

品牌:晟矽微电子

品类:8位单片机

价格:

现货: 0

品牌:芯海

品类:8位单片机MCU

价格:¥4.5000

现货: 0

品牌:SILICON LABS

品类:Wireless Gecko SoC

价格:¥8.1764

现货: 104,128

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

现货市场

查看更多

品牌:SILICON LABS

品类:8位MCU

价格:¥4.9000

现货:12,000

品牌:RENESAS

品类:microcontroller

价格:¥2.8532

现货:188,410

品牌:RENESAS

品类:microcontroller

价格:¥32.9564

现货:40,179

品牌:RENESAS

品类:microcontroller

价格:¥2.3120

现货:2,192

品牌:RENESAS

品类:MCU

价格:¥0.6760

现货:907

品牌:RENESAS

品类:MCU

价格:¥23.3594

现货:820

品牌:RENESAS

品类:MCU

价格:¥0.7600

现货:250

品牌:RENESAS

品类:microcontroller

价格:¥2.8460

现货:203

品牌:RENESAS

品类:microcontroller

价格:¥5.5220

现货:156

品牌:RENESAS

品类:microcontroller

价格:¥3.1820

现货:153

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

服务

查看更多

3C认证/CCC认证

支持微型计算机 、便携式计算机显示设备、投影仪、打印设备、绘图仪、多用途打印复印机、扫描仪、计算机内置电源、电源适配器、充电器、服务器、收款机等产品中国强制性产品认证。

提交需求>

工控触摸一体机定制

提供7~27寸工控机定制,支持嵌⼊式/ 壁挂式 /桌⾯式/悬挂式等安装方式,采用纯平⾯板IP65防尘防⽔等级,莫⽒7级硬度触摸屏,兼容多种操作系统:组态软件/安卓/XP/win7/8/10/Linux等,支持主板、接⼝、外观、⽀架、刷卡器、⾝份证阅读器、LOGO、⻨克⻛、系统、电池、蓝⽛、4G/5G、摄像头、GPS系统、⼆维码扫描器、指纹等特殊应⽤场景定制

最小起订量: 1台 提交需求>

查看更多

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

查看更多

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

查看更多

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

查看更多

授权代理品牌:电子材料

查看更多

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

查看更多

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

查看更多

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

查看更多

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

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

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

收藏
收藏当前页面