天天看点

嵌入式操作系统---重点知识

嵌入式系统的特点:1、 精简内存空间  2、待机时间长  3、可与外界设备连接  4、动态加载应用程序  5、网络通信

嵌入式处理器分类:1、嵌入式微处理器  2、嵌入式微控制器  3、嵌入式dsp处理器  4、嵌入式片上系统

mips:即“无内部互锁流水级的微处理器”,其机制是尽量利用软件办法避免流水线中的数据相关问题。

arm处理器:arm处理器既是一个公司名字,也是一类微处理器的统称,还是一种技术的名字。arm处理器主要用于工业控制、无线通信、网络应用、消费类电子产品、成像和安全产品,一般采用risc架构。

实时嵌入式系统:是以执行特定功能设计的,可以严格按照时序执行功能的嵌入式系统,最大特点是程序的执行具有确定性。

典型的嵌入式操作系统:1、windows ce  2、symbian  3、embedded linux

嵌入式系统软件组成:1、初始化引导代码  2、板级支持包  3、操作系统  4、通信协议栈   5、图形用户界面  6、应用软件

嵌入式系统软件结构:1、板级支持包  2、操作系统  3、用户应用软件底层  4、用户应用软件高层

板级支持包bsp:bsp是嵌入式操作系统介于硬件平台和操作系统之间的中间层软件,主要用于屏蔽底层硬件多样性,根据操作系统的要求完成对硬件的直接操作,向操作系统提供底层硬件信息,并最终启动操作系统。

bsp主要作用:1、初始化底层硬件,为操作系统提供底层硬件信息  2、初始化相关硬件设备,主要是存储设备和通信设备。3、检测系统硬件是否正常  4、加载操作系统并启动系统运行。

轮转结构:一种非常简单的结构,它没有中断没有共享数据,无须考虑延迟时间,对于能用该结构成功解决的问题的系统来说它是首选。

宿主机与目标机:开发环境:1、本地开发环境  2、交叉开发环境(分开放型和商业型)  。    运行交叉开发环境的pc即为宿主机,嵌入式设备即为目标机。

宿主系统通常带有如下硬件:1、带有高速缓存的高性能处理器  2、大容量ram  3、只读存储器和基本输入输出  4、超大容量磁盘  5、键盘  6、鼠标 7、网络连接

链接器:将编译过的应用程序代码与库os内核目标代码链接在一起。

消息队列特征:1、os提供了对消息队列或消息的插入删除操作  2、在使用内核中用于队列的函数之前,每个消息队列都需要初始化  3、每个创建队列都有一个id  4、每个队列都有用户可定义的大小。

调度器:调度器的一个重要目标就是有效的分配cpu时间片,同时提供良好的用户体验。

可调度实体:1、任务:独立的执行线程,线程中包含独立的可调度指令  2、进程:由内核提供的可调度对象。

异常:打断处理器正常执行,并迫使处理器进入一个有特权的特殊指令的执行事件。

异常分为:1、同步异常:由内部事件引起的异常,例子:1)从一个奇数内存地址读或写操作将引起存储器存取一个错误事件,并引起一个异常。2)造成一个被0除的运算

                     2、异步异常:由外部事件即与处理器指令无关的事件引发的异常,例子:1)按下嵌入式板上的复位键  2)通信处理器模块接收数据包

中断:1、从是否可屏蔽分为:可屏蔽中断和不可屏蔽中断  2、从中断源可分为:硬件中断和软件中断  3、从出发方式可分为:边缘触发中断和电平触发中断  4、从调用方式可分为:向量中断、直接中断和间接中断。

异常的优先权:1、不同优先级的中断源同时提出中断请求,处理器首先响应优先级最高的  2、当处理器正对某一中断源服务时,有比它优先级更高的中断源提出中断请求时,处理器中断正在执行的中断服务程序而去对优先级更高的中断源进行服务,服务结束后再返回原优先级较低的中断服务程序继续执行。

arm的异常中断响应过程:1、将下一条指令地址存入相应的链接寄存器lr,以便程序在处理完异常之后从正确的位置重新开始执行。2、将cpsr的值复制到相应的spsr中

3、设置适当的cpsr位,包括改变处理器状态进入arm状态,改变处理器模式进入相应的异常模式,设置中断禁止位禁止相应的中断。4、设置pc使其从相应的异常向量地址

取下一条指令执行,从而跳转到相应的异常处理程序处。

资源同步:多任务的访问必须同步,以维护共享资源的完整性,此过程称为资源同步,常见方法有:1)中断锁 2)抢占锁

死锁:系统中执行多个并发线程被永久阻塞因为资源的需求绝不能被满足。

死锁产生的条件:1、相互排斥  2、非抢先  3、保持和等待  4、圆圈等待

资源请求模型:1、单资源请求模型  2、and资源请求模型  3、or 资源请求模型  4、and-or 请求模型

死锁检测:死锁检测算法是一个全局算法,它常常用来检测整个系统中的死锁。

优先级倒置:1、优先级继承:强令低优先级任务继承 与之共享资源并被挂起的任意高优先级任务的优先等级

                        2、优先级顶置:为每种资源都分配优先级

android的linux平台组成:1、操作系统  2、中间件  3、用户界面  4、应用软件

android的系统构架:分层构架:1、应用程序层(java开发) 2、应用程序框架层(java开发) 3、系统运行库层(c、c++) 4、linux核心层(c语言实现)

android基于linux操作系统,由硬件、系统内核、系统服务、应用程序组成,和标准的linux内核一样,android内核主要实现内存管理、进程调度、进程间通信等功能。

蓝牙驱动:1、蓝牙协议部分:包括hci接口、sco模块、l2cap模块、bnep模块 ,2、蓝牙控制器驱动部分:为基于sdio/uart/usb接口的蓝牙设备提供驱动。

framebuffer 帧缓冲:linux抽象出framebuffer来供用户进程进行直接写屏,framebuffer是图形硬件设备的抽象层,它描述视频硬件的帧缓冲区,提供一组非常方便的应用软件访问图形硬件的接口。

android工程目录:src、gen、assets、res、androidmanifest.xml

android应用程序由4个模块构造而成:activity、intent、content provider、service.

程序设计题:

android数据库

插入方法:

public long insert(string detail,string time,string source)

{

    system.out.println("start insert");

    sqlitedatabase db= this.getwritabledatabase();

    contentvalues cv= new contentvalues();

    cv.put("detail", detail);

    cv.put("time", time);

    cv.put("source", source);

    long row=db.insert("spring",null,cv);

    system.out.println("finish insert");

    return row;

}

查询数据方法

public cursor select()

system.out.println("select");

 sqlitedatabase db= this.getreadabledatabase();

 system.out.println("select");

 cursor cursor=db.query("spring",null,null,null,null,null,null);

system.out.println("6.5");

return cursor;

更新数据方法

public void update(int id,string item,string text)

 sqlitedatabase db= this.getwritabledatabase();

 string where="_id"+"=?";

 string[] wherevalue={integer.tostring(id)};

 contentvalues cv= new contentvalues();

      cv.put(item, text);

      db.update("spring",cv,where,wherevalue);