嵌入式软件复习总结

本文详细介绍了嵌入式系统的基础知识,包括嵌入式系统的特点、嵌入式操作系统的选择,以及Linux作为嵌入式操作系统的优势。深入探讨了嵌入式Linux编程,涉及C语言编程、GCC编译器、GDB调试器、Makefile管理以及文件I/O和进程控制。同时,讲解了基于Linux的嵌入式软件开发流程,包括Bootloader、内核移植、设备驱动和Linux内核结构。此外,还涵盖了嵌入式应用程序的开发,如信号和槽机制,以及嵌入式Linux网络编程基础。
摘要由CSDN通过智能技术生成

 

1嵌入式系统概述

1.1嵌入式系统

 

  1. 嵌入式系统的定义:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗要求的专用计算机系统。
  2. 应用领域:工业控制、交通管理、信息家电、智能家庭管理、机器人
  3. 嵌入式系统的组成
    1. 嵌入式处理机
    2. 嵌入式外围设备
    3. 嵌入式操作系统
    4. 嵌入式软件

 

  1. 嵌入式系统的特点
    1. 嵌入性
    2. 专用性
    3. 实时性
    4. 可靠性
    5. 可裁剪性
    6. 功耗低

 

 

1.2嵌入式操作系统

  1. 操作系统的基本功能:
    1. 处理器的控制与管理
    2. 存储器额分配与管理
    3. 外部设备的控制与管理
    4. 文件的控制与管理
    5. 作业的控制与管理

 满足多任务处理、稳定运行、安全可靠、占用系统资源少、特有的实时事件处理、便于维护和管理、简洁良好的用户界面。

从使用者角度:方便用户使用

从程序开发者角度:编程语言

从操作系统设计者角度:让各种软件资源和硬件资源高效而协调的运转起来;尽可能方便用户使用计算机。

  1. 嵌入式操作系统的发展:
    1. 无操作系统的嵌入算法阶段
    2. 以嵌入式CPU为基础、简单操作系统为核心的嵌入式系统
    3. 通用嵌入式实时操作系统阶段,以嵌入式操作系统为核心的嵌入式系统
    4. 以基于Internet为标志的嵌入式系统。
  2. 嵌入式操作系统的特点:
    1. 可定制性:可以添加或裁剪操作系统内核
    2. 可移植性:运行在不同处理器上
    3. 实时性:可以提供实时性支持
    4. 资源限制:嵌入式操作系统内核占用空间要小
    5. 应用编程接口:提供API
  3. 嵌入式操作系统体系结构:
    1. 宏内核结构,优点:模块之间直接调用函数,效率高;缺点:维护困难,移植性和扩展性差。
    2. 分层结构,优点:复杂功能简化,分而治之,便于设计,移植替换性好,开发和维护简单;缺点:系统效率低,底层修改会产生连锁反应。
    3. 微内核结构,优点:内核小,扩展性好,安全性高,便于移植和维护;缺点:通信负载,系统效率低,地址空间独立,增加额外开销。

 

1.3嵌入式linux基础

  1. Linux功能特点:
    1. 开放性
    2. 多用户、多任务
    3. 设备独立性
    4. 强大的网络功能
    5. 安全性
    6. 可移植性
  2. Linux作为嵌入式操作系统的优势:
    1. 低成本开发系统
    2. 可应用于多种硬件平台
    3. 可定制的内核
    4. 性能优异
    5. 良好的网络支持
  3. Linux文件系统、分区和挂载

在Linux中把每一个分区和某一个目录对应,以后在对这个目录的操作就是对这个分区的操作,这样就实现了硬件管理手段和软件目录管理手段的统一。这个把分区和目录对应的过程叫做挂载(Mount),而这个挂载在文件树中的位置就是挂载点。这种对应关系可以由用户随时中断和改变。

分区:主分区、扩展分区、逻辑分区    硬盘分区是针对一个硬盘进行操作的,它可以分为:主分区、扩展分区、逻辑分区。要在硬盘上安装操作系统,则该硬盘必须要有一个主分区,PC机每个硬盘最多只能分成4个主分区,主分区不利于应用程序使用,在主分区的基础上引入扩展分区(Extended partion),因此可在硬盘4个主分区中的一个用作扩展分区,在扩展分区中可以建立多个逻辑分区(Logical partion),

  1. 文件属性

第一个字符显示文件的类型

“_”表示普通文件。

“d”表示目录文件。

“l”表示链接文件。

“c”表示字符设备。

“b”表示块设备。

“p”表示命名管道比如FIFO文件(First In First Out,先进先出)。

“f”表示堆栈文件比如LIFO文件(Last In First Out,后进先出)。

 

2嵌入式Linux编程基础

2.1Linux下的C语言编程

  1. C语言概述
    1. C是中级语言
    2. C是结构化语言
    3. C语言功能齐全
    4. C语言可移植性好
  2. Linux下C语言编程环境
    1. 编辑器
    2. 编译链接器
    3. 调试器
    4. 项目管理
  3. C语言开发流程
    1. 编写源代码
    2. 编译源程序(GCC -o)
    3. 运行程序(./hello)
    4. 调试程序(使用GDB工具)
    5. 交叉编译(基于ARM架构的GCC编译器将源程序编译成嵌入式产品中的可执行程序)
    6. 编写Makefile(自动编译管理器)

2.3GCC编译器

  1. GCC编译流程
    1. 预处理,在该阶段,编译器将上述代码中的stdio.h编译进来,并且用户可以使用Gcc的选项“-E”进行查看,该选项的作用是让Gcc在预处理结束后停止编译过程。
    2. 编译,编译阶段,在这个阶段中,Gcc首先要检查代码的规范性、是否有语法错误等,以确定代码的实际要做的工作,在检查无误后,Gcc把代码翻译成汇编语言。用户可以使用“-S”选项来进行查看,该选项只进行编译而不进行汇编,生成汇编代码。
    3. 汇编,使用选项“-c”,将汇编代码已转化为“.o”的二进制目标代码
    4. 链接,在
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值