内容提要 概述 Nucleus PLUS介绍 Nucleus开发环境. 内容提要 概述 Nucleus PLUS介绍 Nucleus开发环境.

Slides:



Advertisements
Similar presentations
嵌入式系統 資工系 魏 凱 城. 什麼是嵌入系統 提到 CPU 我們很直覺的會聯想到 PC ,但事實上 CPU 的應用領域、範圍及採用的數量都遠遠超過 PC 的範疇。 提到 CPU 我們很直覺的會聯想到 PC ,但事實上 CPU 的應用領域、範圍及採用的數量都遠遠超過 PC 的範疇。 以數量來看 x86.
Advertisements

高级服务器设计和实现 1 —— 基础与进阶 余锋
提高阶段: ——ARM部分 电气工程系 赵志衡.
嵌入式系统简介 Introduction to Embedded System
嵌入式系统 主讲人: 赵宏伟 学时: 32 吉林大学计算机科学与技术学院.
第 2 章 中央處理單元.
第二部分 嵌入式硬件系统 第2章 嵌入式处理器 第3章 ARM内核与ARM处理器 第4章 嵌入式系统的外围设备.
嵌入式系统与结构 —基于ARM的体系结构和应用开发
基于s3c44B0X嵌入式uCLinux系统原理及应用
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
NEUSOFT Institute of information Technology .ChengDu
嵌入式控制系统 学时:45,1~12周,第13周闭卷考试 实验课:18学时,穿插在本课程间进行
第一章 嵌入式系统概况 大连理工大学 马洪连.
Foundations of Computer Science
第四章 電腦軟體 課前指引 實體的電腦裝置,我們稱之為「硬體」(Hardware),至於軟體則是個抽象的概念,軟體是經由人類以各種不同的程式語言撰寫而成,以達到控制硬體、進行各種工作的抽象化(例如文書處理)等動作。有些讀者經常迫不及買了一台新電腦,就以為可以開始使用!事實不然,一部配備齊全的電腦,如果沒有合適的軟體來控制與搭配,絕對也是英雄無用武之地。一般來說,我們將軟體分「系統軟體」(System.
操作系统结构.
Proteus虚拟仿真.
基于解释性语言的手机跨平台架构 Sloan Yi. Qt MTK.
UROVO—i6200 外观设计 建议零售价格:XX元 上市时间:2014年 月 12 日 目标人群:快递、物流、医院、零售、快销
單晶片原理與應用 魏兆煌 整理 南台科技大學 電機系 Sep
第 2 章 中央處理單元.
第一章 嵌入式系统开发基础 本章介绍了嵌入式系统开发的基础知识,从嵌入式计算机的历史由来、嵌入式系统的定义、嵌入式系统的基本特点、嵌入式系统的分类及应用、嵌入式系统软硬件各部分组成、嵌入式系统的开发流程、嵌入式技术的发展趋势等方面进行了介绍,涉及到嵌入式系统开发的基本内容,使读者系统地建立起的嵌入式系统整体概念。
Operating System Concepts 作業系統原理 Chapter 3 行程觀念 (Process Concept)
Kvm异步缺页中断 浙江大学计算机体系结构实验室 徐浩.
Symbian OS介绍 概述 第一部分.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
主講:王穎聰 電腦與通訊工程學系講師 銘傳大學資訊網路處
淺談Visual C# 程式設計 國立台灣師大附中 李啟龍 Jason.
99(1)義守大學工讀職場技能精進訓練班 資訊工程系 林義隆 老師
VxWorks软硬件设计及实例分析
1-1 微電腦系統單元 1-2 微電腦系統架構 1-3 微控制器(單晶片微電腦) 1-4 類比與數位訊號介面
1-1 微電腦系統單元 1-2 微電腦系統架構 1-3 微控制器(單晶片微電腦) 1-4 類比與數位訊號介面
Bootloader技术分析.
嵌入式系统课程简介 宋健建 南京大学软件学院 2004/02/10.
嵌入式系統架構 長高科技 顏旭偉.
第二讲 搭建Java Web开发环境 主讲人:孙娜
嵌入式系统设计与开发 第1章 概述 第2章 ARM及其编程模型 第3章 ARM指令集 第4章 嵌入式程序设计
Chapter 3 行程觀念 (Process Concept)
第1章 嵌入式系统概述 嵌入式系统的发展、定义、特点、组成、分类 嵌入式系统硬件核心、软件核心 嵌入式实时操作系统
SVN服务器的搭建(Windows) 柳峰
第11章:一些著名开源软件介绍 第12章:服务安装和配置 本章教学目标: 了解当前一些应用最广泛的开源软件项目 搭建一个网站服务器
DMA-2440XP WinCE5.0安裝與使用 長高科技 顏旭偉.
Visual Studio Team System 简介
Erlang emulator 实现分析 2007/10.
产品介绍 MF825C 产品类型:上网卡 建议零售价格:599元 上市时间: 2014年 2 月20日 目标人群:商务人士、白领、IT潮人
逆向工程-汇编语言
CPU结构和功能.
第3章 認識處理元.
電子計算機概論(一) 面授教師:陳溪泉 Tel: Mobile: Add: 台中市永春東一路782-5號.
Unit 11.Operating System 11.1 What’s OS 11.2 Related Courses
程序设计工具实习 Software Program Tool
华为—HUAWEI EC176 外观设计 建议零售价格:339元 上市时间:2012年 6月 10日 目标人群:大众消费群体
Tour of PDA 電機四 b 莊惠涵.
内容摘要 ■ 课程概述 ■ 教学安排 ■ 什么是操作系统? ■ 为什么学习操作系统? ■ 如何学习操作系统? ■ 操作系统实例
C语言程序设计 主讲教师:陆幼利.
ARM Developer Suite 介 绍.
Platform Builder使用介绍 WINCE系统应用开发流程说明 ACTION RDC 杨 涛 2005.Dec.3th
产品介绍 TOPOLF-T198 产品类型:4G MIFI 建议零售价格:699元 上市时间: 2015年1月 目标人群:差旅人士
进程概念.
EC5373u-819 产品介绍 外观设计 产品类型:MIFI 建议零售价格:499元 上市时间:14 年 12 月12日
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
华为—HUAWEI EC19 9 建议零售价格:299元 上市时间:2012年4月18日 目标人群:移动办公用户;其它有移动上网需求的用户
第二章ADS1.2开发环境创建与简介.
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
华为-HUAWEI—EC156 建议零售价格:329元 上市时间:2012年 1 月 1 日 目标人群:大众消费群体 标准配置:无配件
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
上节复习(11.7) 1、定时/计数器的基本原理? 2、定时/计数器的结构组成? 3、定时/计数器的控制关系?
DSP技术与应用 电子与信息技术系.
第三章 计算机体系结构.
Presentation transcript:

内容提要 概述 Nucleus PLUS介绍 Nucleus开发环境

Nucleus—嵌入式实时多任务操作系统 产品概况 美国ATI(Accelerated Technology Inc.)公司出品 提供完全源代码,无产品版税(Royalties Free) 模块化结构,可随意裁剪 支持几乎所有的嵌入式微处理器 开发应用非常方便: 无BSP开发 可移植性强 目前在源码RTOS市场占据第一位

ATI公司简介 Accelerated Technology, Inc. 成长历程 成立于 1990年 平均增长率: 70% 加入著名的Mentor Graphics公司 成长历程 1990 – 发布Nucleus RTX for AMD29k 1993 – 第一家商用 RTOS for ARM6 1997 -第一家商用 RTOS for PPC601 1998 – 位列全球增长最快的500家企业之中 1999 - 2000 Motorola 黄金搭档 1999, 2000 《软件》, 位列500 强1999, 2000 《财富》, 位列最快500强 1999, 2000 Nucleus EDE, 嵌入式产品10佳, 电子工业年报, 1999

ATI公司简介 ATI的使命 Provide embedded software developers the widest choice of affordable products with source code. + 强而大的公司 + 全方位的产品线 + 低价格 + 源代码 + 无产品版税 + 强大的技术支持

Nucleus 产品线一览 开发工具 (Develop tools) 图形软件包 TCP/IP协议包 (Grafix) (Nucleus NET) 系统内核 (Kernel) 文件系统

Nucleus 产品线一览—— Kernels Re_entrant Dynamic Download# Memory Mgt.Unit# Kernel Object Access (Nucleus Debug+) C Library (Nucleus CLIB) Driver RAM File System 系统内核 (Plus,C++,OSEK) FMM Drivers Floppy SCSI IDE PCMCIA ATA Plug&play** Drivers 1394/ FIREWIRE** Serial PCI# USB**l

Nucleus 产品线一览—— Grafix Email Client# Basic Services Drivers GUI VGA LCD Keyboard Touch Screen Mouse 图形软件包 (Nucleus GRAFIX)

Nucleus 产品线一览—— Nucleus Net SNMPv2 TFTP Client HTTP Client# TFTP Server FTP Client FTP server Web Server SNMPv3 RMONv2 SNMPv1 Telnet RMONv1 RMONv1 Lite# (Nucleus Webservl) TCP/IP软件包 (Nucleus NET) Email POP3 Client SMTP(cli/serv) MIME# Java (Nucleus JVi**) (Nucleus span) RIP2 OSPF# Spanning Tree Net Drivers PCMICA Ethernet PPP SLIP

Nucleus开发工具 Nucleus Lauterbach IAR Paradigm Green Hills CAD-UL Diab-SDS Nucleus EPI ARM EDE DBG+ MNT UDB Tasking Microsoft Others

Nucleus支持的部分CPU Any CPU! Intel: x86, StrongARM, i960… Motorola: 680x0, 683xx, 68HCxx, PowerPC, ColdFire,M-core… Hitachi: H8/300H, H8S, SH1/2/3/4 NEC: V8xx NS: CR16A/B, CR32A Other: C167, TriCore, CPP48k, M16C/80… ARM: ARM6/7/9, Atmel, Cirrus logic, Hyundai, Samsung, TI MIPS: Atlas, IDT, Lexra, LSI, NEC, NKK, QED, Toshiba DSP: AD, TI … Any CPU!

Nucleus的应用 导航 路由 GPS 手机 PDA 控制 医疗 Nucleus 机顶盒 网络 汽车电子 通信设备 智能卡 …

Design Wins January 1998 – March 2000 Nucleus主要嵌入式市场 工业自动化 81 电讯 234 军事/航空 13 医疗 42 消费电子 92 计算机/外设 57 汽车 23 互联网设备 57 网络/数据通信 96 实验室设备 42 办公设备/自动零售业 7 其他 308 总数 1052 Design Wins January 1998 – March 2000

Nucleus PLUS提供的服务 任务间通信 任务间同步 任务控制 存储器管理 Nucleus Plus I/O设备驱动 定时器/ 系统时钟 中断控制

操作系统在产品开发中的位置 Application RTOS Nucleus BSP Board Hardware

操作系统的基本功能 任务调度 任务通信 内存管理 中断处理 其他功能 设备驱动 图形 协议 其他...

Development Basics 系统启动和存储空间分配 custom- 如中断向量表(.vectors) .code -代码段 Start - crt0.s custom- 如中断向量表(.vectors) .code -代码段 .data - 初始化数据段 .bss - 未初始化数据段 板级初始化 - int.s 操作系统初始化 - inc.c 应用程序初始化 .code .data(initialized ) .vectors .bss(uninitialized) 循环调度

RTOS的基本概念 什么是任务 什么是任务(Task)? A task is a semi-independent program segment with a dedicated purpose 任务是具有特定目的的半独立的程序段 任务是Nucleus中最常用的应用程序处理线程 任务的属性 状态、优先级、时间片、堆栈、程序指针、寄存器……

任务的属性 . 状态 Ready - 就绪,等待执行. Running - 正在执行. Suspended - 挂起,等待特定的事件触发. Finished - 已完成处理. 任务的属性、信息都存放在任务控制块中(TCB) Priority 优先级 当前的状态 堆栈指针 ... Stack * State .

任务调度执行 传统单任务的特点: 传统单任务执行 一个任务完成系统全部操作 A single 单个执行线索(execute thread) 单个堆栈空间 A single task /* Main control of program */ main() { ….. do_something(); } /* A function to do something */ void do_something() stack

任务调度执行 多任务模式 Task 1 Task 2 Task 3 多个任务竞争、并发执行 多个执行线索 多个相互独立的堆栈空间 /* Main control of program */ main() { do_something(); } /* A function to do something */ void do_something() Task 2 Task 1 Stack 1 Stack 2 Stack 3 多个任务竞争、并发执行 多个执行线索 多个相互独立的堆栈空间

任务调度执行 调度控制程序 优先级(priority) - 反应任务的重要性 时间片 (time_slice) - 任务一次所占用CPU 的最长时间. 抢占性(preemptive) - 除了被中断抢占外,任务可以无限期的占用CPU。

任务调度执行 调度控制程序 . 基于优先级排列的已创建任务链表 最高优先级 (0) 最低优先级 (255) Task List (255)

任务调度执行 上下文切换 CPU 任务之间切换需要保存上下文 机器状态 -CPU当前状态(由CPU内部寄存器的值表征) 通用寄存器 程序计数器 状态寄存器 其他 Register 6 Register 5 CPU Register 4 Register 1 Register 1 Register 1 Register 4 Register 4 Register 4 Register 3 Register 2 Register 2 Register 2 Register 5 Register 5 Register 5 Register 2 Register 3 Register 3 Register 3 Register 6 Register 6 Register 6 Register 1 stack

任务调度执行 任务的挂起 无条件挂起 中断产生时挂起. 保存所有的内部寄存器. 条件挂起 由内核调用产生挂起. 只保存相关寄存器

任务间通信 通信方式 任务间通信 - 在两个或多个任务间传递数据 Mailboxes -邮箱 Queues -队列 Pipes -管道

任务间通信 Mailboxes 定长(4个长字) 系统开销小 在两个或多个任务间一次传递一条消息 1 Message Task X Task Y

任务间通信 Queues/Pipes 容纳多条消息 定长或变长 用来传送多条消息 Queue消息长度以长字为单位,Pipe以字节为单位。 Task X Task Y

任务间同步 同步方式 任务间同步 - 任务间同步控制 Semaphores-信号量(旗语) Events -事件 Signals -信号(软中断)

任务间同步 二元信号量(0,1) 控制对共享资源的访问 Program Execution 获取信号量 共享 资源 释放信号量

任务间同步 Events 当一个任务试图得到事件标志位未置位的事件时,任务将挂起;置位后,任务恢复 1 1 1 Task 1 事件处理 1 1 1 事件处理 1 1 1 Task 1 当一个任务试图得到事件标志位未置位的事件时,任务将挂起;置位后,任务恢复

任务间同步 Signals EP 由任务触发. 当Task1、Task2发出一个信号,Task P中信号处理程序将立即执行. 信号处理程序相当于一个超级任务. Task 2 Task P Task 1 EP signal_handler { … }

存储器管理 分区与动态 分区- 提供定长的内存分配和释放 动态 - 提供变长的内存分配和释放 T2 200bytes T2 T3 T1 T1 分区- 提供定长的内存分配和释放 分区与动态 100bytes 100bytes T2 100bytes 100bytes 100bytes 200bytes T2 50bytes T3 50bytes 100bytes 100bytes T1 T1 100bytes T3 200bytes 100bytes 动态 - 提供变长的内存分配和释放

中断处理 中断的基本概念 ISRX 中断是来自设备的一个服务请求(异步). 中断应该在尽可能短的时间内响应. 中断处理须有一些必要的上下文保护 Device 1 IX 一个外部中断打断 一个任务,使自己得到响应 interrupt_service_routine() { handle_the_interrupt() } 中断服务程序开始启动 ISRX

Nucleus软件方案 原型工具(Prototyping Tools) 嵌入式产品(Embedded Products) 开发工具(Development Tools) Nucleus MNT Nucleus EDE Nucleus UDB

Nucleus MNT 完全的原型环境 利用Microsoft Developer Studio 在 Windows 95 / NT下 适用于所有产品的原型环境

Nucleus MNT PLUS for MNT NET GRAFIX for Target Application

Nucleus MNT 目的 Nucleus 库 Application MNT Target 开发者可以使用Windows开发环境设计嵌入式应用程序 使用两个不同的Nucleus库 其一是针对Windows的(MNT) 其二是针对Target的 但应用程序是相同的 MNT Target Nucleus 库 Application

Nucleus EDE 完全的开发环境 Nucleus嵌入式开发环境 集成已有的工具. 提高效率.

Nucleus EDE 特点 与现有工具一起工作. 将工程由原型转换成嵌入式应用. 生成目标环境可执行代码. 主要功能: 工程管理 浏览 现有工具的管理和调用 Motorola ARM MIPS SH X86 Processor Support Development Tool Diab/SDS ARM/UDB GNU/UDB GNU/Hitachi UDB CAD-UL

Nucleus UDB 完全的调试环境 同一调试环境用于不同的目标平台. 基于Kernel的调试器 内核目标资源显示 任务相关断点 多任务调试 混合C/汇编窗口 自动追踪 …

Nucleus UDB MNT, EDE和UDB 与 Nucleus MNT相同的Windows风格 原型用 Nucleus MNT 生成目标代码用 Nucleus EDE 调试目标代码用 Nucleus UDB

第三方工具 支持ARM的Nucleus编译工具 ARM公司推出的编译调试环境 ADS1.2(IDE) 支持C、C++、汇编语言 包括调试器AXD和ARMulator 号称在以下方面比其他编译器好30%以上: 代码尺寸 性能 可靠性

第三方工具 支持ARM的Nucleus仿真调试工具 Trace32系列:最优秀的仿真调试工具 强大、灵活的调试手段 支持RTOS调试 丰富的断点类型 强大的运行控制 统一的命令集,支持批处理 高效灵活的脚本语言Practice 支持RTOS调试 支持FLASH在线编程 支持嵌入式软件测试 支持多CPU调试和多内核调试 个性化界面,用户可自行设计菜单、按键等

Trace32-ICD TRACE32支持的RTOS超过20种,主要有 Trace32对RTOS主要调试手段: Nucleus OSE Rubus CMX RTXC pSOS VxWORKS... Trace32对RTOS主要调试手段: RTOS专用菜单 Kernel资源显示 Task状态显示、统计评估 任务级调试... 实现方法(以Nucleus为例): Task.Config Nuc ;配置多任务调试器 Menu.Reprogram Nuc ;启动Nucleus菜单 相关命令: Task.TaskStat Task.MbxStat Task.QueueStat Task.EventStat ...

最佳方案 基于ARM的嵌入式开发最佳方案 RTOS:Nucleus 编译器:ADS1.2 仿真器/调试器:Trace32-ICD

谢谢大家