嵌入式程序设计课程总结解读.ppt

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式程序设计课程总结解读

栈(stack)是由系统自动分配的,例如,声明函数中一个局部变量“int b;”,那么系统自动在栈中为b开辟空间。堆(head)需要程序员自己申请,并在申请时指定大小,使用C语言中的malloc()函数的例子如下所示: p1 = (char *)malloc(10); 《嵌入式系统程序设计》 课程总结 主要内容(课堂) 嵌入式系统基础 嵌入式Linux C程序开发 嵌入式Linux C语言基础 嵌入式Linux开发环境 嵌入式Linux文件I/O编程 多任务编程 多进程/多线程 进程间通信 网络编程 设备驱动开发 QT图形编程 嵌入式系统概念 ——被嵌入到电子设备中的专用计算系统。 交叉编译 ——在一个平台上生成可以在另一个平台上执行的代码。 交叉调试 ——将嵌入式程序在宿主机和目标机之间进行的调试。 Bootloader作用 ——初始化硬件设备,建立内存空间的映射表,从而建立适当的系统软硬件环境,为最终调用操作系统内核做好准备。 Vi Gcc Gcc编译流程 ——预处理、编译、汇编、链接。 常用选项 -I dir 在头文件的搜索路径列表中添加 dir 目录 gcc hello.c -I /home/david/src/inc -o hello 库相关选项 -L dir 在库文件的搜索路径列表中添加 dir 目录 Gdb 上机时进行的操作 Make 能解释规则含义 make工程管理器就是个自动编译管理器,能够根据文件时间戳自动发现更新过的文件而减少编译的工作量,同时它通过读入Makefile文件的内容来执行大量的编译工作。 Makefile 规则 1. 隐式规则 ——隐式规则能够告诉make怎样使用传统的规则完成任务,这样当用户使用它们时就不必详细指定编译的具体细节,而只需把目标文件列出即可。Make会自动搜索隐式规则目录来确定如何生成目标文件。 2.模式规则 ——模式规则是用来定义相同处理规则的多个文件的。它不同于隐式规则,隐式规则仅仅能够用make默认的变量来进行操作,而模式规则还能引入用户自定义变量,为多个文件建立相同的规则,从而简化makefile的编写。 数据段 BSS段 代码段 栈 堆 一个由C语言的程序占用的内存分为以下几个部分。 栈(stack):由编译器自动分配释放,存放函数的参数值、局部变量的值、返回地址等,其操作方式类似于数据结构中的栈。 堆(heap):一般由程序员动态分配(调用mallo()函数)和释放(调用free()函数),若程序员不释放,程序结束时可能由操作系统回收。 数据段(data):存放的是全局变量、静态变量、常数。根据存放的数据,数据段又可以分成普通数据段(包括可读可写/只读数据段,存放静态初始化的全局变量或常量)、BSS数据段(存放未初始化的全局变量)。 代码段(code):用于存放程序代码。 * 3.2.2堆和栈的区别 申请方式 栈(stack)是由系统自动分配的;堆(head)需要程序员自己申请,并在申请时指定大小 。 申请后系统的响应 堆在操作系统中有一个记录空闲内存地址的链表,当系统收到程序的申请时,系统就会开始遍历该链表,寻找第一个空间大于所申请空间的堆结点,然后将该结点从空闲结点链表中删除,并将该结点的空间分配给程序。 * 3.2.2堆和栈的区别 申请大小的限制 堆是向高地址扩展的数据结构,是不连续的内存区域;栈是向低地址扩展的数据结构,是一块连续的内存的区域。 申请速度的限制 堆是由malloc()等语句分配的内存,一般速度比较慢,而且容易产生内存碎片,不过用起来很方便。栈由系统自动分配,速度较快,但程序员一般无法控制。 堆和栈中的存储内容 堆一般在堆的头部用一个字节存放堆的大小,堆中的具体内容由程序员安排。 * 3.3.3 字节顺序 字节顺序是指一个字中各个字节的顺序,有大端模式和小端模式。 大端模式是指在这种格式中,字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中。 小端模式是指与大端存储格式相反,在小端存储格式中,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。 ARM体系结构支持大端模式(big-endian)和小端模式(little-endian)两种内存模式。 系统调用与用户编程接口API的区别 系统调用是一个通过软件中断机制向内核提交请求以获取内核服务的接口。实际使用中程序员调用的则是API。 文件描述符概念 对linux而言,所有对设备和文件的操作都是使用文件描述符来进行的。 文件描述符是一个非负的整数,它是一个索引值,并指

文档评论(0)

LOVE爱 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档