嵌入式系统设计师笔记

 嵌入式软件开发概述

  1.嵌入式应用软件开发步骤:

    1. 硬件的设计与实现;
    2. 设备驱动软件的设计与实现;
    3. 嵌入式操作系统的选择,移植,以及API接口函数的设计;
    4. 支撑软件的设计与调试;
    5. 应用程序的设计与调试;
    6. 系统联调、样机交付。

  2、嵌入式软件开发的特点:

    1. 需要交叉编译工具;
    2. 通过仿真手段进行调试;
    3. 开发板是中间目标机;
    4. 可利用的资源有限;
    5. 需要与硬件打交道;

  3、嵌入式开发遇到的问题:

    1. 软件硬协同设计
    2. 嵌入式操作系统; 
    3. 代码优化; 
    4. 有限的I/O资源;

嵌入式软件开发环境

  •   宿主机:是用于开发嵌入式系统的计算机,运行的工具包括:文本编辑器、交叉调试器、集成环境以及各种分析工具。
  •   目标机一般在嵌入式应用软件的开发和调试期使用,它可以是嵌入式应用软件的实际运行环境,也可以是能够代替实际运行环境的仿真系统。
  •   常用的调度方法:直接测试法、调试监控器法、ROM仿真器法、在线仿真器法、片上调试法及模拟法。

嵌入式程序设计语言

  1、程序设计语言概述

  机器语言:是与计算机硬件关系最为密切的计算机语言,在计算机硬件上执行的就是一条条用机器语言来编写的指令;

  汇编语言:基本思路是用符号的形式来代替二进行的指令。

  低级语言:通常将机器语言和汇编语言统称为低级语言。

  ⑵语言处理程序

  语言处理程序:担任翻译任务的程序称为语言处理程序。包括:汇编程序、解释程序、编译程序。

  源程序:用汇编语言或某程高级语言编写的程序。源程序不能直接在计算机上运行。

  解释程序:也称解释器,它直接解释执行源程序、或将源程序翻译成某种中间表示形式后再执行。

  编译程序:是将源程序翻译成目标语言程序,然后在计算机上运行。

  区别:在编译方式下,机器上运行的是与源程序等价的目标程序,源程序和编译程序都不再参与目标程序的执行;而在解释方式下,解释程序和源程序要参与程序的运行过程中,运行控制权在解释程序。

  程序设计语言的定义

  ⑶包括:语法、语义、语用、语境。

  2、汇编语言

  ⑴、基本原理:为特定计算机或计算机系统设计的面向机器的符号化程序设计语言。

  包括三类语句:指令语句、伪指令语句、宏指令语句。
  指令语句:又称机器指令语句,将其汇编后能产生相应的机器代码,这些代码能被CPU直接识别并执行相应的操作;
  伪指令语句:指示汇编程序在对源程序进行汇编时完成某些工作。区别:伪指令在汇编后不产生机器代码,而指令语句产生机器代码。常用:定义伪指令 EQU;存储定义伪指令 DCB;汇编控制伪指令 IF、ELSE、ENDIF,WHILE WEND;开始伪指令 ENTRY;结束伪指令 END。

  宏指令:将多次重复使用的程序段定义为宏

  ⑵、ARM汇编语言

  格式:ARM语言以段为单位组织源文件。段是相对独立的、具有特定名称的、不可分割的指令或数序列。段可以分为代码段和数据段,代码段存放执行代码、数据段存放代码运行时用到的数据。一个ARM源程序至少要一个代码段。

  ARM汇编语言程序经过汇编处理后生成一个可执行的映像文件,包括:一个或多处代码段,代码段通常是只读的;0个或多个包含初始值的数据段,通常可读写;0个或多处不含初始值的数据段,可读写;

  3、面向过程的语言

  定义:也叫命令式语言或强制式语言,通过一系列可执行的运算及运算的先后次序来描述计算的过程。

  过程序式语言包括:数据、运算、控制、函数。

  数据成分:是一种程序语言的数据类型。

  数据属性:包括名称、类型、存储类别、作用域、生存周期。

  运算成份:算术运算、关系运算、逻辑运算。

  控制成份:顺序、选择、重复;

  函数:是程序模块的主要成份,它是一段具有独立功能的程序,包括三个概念:函数定义,函数声明、函数调用。

  一次函数调用的步骤:⑴、在内存的栈空间当中为其分配一个栈帧,用来存放该函数的形参变量和局部变量;⑵、把实参变量的值复制到相应的形参变量中;⑶、控制流转移到该函数的起始位置;⑷、该函数开始执行;⑸、当这个函数执行完成后,控制流和返回值返回到函数调用点。 

 4、面向对象的语言

  面向对象=对象+分类+继承+通过消息的通信

  对象:是基本运行时的实体,包括数据(属性),数据操作的行为,所以一个对象将属性和行为封装成一个整体。由对象名、属性、操作三个部分组成。

  方法:在对象内的操作称为方法;

  消息:对象之间进行通信的一种构造;

  类:定义了一组大体上相似的对象,类是在对象之上的抽象,对象是类的具体化。

  继承:父类和子类之间共享数据和方法的机制。

  多态:不同的对象收到同一消息可以产生完成不同的结果,这一现象称为多态。

  动态绑定:是一个把过程调用和响应调用所需要执行的代码加以结全的过程。

  C++:一种面向对象的语言,支持面向对象,也支持面向过程。

  5、汇编、编译、解译程序的基本原理

  ⑴、汇编程序:是将汇编语言源程序翻译成机器语言程序。

  汇编程序一般至少需要两次扫描源程序才能完成翻译过程:第一次主要工作是定义符号的值并创建一个符号表ST;第二次是扫描的任务产生目标程序。

  ⑵、编译程序:功能是把某些高级语言编写的源程序翻译成与之等价的目标语言程序。

  分成六个阶段:词法分板阶段、语法分板阶段、语议分析阶段、中间代码生成阶段、代码优化阶段、目标代码生成阶段。

  ⑶、解释程序:是另一种语言处理程序,在词法、语法、语议分析方面与编译程序,它直接执行源程序或源程序的内部形式。因此解释程序不产生源程序的目标程序,这是与编译程序的主要区别。



  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值