嵌入式Linux开发流程 成都研究所操作系统团队.

Slides:



Advertisements
Similar presentations
定 格 入 格 破 格 —— 新诗仿写复习训练 仿照下列句子,再把 “ 人生 ” 比喻成 “ 大海 ”“ 天空 ” , 造两个句子。 如果说人生是一首优美的乐曲,那么痛苦则 是其中一个不可或缺的音符。 参考答案: 1 、如果说人生是一望无际的大海,那么挫折则 是其中一个骤然翻起的浪花。 2 、如果说人生是一片湛蓝的天空,那么失意则.
Advertisements

高中新课程思想政治(必 修 1 、 2 )的教学体会 北京师大二附中 李文燕 2008 年西城新课程教师培训的讲稿.
我国国有银行 资本构成及资本充足率变化 小组成员:金融 尹佳裕 王淼 刘钰 金融 吴昱.
《饲料分析与质量检测技术》 说课 主讲教师:管建慧. 课程名称: 《饲料分析与饲料质量检测技术 》 课程编码:
2009/12/211 商務科技管理系 實 務 專 題 報 告 辦桌非難事 學生: 施雅雯 ( ) 張敬芝 ( ) 葉明臻 ( ) 黃怡琅 ( )
职业指导服务系统 欢迎了解职业指导服务系统!
计算机基础 与应用案例教程 第一篇 基础理论篇 第4章 计算机软件系统.
学前教育信息化发展及应用 华中师范大学儿童数字化学习研究中心 武汉华大天童教育科技有限公司.
嵌入式系统简介 Introduction to Embedded System
Linux 安裝入門與基本管理 課程目標: 學習Linux平台下的安裝設定 與 建置一個基本的Linux伺服器
PC DIY達人培訓班 主辦單位:東海高中資訊科 報告人:李宏傑.
成语乐园 成语乐园 执教老师:李道梅.
嵌入式系统与结构 —基于ARM的体系结构和应用开发
第6章 计算机网络基础 信息技术基础.
詹天佑.
北师大版义务教育课程标准实验教科书 七年级上册讲义 第17课 先进的科学技术.
农业银行网上签约流程 宁夏金溢投资 内部资料 1.
廉政會報專題報告 農地重劃工程 施工常見缺失 報告:吳東霖 製作:張昌鈴 日期:103年12月23日.
專案製作經驗談.
立體四子棋 研究成員:謝旻諺、 鄭家鈞 指導老師:林屏森老師.
提高自身素质做好 新时期班主任工作 北京市广渠门中学 高金英.
“三步式”网络学习法 《探究与发现》数学网络学习平台介绍
普通话模拟测试 与学习平台 使用指南.
初中思想品德 规范的教学设计与案例分析.
香港普通話研習社科技創意小學 周順強老師.
淡江大學 航空太空工程學系 工程科技教育 國際認證 期中審查報告簡報
计算机系统的组成.
三創產業學程 學群主持人:袁國榮召集人.
網路小說劇情建構與伏線營造 Windows98.
基于Android的开源平板电脑 (FSPAD723)系统构成分析
基于ARM和linux的开发 华中科技大学 武汉创维特 2017/3/20.
嵌入式操作系统 陈天洲、陈文智.
金門縣重大空難應變機制-消防局 壹、消防搶救、滅火、緊急救護 一、派遣作為:
UClinux在3000平台上的移植.
Linux操作系统分析 课程安排 孟宁 电话:
关于整合检验检测认证机构实施意见的通知(国办发〔2014〕8号)
计算机与信息技术应用基础 徐东雨 计算机中心
《体育与健康》说课稿 课题:新兴体育舞蹈 —踢踏舞教学 北师大泉州附中 陈玉慈.
推进德育创新 做好新时期班主任工作 北京市广渠门中学 高金英.
Building Embedded Linux 2
物流信息技术 Logistics Information Technology
ARM裸机第一部分-ARM那些你得知道的事
第4章 作業系統的介紹及操作.
Bootloader技术分析.
DM81X 视频采集处理 ——软硬件环境介绍 广州创龙电子科技有限公司
嵌入式系統架構 長高科技 顏旭偉.
兒童電腦入門 第一課 八月八日.
嵌入式系统设计与开发 第1章 概述 第2章 ARM及其编程模型 第3章 ARM指令集 第4章 嵌入式程序设计
讲议: PXE 介绍及实现 Jarvis
第14章 Bootloader基本概念與燒錄.
第三章 系统的启动和初始化 (include lab1)
和諧社區資訊服務推廣計畫 -軟體雲端社區 資訊研習營
第1章 嵌入式系统概述 嵌入式系统的发展、定义、特点、组成、分类 嵌入式系统硬件核心、软件核心 嵌入式实时操作系统
陈香兰 助教:陈博、李春华 Spring 2009 嵌入式操作系统 陈香兰 助教:陈博、李春华 Spring 2009.
在專用的嵌入式板子運行 GNU/Linux 系統已經變得越來越流行。一個嵌入式 Linux 系統從軟體的角度看通常可以分為四個層次:
第1章、系統軟體 作者:陳鍾誠 旗標出版社.
嵌入式系统的Boot Loader技术 陈文智 浙江大学计算机学院 2009年5月.
南瑞学堂 学员简明操作指南 上海时代光华教育发展有限公司 2013年.
(第2版).
第二章 Linux简介 Linux概述 Linux系统的特点 Linux中使用的应用程序 Linux的组成 Linux版本介绍
凌宁 系统工程师 亚洲区嵌入式系统事业群 微软(中国)有限公司
(第2版).
靜宜大學專用 PowerPoint 檔案 數位教材
ARM Developer Suite 介 绍.
架构师成长感悟 吴隆烽
真信心的果效 雅各書2:
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
课程介绍 1、嵌入式系统开发先序课程; 2、共32+8课时: 3、本期采用混合式教学成绩计算方式:
指數、對數函數 數101乙 周文翔 朱哲明 張良聿.
李商隐诗两首 锦 瑟 马 嵬 夕阳无限好,只是尽黄昏。.
Presentation transcript:

嵌入式Linux开发流程 成都研究所操作系统团队

目录 嵌入式Linux开发概述 嵌入式Linux软件开发的五个阶段 嵌入式Linux开发流程 嵌入式Linux开发工具简介

嵌入式Linux开发环境 交叉开发环境(主机—目标机的工作方式)

嵌入式Linux开发环境 Linux下开发 Windows下开发 Cygwin Vmware(虚拟机)+ Linux 其他集成开发环境

嵌入式Linux软件组成 嵌入式Linux系统软件由以下部分组成: 嵌入式Linux启动装载器:Boot Loader 最小支持文件系统 应用程序 bootloader embedded linux kernel device driver root filesystem application

嵌入式Linux组成—BootLoader 系统上电后执行,初始化硬件。 提供基本的交互操作界面,如内存查看与修改,设备查询等功能。 提供下载(读取)Linux内核的功能。 提供从装载器到Linux内核传送参数的功能。 装载Linux操作系统到内存中,并将控制转移到Linux内核起始执行处。完成Linux内核的启动。

嵌入式Linux组成—BootLoader驱动 启动装载器驱动程序驱动基本设备,提供获取内核能力。 启动装载器驱动程序只在装载器环境中使用,与Linux驱动不同。 一般采用相对较为简单的方式,如一般可以不必采用中断方式,而是采用查询方式。 驱动串行接口,进行控制台(console)操作。 驱动网口,提供从网络下载内核的能力。 驱动FLASH,提供从FLASH读取内核能力。

嵌入式Linux组成—Linux内核 嵌入式Linux内核(Kernel)是整个嵌入式操作系统的核心,它直接管理硬件,并通过系统调用为上层应用提供服务。 为了适应嵌入式环境,需要对内核进行裁减与配置。 提供支持特定硬件平台的内核启动代码 去除多余功能,减小体积 增加实时功能 添加特殊的系统调用

嵌入式Linux组成—Linux设备驱动 Linux下的设备划分为3类:字符设备char(如键盘、串口等)、块设备block(如磁盘等)、网络设备一般列为单独的一类设备 由于Linux运行时候划分内核空间与用户空间,而驱动程序一般运行在内核空间中。对于运行在用户空间的应用程序而言,从相应硬件中获取数据需要经过一个内核空间到用户空间拷贝的过程。

嵌入式Linux组成—最小文件系统 嵌入式Linux必须要有文件系统支持才能运行 嵌入式系统中一般采用MTD的物理设备作为文件系统驻留空间:如RAM、Flash等。 文件系统中必须包含的内容 系统init程序; Shell; 应用程序; 应用程序函数库。 必须采取措施,减小文件系统的体积,以适应嵌入式应用的需求。具体措施在“小型化”中介绍。

嵌入式Linux组成—应用程序 应用程序 应用程序完成整个嵌入式系统的对外功能需求与功能接口。 应用程序通过系统调用进入内核,访问内核提供的服务。存取硬件。 可以有多个应用程序同时运行。 应用程序崩溃一般不会导致系统崩溃。 Linux支持Posix线程:pthread。

目录 嵌入式Linux开发概述 嵌入式Linux软件开发的五个阶段 嵌入式Linux开发流程 嵌入式Linux开发工具简介

嵌入式Linux开发的五个阶段 根据整个嵌入式Linux应用开发过程的时间先后可以分为以下5个开发阶段 Boot程序(含Boot驱动)开发 Linux内核开发 Linux驱动程序开发 应用程序开发  Linux目标系统集成 每个开发阶段相应对一个完整嵌入式Linux系统的一些组成部分的开发工作

Boot及驱动程序开发 开发目标 工作重点 工作产品 启动嵌入式目标系统,使系统具有加载并启动Linux内核的能力。 CPU初始化;RAM初始化;串口、网卡、以及FLASH驱动;基本的TCP/IP协议栈支持。 工作产品 目标系统的启动ROM。可以启动目标系统 的Boot Loader。

Linux内核开发 开发目标 工作重点 工作产品 获得一个满足目标系统功能与性能需求,可以启动的Linux内核。 启动最小系统(内核配置和生成)开发、 外围设备驱动的开发。 工作产品 可以启动系统的Linux内核(bzImage、 pImage等)

Linux设备驱动程序开发 开发目标 工作重点 工作产品 驱动目标系统上的相关设备,为上层应用提供存取硬件的能力。 关注设备身的特性,采用合适的驱动方式。 工作产品 可以是内核的一部分,也可以是模块化的驱动程序(内核可装载模块LKM)的目标文件(*.o)。

Linux应用程序开发 开发目标 工作重点 工作产品 实现单板需要实现的产品功能与接口。提供相应的单板服务与响应。 关注应用本身。如果在封装过的操作系统平台上开发,需要关注所封装的接口。 工作产品 可以执行的应用程序,一般为ELF格式,采用动态或者静态连接,可以在目标系统上运行。

Linux目标系统集成 开发目标 工作重点 工作产品 提供产品化的嵌入式Linux系统。 关注系统占用的存储空间,文件系统选择。系统启动脚本。 工作产品 无需开发主机配合就可以独立运行的产品化的嵌入式Linux系统。

目录 嵌入式Linux开发概述 嵌入式Linux软件开发的五个阶段 嵌入式Linux开发流程 嵌入式Linux开发工具简介

Linux开发流程(1) 操作系统的裁剪 对应于PC机上的软件开发,这应该属于系统设计,针对嵌入式系统的硬件环境,必须对操作系统进行裁剪设计,一方面卸载和删除无用的模块,修改和简化需要的模块;另一方面增加板极支持包的支持,相对嵌入式硬件系统,完善相对应的操作系统,使得系统最为紧凑、小巧。

Linux开发流程(2) 嵌入式操作系统内核的配置和编译 当系统设计确定后,就可以对具体对操作系统的内核进行合理配置和编译,形成新的应用于嵌入式硬件系统的新的内核,最后一般形成内核影象文件,下载到系统的FLASH中,完成内核的“量身定做”。

Linux开发流程(3) 系统文件系统的建立 对于操作系统,内核裁剪完成后,接着对文件系统进行裁剪,由于每一种操作系统都支持很多文件系统,对于嵌入式操作系统的文件系统裁剪,和内核一样,针对板子上的并口FLASH、串口FLASH,各种存储卡、U盘等等,构造和裁剪出相应的文件系统,完成文件系统的建立。

Linux开发流程(4) 用户程序的编写和简单的仿真调试 建立交叉编译的开发环境,开发用户的应用程序,并且尽可能采用一些开发工具,如Multi-ice等,把一些模块下载到目标板上,进行测试。

Linux开发流程(5) 整体系统的目标板仿真调试 应用程序开发完后,和文件系统一起,形成文件系统的影象文件,然后通过仿真工具(仿真机、调试串口等)和host-taget开发环境,对系统进行仿真和调试

Linux开发流程(6) 系统下载和脱机运行 当仿真完成,确定系统功能开发达到目标后,把最终形成的影象文件,内核影象文件和文件系统影象通过开发系统的下载工具进行下载,然后,去掉,调试系统、加电复位运行。

目录 嵌入式Linux开发概述 嵌入式Linux软件开发的五个阶段 嵌入式Linux开发流程 嵌入式Linux开发工具简介

辅助工具 Make Cygwin 根据目标与依赖条件的时间关系,制动执行相关指令。 Cygwin提供一个Linux工具执行的环境(包括库文件等),这样,GCC等开发工具就可以在Cygwin环境下运行。 基于Cygwin,可以让一些Linux下的工具转移到Windows平台下可以运行。 Cygwin也是很多嵌入式Linux开发商所提供的运行于Windows下的应用程序开发调试环境的运行方式。

商用开发套件 Windriver Montavisa 一种基于vxowrks操作系统的集成开发环境Tornado;一种基于linux操作系统的集成开发环境workbench. Montavisa 将开源社区最新实时性技术融入其中的商业嵌入式Linux操作系统。专业版(Pro)4.0为用户和开发人员提供最新和最先进的开源技术,使系统可以在最低的成本上获取最高的性能。

谢 谢