C51–在main__之前到底做了什么.pdfVIP

  • 209
  • 0
  • 约 3页
  • 2017-06-25 发布于河南
  • 举报
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) { uns

文档评论(0)

1亿VIP精品文档

相关文档