- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C51–在main__之前到底做了什么
C51–在main()之前到底做了什么??
用C 写过东西的都知道,程序是从main()函数开始执行的,在main()之前会有一系列的初始化工作,那么这些初始化到底做了些什么了??
大家也都知道在MCU 中,程序是在Flash 里面,而数据是在RAM 里面,掉电之后,Flash 里面的东西还在,RAM 里面的东西就没有了.
那么你把程序下载到芯片里面之后,数据是在哪里了?你会想,它当然是在Flash 里面的.那数据又是在什么时候跑到RAM 里面了呢?
结合C51 生成的M51 文件,大概的说一下main()函数之前,到底都做了哪些初始化的工作.
程序编译(assembly,compile),连接(link)过后会生成HEX 文件.整个HEX 文件是由程序和数据(主要是global 和static 的数据)组成的.当然程序和数据会放在不
同的地址,这些地址是绝对的地址.绝对的地址是在连接(link)过程中生成的.如果是C51 的话,何以看一下他的M51 文件.M51 文件就是link 的MAP 文件.
例如:MCU 是C8051F340,IDE 是uVersion4,C51 是v9.01,main()函数如下:
//main.c
unsigned int a = 0;
unsigned int b = 0xff;
void main(void)
{
unsigned int c;
unsigned int d;
d = c;
while(1);
}
build output 的信息是:
Build target ‘Target 1′
assembling STARTUP.A51…
compiling main.c…
linking…
Program Size: data=17.0 xdata=0 code=160
“test” – 0 Error(s), 0 Warning(s).
1
可以看到,data 用里 17Byte,code 是 160Byte,没有用到xdata.
查看M51 文件:
BL51 BANKED LINKER/LOCATER V6.22 04/25/2010 11:27:23 PAGE 1
BL51 BANKED LINKER/LOCATER V6.22, INVOKED BY:
D:\PROGRAM FILES\KEIL\C51\BIN\BL51.EXE STARTUP.obj, main.obj TO test RAMSIZE (256)
MEMORY MODEL: SMALL
INPUT MODULES INCLUDED:
STARTUP.obj (?C_STARTUP)
main.obj (MAIN)
D:\PROGRAM FILES\KEIL\C51\LIB\C51S.LIB (?C_INIT)
LINK MAP OF MODULE: test (?C_STARTUP)
TYPE BASE LENGTH RELOCATION SEGMENT NAME
—————————————————–
* * * * * * * D A T A M E M O R Y * * * * * * *
REG 0000H 0008H ABSOLUTE “REG BANK 0″
DATA 0008H 0004H UNIT ?DT?MAIN
DATA 000CH 0004H UNIT _DATA_GROUP_
IDATA 0010H 0001H UNIT ?STACK
* * * * * * * C O D E M E M O R Y * * * * * * *
CODE 0000H 0003H ABSOLUTE
CODE 0003H 008CH
您可能关注的文档
- Linux下S3C2440微控制器的CAN驱动设计与实现.pdf
- MAX113CAG+;MAX117CAI+;MAX117EAI+;MAX117CAI+T;MAX117CPI+;中文规格书,Datasheet资料.pdf
- MAX118CAI+;MAX114EAG+;MAX118EPI+;MAX114CAG+T;MAX118CAI+T;中文规格书,Datasheet资料.pdf
- 网络经济学 网络市场结构.ppt
- Meru解决方案简介:通过Wi-Fi安全地传输语音和数据.pdf
- MAX7302AEE+;MAX7302AEE+T;MAX7302ATE+T;MAX7302ATE+;中文规格书,Datasheet资料.pdf
- MYSIPO公益沙龙:美国专利务实与交易—马歇尔法学院袁丹吉.pdf
- NTC热敏电阻做温度采集.pdf
- OpenCv学习心得之程序.pdf
- Tcl库函数.pdf
最近下载
- 2024年黑龙江省哈尔滨市中考语文试题(含官方答案).docx
- 小学五年级语文上册教学课件《古诗三首》.pptx VIP
- 滨州医学院毕业答辩简洁模板.ppt
- 成人呼吸支持治疗器械相关压力性损伤的预防——2023中华护理学会团体标准.pptx VIP
- 数学--高思课本和乐乐课堂名称对应(1).pdf
- 常暗之厢常闇の箱.pdf
- 成人呼吸支持治疗器械相关压力性损伤的预防(2023中华护理学会团体标准).pptx VIP
- 《调皮的小猫咪》-美术课件.ppt VIP
- 七年级语文上册第二单元整体教学设计-优质教案.docx
- 成人呼吸支持治疗器械相关压力性损伤的预防-2023中华护理学会团体标准.pptx VIP
文档评论(0)