下载此文档

启动代码分析_图文.ppt


文档分类:IT计算机 | 页数:约24页 举报非法文档有奖
1/24
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/24 下载此文档
文档列表 文档介绍
Copyright ? 2009 Cortex-M3 启动代码分析 Copyright ? 2009 目标?掌握嵌入式应用程序设计的基本知识?掌握 中常见汇编指令?能分析 启动代码 Copyright ? 2009 嵌入式应用系统中的存储映射?在设计嵌入式应用系统时,为了追求最好的性能价格比, 系统中通常包括多种存储器,如 ROM 、 16位 RAM 、 32位 RAM 和 FLASH 等,这样一个重要的问题就是设计其存储系统的布局。?在 RAM 体系结构中,系统复位后将跳转到地址 0x0 处执行,该处存放的是复位异常中断的中断向量。对于嵌入式系统来说,在系统复位时 RAM 中是不存在代码和数据的。因此在系统复位时,地址 0x0 处应该为 ROM ,即系统复位后应该首先从 ROM 中开始执行。 Copyright ? 2009 地址 0x0 处为 ROM ?这里所说的地址 0x0 处为 ROM ,是指在系统运行过程中, 地址 0x0 处为 ROM ,对于嵌入式系统来说,在系统复位时地址 0x0 处总为 ROM 。这种情况非常简单,在地址 0x0 处存放着复位异常中断向量,根据此中断向量,程序跳转到相应的位置进行系统初始化等操作。?这种情况有一个缺点,通常相对于 RAM 来说, ROM 的数据宽度较小,速度较慢,这会使系统响应异常中断的速度较慢,而且如果异常中断向量表放在 ROM 中,则中断向量表内容不能修改。 Copyright ? 2009 地址 0x0 处为 RAM ?这里所说的地址 0x0 处为 RAM ,是指在系统运行过程中, 地址 0x0 处为 RAM ,对于嵌入式系统来说,在系统复位时地址 0x0 处总为 ROM 。因此,对于地址 0x0 处为 RAM 的系统,为了保证系统复位后从 ROM 中开始执行,在系统复位时,系统中的存储映射机构将 ROM 映射到地址 0x0 处,然后在程序运行的最初几条指令中,系统中的存储映射机构进行地址重映射,重新将 RAM 映射到地址 0x0 处。?优点: RAM 的数据宽度较大,速度较快,这会使系统响应异常中断的速度更快。而且异常中断向量表放在 RAM 中, 程序在运行过程中可以修改中断向量表内容,使得系统更为灵活。 Copyright ? 2009 系统初始化?系统运行环境初始化,包括异常中断向量初始化、数据栈初始化以及 IO初始化等。?应用程序初始化,例如 C语言变量的初始化等。?启动代码功能总结: ?1)堆和栈的初始化; ?2)向量表定义; ?3)地址重映射及中断向量表的转移; ?4)设置系统时钟频率; ?5)中断寄存器的初始化; ?6)进入 C应用程序。 Copyright ? 2009 预备知识√一个由 C/C++ 编译的程序占用的内存分为以下几个部分: ?栈区( stack )—编译器自动分配释放,存放函数的参数值,局部变量的值等。操作方式类似于数据结构中的栈。?堆区( heap )—一般由程序员分配释放, 若程序员不释放,程序结束时可能由 OS 回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。?全局区(静态区)( static )—全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后由系统释放。 Copyright ? 2009 预备知识?文字常量区—常量字符串就是放在这里的。程序结束后由系统释放?程序代码区—存放函数体的二进制代码。?// int a = 0;全局初始化区 char * p1; 全局未初始化区 main() { int b;栈 char s[] =“ abc ”;栈 char * p2; 栈 char *p3 =“ 123456 ”; 123456\0 在常量区, p3在栈上 Copyright ? 2009 预备知识? static int c =0 ;全局(静态)初始化区 p1 = (char * )malloc(10); p2 = (char * )malloc(20); 分配得来得 10和 20字节的区域就在堆区。 strcpy(p1, "123456"); 123456\0 放在常量区,编译器可能会将它与 p3所指向的"123456" 优化成一个地方。}? ENTRY: 伪操作指定程序的人口点? AREA: 伪操作用于定义一个代码段或者数据段? DCD: 用于分配一段字内存单元 Copyright ? 2009 代码分析 1 √栈的初始化: ? Sta

启动代码分析_图文 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数24
  • 收藏数0 收藏
  • 顶次数0
  • 上传人chuandao1680
  • 文件大小0 KB
  • 时间2016-05-16
最近更新