嵌入式处理器+网卡芯片RTL8019
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式系统设计与实例开发
——ARM与C/OS-Ⅱ
基本概念及设计方法
1
一、嵌入式系统硬件基础
冯· 诺依曼体系结构和哈佛体系结构
CISC与RISC
影响CPU性能的因素
存储器系统
I/O接口
2
典型嵌入式系统基本组成-硬件
电源 模块
时钟
外围电路 微处理器
Flash
RAM
MPU
复位
ROM
14
一个典型的USB通讯系统
通用系统模型 HOST系统
PC机中的情况
应用软件+驱动程序 Ms.Win+接口芯片
嵌入式系统应用
驱动代码+嵌入式处理 器+HOST芯片
HUB
DEVICE D U盘
HUB
其他 U盘
HUB
其他
DEVICE
数据采集器
数据采集器
15
二、嵌入式系统软件基础
操作系统的分类 嵌入式实时操作系统
例如,很多基于微处理器的产品采用前后台系统设计,如微波炉 、电话机、玩具等。从省电的角度出发,平时微处理器处在停机状态 ,所有的事都靠中断服务来完成。
20
前后台系统(后台循环、前台中断)
后台 ISR 前台
时间
ISR
ISR
21
代码的临界区
代码的临界区也称为临界区,指处理时不可分割的代码。 一旦这部分代码开始执行,则不允许任何中断打入。
大家生活中常见的与USB有关的东西有:
U盘、移动硬盘、无驱型的MP3(U盘) USB接口的键盘、Mouse、打印机、数码相机……
即插即用,热插拨,系统不需重启便可工作,且易于扩展 (127个)
USB2.0以低成本实现高达480Mb/s的传输率(USB1.1的全 速设备可达12Mb/s)
接口标准统一、端口供电
超标量执行:超标量CPU采用多条流水线结构
指令CACHE
预取
预取
流 水 线 1
译码1 译码2 执行1 执行2
流 水 线 2
译码1 译码2 执行1 执行2
数据
8
高速缓存(CACHE)
1、为什么采用高速缓存 微处理器的时钟频率比内存速度提高快得多,高速缓存可以 提高内存的平均性能。 2、高速缓存的工作原理 高速缓存是一种小型、快速的存储器,它保存部分主存内 容的拷贝。
弱实时系统,其系统响应时间约为数十秒或更长(工 程机械)。
18
按软件结构分类
1)循环轮询系统:(Polling Loop)
最简单的软件结构是循环轮询,程序依次检查系统的每一个输入条 件,一旦条件成立就进行相应的处理。 Initialize() While(true){
if(condition_1) action_1();
系统内核(Kernel)与调度(Scheduler)
多任务系统中,内核负责管理各个任务,或者说为每个任 务分配CPU时间,并且负责任务之间的通信。 内核提供的基本服务是任务切换。内核本身也增加了应用 程序的额外负荷,代码空间增加ROM用量,内核本身的数 据结构增加了RAM的用量。内核本身对CPU的占用时间一般 在2到5个百分点之间。 调度(Scheduler)是内核的主要职责之一,就是要决定 该轮到哪个任务运行了。多数实时内核是基于优先级调度 法的。每个任务根据其重要程度的不同被赋予一定的优先 级。基于优先级的调度法指,CPU总是让处在就绪态的优 先级最高的任务先运行。
24
任务的状态
WAITING
OSTaskDel()
OSMBoxPost() OSQPost() OSQPostFront() OSSemPost() OSTaskResume() OSTimeDlyResume() OSTimeTick()
OSMBoxPend() OSQPend() OSSemPend() OSTaskSuspend() OSTimeDly() OSTimeDlyHMSM()
数据存储器 数据0 数据1 数据2
输出
数据
5
1.3 CISC和RISC
CISC:复杂指令集(Complex Instruction Set Computer) 具有大量的指令和寻址方式 8/2原则:80%的程序只使用20%的指令 大多数程序只使用少量的指令就能够运行。 RISC:精简指令集(Reduced Instruction Set Computer) 在通道中只包含最有用的指令
26
任务优先级
静态优先级 应用程序执行过程中诸任务优先级不变,则称之为 静态优先级。在静态优先级系统中,诸任务以及它们的 时间约束在程序编译时是已知的
动态优先级 应用程序执行过程中,任务的优先级是可变的,则 称之为动态优先级。实时内核应当避免出现优先级反转 问题。
27
优先级反转
Priority Inversion
4)DRM需要周期性刷新 ROM:只读存储器 FLASH:闪存
11
SRAM和DRAM
1)SRAM 2)DRAM
CS R/W Addr Data
CS R/W RAS CAS Addr Data
12
输入输出接口
I/O
A/D、D/A
键盘 LCD 存储器接口 设备接口
13
例如USB
USB:Universal Serial Bus,通用串行总线
在进入临界区之前要关中断,而临界区代码执行完以后要 立即开中断(在任务切换时,地址、指令、数据等寄存器 堆栈保护)。
22
多任务(任务、进程和线程)
休眠、就绪、运行、挂起、被中断
任务 1
任务 2 任务 n
……
任务 控制 块1 寄存器 CPU CPU寄存器
23
任务 控制 块2
任务 控制 块n
一个任务,也称作一个线程,是一个简单的运行 程序。每个任务都是整个应用的某一部分,每个任务被 赋予一定的优先级, 有它自己的一套CPU寄存器和自己 的栈空间。 多任务运行的实现实际上是靠CPU(中央处理单元 )在许多任务之间转换、调度。 CPU只有一个,轮番服务于一系列任务中的某一 个。多任务运行使CPU的利用率得到最大的发挥,并使 应用程序模块化。 在实际应用中,多任务的最大特点是,开发人员 可以将很复杂的应用程序层次化-综合实验(时钟、位 图、USB、KEY)。
外设
USB LCD Keyboard Other
3
1.1 冯· 诺依曼体系结构模型
存储器
指令寄存器
控制器
程序
指令0 指令1 指令2 指令3 指令4
数据通道 输入 中央处理器
输出
数据 数据0 数据1 数据2
4
1.2 哈佛体系结构
地址 程序存储器 指令0 指令1 指令2
指令寄存器
控制器
指令
地址 数据通道 输入 中央处理器
系统测试:对设计好的系统进行测试,看其是否满足规格说明书 中给定的功能要求。
34
嵌入式开发工具与开发环境
35
嵌入式软件开发流程
开始 新工程 以 太 网 口 网络 接口 ARM SDT Debug 并 口
编辑源代码
ARM300开发板 ARM7 处理器 执行
前台与后台
多任务,任务优先级,调度
非占先式与占先式、可重入型函数
16
3.1 操作系统的分类
(1)顺序执行系统:系统内只含有一个程序,独占CPU的运 行时间,按语句顺序执行该程序,直至执行完毕,另一程 序才能启动运行。如DOS操作系统。
(2)分时操作系统:系统内同时可以有多个程序运行,把 CPU的时间分按顺序分成若干片,每个时间片内执行不同 的程序。如UNIX
用同样的顺序去申请多个资源 释放资源时使用相反的顺序
30
本节提要
1 嵌入式系统硬件基础 2 嵌入式系统软件基础 3 嵌入式系统设计方法
4
5
一个嵌入式设计方法实例
嵌入式BSP的基本概念
31
嵌入式系统的软/硬件框架
驱动器1 驱动器2 ...... 驱动器N 传感器1 传感器2 .....maphore)
信号量是60年代中期Edgser Dijkstra 发明的。信号 量实际上是一种约定机制,在多任务内核中普遍使用. 信号量用于:
控制共享资源的使用权(满足互斥条件) 标志某事件的发生 使两个任务的行为同步
信号与信号量在英文中都叫做Semaphore,并不加以区 分,而说它有两种类型,二进制型(binary)和计数器 型(counting)
if(condition_2) action_2(); …… if(condition_n) acition_n(); }
19
2)事件驱动系统:(Event-Driven system)
事件驱动系统是能对外部事件直接响应的系统。它包括前后台、 实时多任务、多处理器等,是嵌入式实时系统的主要形式。 应用程序是一个无限的循环,循环中调用相应的函数完成相应的 操作,这部分可以看成后台行为(background)。中断服务程序处理 异步事件,这部分可以看成前台行为(foreground)。 后台也可以叫做任务级,前台也叫中断级。
系统需求分析:确定设计任务和设计目标,并提炼出设计规格说 明书,作为正式设计指导和验收的标准。系统的需求一般分功能 性需求和非功能性需求两方面。功能性需求是系统的基本功能, 如输入输出信号、操作方式等;非功能需求包括系统性能、成本 、功耗、体积、重量等因素。 体系结构设计:描述系统如何实现所述的功能和非功能需求,包 括对硬件、软件和执行装臵的功能划分以及系统的软件、硬件选 型等。一个好的体系结构是设计成功与否的关键。 硬件/软件协同设计:基于体系结构,对系统的软件、硬件进行详 细设计。为了缩短产品开发周期,设计往往是并行的。应该说, 嵌入式系统设计的工作大部分都集中在软件设计上,采用面向对 象技术、软件组件技术、模块化设计是现代软件工程经常采用的 方法。 系统集成:把系统的软件、硬件和执行装臵集成在一起,进行调 试,发现并改进单元设计过程中的错误。
OSTaskCreate() OSTaskCreateExt()
DORMANT
OSTaskDel()
READY
OSStart() OSIntExit() OS_TASK_SW()
Interrupt
RUNNING
OSIntExit()
ISR
Task is Preempted OSTaskDel()
25
确保数据通道快速执行每一条指令
使CPU硬件结构设计变得更为简单
6
1.4 影响CPU性能的因素:流水线、超标量和缓存
流水线技术:几个指令可以并行执行 提高了CPU的运行效率 内部信息流要求通畅流动
Add Sub Cmp 时间
取指
译码 取指
执行add 译码 取指 执行sub 译码 执行cmp
7
超标量执行
机械装置
被控对象
功能层 文件系统
应用程序 图形用户 接口 任务管理
软件层
实时操作系统(RTOS) 中间层 BSP/HAL 硬件抽象层/板极支持包 D/A 硬件层 A/D I/O 人机交互接口 嵌入式计算机系统 嵌入式 微处理器 通用接口 ROM SDRAM
32
基于知识平台的开发方法
33
嵌入式系统设计步骤
(4) (12)
Task 1 (H)
(8)
Task 2 (M)
(1) (6) (10)
Task 3 (L)
Task 3 Get Semaphore (2) Task 1 Preempts Task 3 (3) Task 1 Tries to get Semaphore (5) Task 3 Resumes (9) Task 3 Releases the Semaphore (11) Task 2 Preempts Task 3 (7)
29
死锁(或抱死) Deadlock
死锁也称作抱死,指两个任务无限期地互相等待对方控制 着的资源。设任务T1正独享资源R1,任务T2在独享资源T2 ,而此时T1又要独享R2,T2也要独享R1,于是哪个任务都 没法继续执行了,发生了死锁。最简单的防止发生死锁的 方法是让每个任务都:
先得到全部需要的资源再做下一步的工作
(3)实时操作系统:系统内有多个程序运行,每个程序有 不同的优先级,只有最高优先级的任务才能占有CPU的控 制权。
17
按实时性分类
强实时系统,其系统响应时间在毫秒或微秒级(数控 机床);
一般实时系统,其系统响应时间在毫秒-几秒的数量 级上,其实时性的要求比强实时系统要差一些(电子菜谱 的查询)。
高 速 缓 存 控 制 器
数据
CACHE 主存
CPU
地址 数据
9
总线和总线桥
CPU
低速设备
高速总线
桥
低速总线
存储器
高速设备
数据
高速设备
10
1.5 存储器系统
RAM:随机存取存储器, SRAM:静态随机存储器, DRAM: 动态随机存储器 1)SRAM比DRAM快 2)SRAM比DRAM耗电多
3)DRAM存储密度比SRAM高得多
——ARM与C/OS-Ⅱ
基本概念及设计方法
1
一、嵌入式系统硬件基础
冯· 诺依曼体系结构和哈佛体系结构
CISC与RISC
影响CPU性能的因素
存储器系统
I/O接口
2
典型嵌入式系统基本组成-硬件
电源 模块
时钟
外围电路 微处理器
Flash
RAM
MPU
复位
ROM
14
一个典型的USB通讯系统
通用系统模型 HOST系统
PC机中的情况
应用软件+驱动程序 Ms.Win+接口芯片
嵌入式系统应用
驱动代码+嵌入式处理 器+HOST芯片
HUB
DEVICE D U盘
HUB
其他 U盘
HUB
其他
DEVICE
数据采集器
数据采集器
15
二、嵌入式系统软件基础
操作系统的分类 嵌入式实时操作系统
例如,很多基于微处理器的产品采用前后台系统设计,如微波炉 、电话机、玩具等。从省电的角度出发,平时微处理器处在停机状态 ,所有的事都靠中断服务来完成。
20
前后台系统(后台循环、前台中断)
后台 ISR 前台
时间
ISR
ISR
21
代码的临界区
代码的临界区也称为临界区,指处理时不可分割的代码。 一旦这部分代码开始执行,则不允许任何中断打入。
大家生活中常见的与USB有关的东西有:
U盘、移动硬盘、无驱型的MP3(U盘) USB接口的键盘、Mouse、打印机、数码相机……
即插即用,热插拨,系统不需重启便可工作,且易于扩展 (127个)
USB2.0以低成本实现高达480Mb/s的传输率(USB1.1的全 速设备可达12Mb/s)
接口标准统一、端口供电
超标量执行:超标量CPU采用多条流水线结构
指令CACHE
预取
预取
流 水 线 1
译码1 译码2 执行1 执行2
流 水 线 2
译码1 译码2 执行1 执行2
数据
8
高速缓存(CACHE)
1、为什么采用高速缓存 微处理器的时钟频率比内存速度提高快得多,高速缓存可以 提高内存的平均性能。 2、高速缓存的工作原理 高速缓存是一种小型、快速的存储器,它保存部分主存内 容的拷贝。
弱实时系统,其系统响应时间约为数十秒或更长(工 程机械)。
18
按软件结构分类
1)循环轮询系统:(Polling Loop)
最简单的软件结构是循环轮询,程序依次检查系统的每一个输入条 件,一旦条件成立就进行相应的处理。 Initialize() While(true){
if(condition_1) action_1();
系统内核(Kernel)与调度(Scheduler)
多任务系统中,内核负责管理各个任务,或者说为每个任 务分配CPU时间,并且负责任务之间的通信。 内核提供的基本服务是任务切换。内核本身也增加了应用 程序的额外负荷,代码空间增加ROM用量,内核本身的数 据结构增加了RAM的用量。内核本身对CPU的占用时间一般 在2到5个百分点之间。 调度(Scheduler)是内核的主要职责之一,就是要决定 该轮到哪个任务运行了。多数实时内核是基于优先级调度 法的。每个任务根据其重要程度的不同被赋予一定的优先 级。基于优先级的调度法指,CPU总是让处在就绪态的优 先级最高的任务先运行。
24
任务的状态
WAITING
OSTaskDel()
OSMBoxPost() OSQPost() OSQPostFront() OSSemPost() OSTaskResume() OSTimeDlyResume() OSTimeTick()
OSMBoxPend() OSQPend() OSSemPend() OSTaskSuspend() OSTimeDly() OSTimeDlyHMSM()
数据存储器 数据0 数据1 数据2
输出
数据
5
1.3 CISC和RISC
CISC:复杂指令集(Complex Instruction Set Computer) 具有大量的指令和寻址方式 8/2原则:80%的程序只使用20%的指令 大多数程序只使用少量的指令就能够运行。 RISC:精简指令集(Reduced Instruction Set Computer) 在通道中只包含最有用的指令
26
任务优先级
静态优先级 应用程序执行过程中诸任务优先级不变,则称之为 静态优先级。在静态优先级系统中,诸任务以及它们的 时间约束在程序编译时是已知的
动态优先级 应用程序执行过程中,任务的优先级是可变的,则 称之为动态优先级。实时内核应当避免出现优先级反转 问题。
27
优先级反转
Priority Inversion
4)DRM需要周期性刷新 ROM:只读存储器 FLASH:闪存
11
SRAM和DRAM
1)SRAM 2)DRAM
CS R/W Addr Data
CS R/W RAS CAS Addr Data
12
输入输出接口
I/O
A/D、D/A
键盘 LCD 存储器接口 设备接口
13
例如USB
USB:Universal Serial Bus,通用串行总线
在进入临界区之前要关中断,而临界区代码执行完以后要 立即开中断(在任务切换时,地址、指令、数据等寄存器 堆栈保护)。
22
多任务(任务、进程和线程)
休眠、就绪、运行、挂起、被中断
任务 1
任务 2 任务 n
……
任务 控制 块1 寄存器 CPU CPU寄存器
23
任务 控制 块2
任务 控制 块n
一个任务,也称作一个线程,是一个简单的运行 程序。每个任务都是整个应用的某一部分,每个任务被 赋予一定的优先级, 有它自己的一套CPU寄存器和自己 的栈空间。 多任务运行的实现实际上是靠CPU(中央处理单元 )在许多任务之间转换、调度。 CPU只有一个,轮番服务于一系列任务中的某一 个。多任务运行使CPU的利用率得到最大的发挥,并使 应用程序模块化。 在实际应用中,多任务的最大特点是,开发人员 可以将很复杂的应用程序层次化-综合实验(时钟、位 图、USB、KEY)。
外设
USB LCD Keyboard Other
3
1.1 冯· 诺依曼体系结构模型
存储器
指令寄存器
控制器
程序
指令0 指令1 指令2 指令3 指令4
数据通道 输入 中央处理器
输出
数据 数据0 数据1 数据2
4
1.2 哈佛体系结构
地址 程序存储器 指令0 指令1 指令2
指令寄存器
控制器
指令
地址 数据通道 输入 中央处理器
系统测试:对设计好的系统进行测试,看其是否满足规格说明书 中给定的功能要求。
34
嵌入式开发工具与开发环境
35
嵌入式软件开发流程
开始 新工程 以 太 网 口 网络 接口 ARM SDT Debug 并 口
编辑源代码
ARM300开发板 ARM7 处理器 执行
前台与后台
多任务,任务优先级,调度
非占先式与占先式、可重入型函数
16
3.1 操作系统的分类
(1)顺序执行系统:系统内只含有一个程序,独占CPU的运 行时间,按语句顺序执行该程序,直至执行完毕,另一程 序才能启动运行。如DOS操作系统。
(2)分时操作系统:系统内同时可以有多个程序运行,把 CPU的时间分按顺序分成若干片,每个时间片内执行不同 的程序。如UNIX
用同样的顺序去申请多个资源 释放资源时使用相反的顺序
30
本节提要
1 嵌入式系统硬件基础 2 嵌入式系统软件基础 3 嵌入式系统设计方法
4
5
一个嵌入式设计方法实例
嵌入式BSP的基本概念
31
嵌入式系统的软/硬件框架
驱动器1 驱动器2 ...... 驱动器N 传感器1 传感器2 .....maphore)
信号量是60年代中期Edgser Dijkstra 发明的。信号 量实际上是一种约定机制,在多任务内核中普遍使用. 信号量用于:
控制共享资源的使用权(满足互斥条件) 标志某事件的发生 使两个任务的行为同步
信号与信号量在英文中都叫做Semaphore,并不加以区 分,而说它有两种类型,二进制型(binary)和计数器 型(counting)
if(condition_2) action_2(); …… if(condition_n) acition_n(); }
19
2)事件驱动系统:(Event-Driven system)
事件驱动系统是能对外部事件直接响应的系统。它包括前后台、 实时多任务、多处理器等,是嵌入式实时系统的主要形式。 应用程序是一个无限的循环,循环中调用相应的函数完成相应的 操作,这部分可以看成后台行为(background)。中断服务程序处理 异步事件,这部分可以看成前台行为(foreground)。 后台也可以叫做任务级,前台也叫中断级。
系统需求分析:确定设计任务和设计目标,并提炼出设计规格说 明书,作为正式设计指导和验收的标准。系统的需求一般分功能 性需求和非功能性需求两方面。功能性需求是系统的基本功能, 如输入输出信号、操作方式等;非功能需求包括系统性能、成本 、功耗、体积、重量等因素。 体系结构设计:描述系统如何实现所述的功能和非功能需求,包 括对硬件、软件和执行装臵的功能划分以及系统的软件、硬件选 型等。一个好的体系结构是设计成功与否的关键。 硬件/软件协同设计:基于体系结构,对系统的软件、硬件进行详 细设计。为了缩短产品开发周期,设计往往是并行的。应该说, 嵌入式系统设计的工作大部分都集中在软件设计上,采用面向对 象技术、软件组件技术、模块化设计是现代软件工程经常采用的 方法。 系统集成:把系统的软件、硬件和执行装臵集成在一起,进行调 试,发现并改进单元设计过程中的错误。
OSTaskCreate() OSTaskCreateExt()
DORMANT
OSTaskDel()
READY
OSStart() OSIntExit() OS_TASK_SW()
Interrupt
RUNNING
OSIntExit()
ISR
Task is Preempted OSTaskDel()
25
确保数据通道快速执行每一条指令
使CPU硬件结构设计变得更为简单
6
1.4 影响CPU性能的因素:流水线、超标量和缓存
流水线技术:几个指令可以并行执行 提高了CPU的运行效率 内部信息流要求通畅流动
Add Sub Cmp 时间
取指
译码 取指
执行add 译码 取指 执行sub 译码 执行cmp
7
超标量执行
机械装置
被控对象
功能层 文件系统
应用程序 图形用户 接口 任务管理
软件层
实时操作系统(RTOS) 中间层 BSP/HAL 硬件抽象层/板极支持包 D/A 硬件层 A/D I/O 人机交互接口 嵌入式计算机系统 嵌入式 微处理器 通用接口 ROM SDRAM
32
基于知识平台的开发方法
33
嵌入式系统设计步骤
(4) (12)
Task 1 (H)
(8)
Task 2 (M)
(1) (6) (10)
Task 3 (L)
Task 3 Get Semaphore (2) Task 1 Preempts Task 3 (3) Task 1 Tries to get Semaphore (5) Task 3 Resumes (9) Task 3 Releases the Semaphore (11) Task 2 Preempts Task 3 (7)
29
死锁(或抱死) Deadlock
死锁也称作抱死,指两个任务无限期地互相等待对方控制 着的资源。设任务T1正独享资源R1,任务T2在独享资源T2 ,而此时T1又要独享R2,T2也要独享R1,于是哪个任务都 没法继续执行了,发生了死锁。最简单的防止发生死锁的 方法是让每个任务都:
先得到全部需要的资源再做下一步的工作
(3)实时操作系统:系统内有多个程序运行,每个程序有 不同的优先级,只有最高优先级的任务才能占有CPU的控 制权。
17
按实时性分类
强实时系统,其系统响应时间在毫秒或微秒级(数控 机床);
一般实时系统,其系统响应时间在毫秒-几秒的数量 级上,其实时性的要求比强实时系统要差一些(电子菜谱 的查询)。
高 速 缓 存 控 制 器
数据
CACHE 主存
CPU
地址 数据
9
总线和总线桥
CPU
低速设备
高速总线
桥
低速总线
存储器
高速设备
数据
高速设备
10
1.5 存储器系统
RAM:随机存取存储器, SRAM:静态随机存储器, DRAM: 动态随机存储器 1)SRAM比DRAM快 2)SRAM比DRAM耗电多
3)DRAM存储密度比SRAM高得多