150 likes | 320 Views
嵌入式操作系统与驱动程序设计. 徐远超 xuyuanchao@263.net http://xuyuanchao.ie.cnu.edu.cn. 教材和参考书籍. 自编讲义 《 嵌入式 Linux 操作系统基础教程 》20100228 版,网上下载自行打印 http://xuyuanchao.ie.cnu.edu.cn 看看 http://www.linux8.net/ http://www.xxlinux.com/linux/index.html http://linux.chinaunix.net/ http://www.linuxdiyf.com/
E N D
嵌入式操作系统与驱动程序设计 徐远超 xuyuanchao@263.net http://xuyuanchao.ie.cnu.edu.cn
教材和参考书籍 • 自编讲义 《嵌入式Linux操作系统基础教程》20100228版,网上下载自行打印 • http://xuyuanchao.ie.cnu.edu.cn看看 • http://www.linux8.net/ • http://www.xxlinux.com/linux/index.html • http://linux.chinaunix.net/ • http://www.linuxdiyf.com/ • 推荐阅读好的博客,带着目的去查找资料
考试与成绩组成 • 出勤与平时实验表现 • 平时homework及完成情况 • Project及答辩
教学内容及进度 • 认识并熟练使用Linux操作系统 • 了解并搭建嵌入式Linux • 初识BootLoader • 了解并编译Linux内核 • 编写和调试嵌入式Linux程序 • 编写Linux设备驱动程序
补充内容 • 多核并行程序设计 • 软件性能优化 • Linux内核分析等
教学方式 • 实践为主,讲解为辅 • 强调自学 • 追求原创性研究 • 开展讨论
操作系统的作用 • 从8位/16位单片机发展到以ARM核为代表的32位嵌入式处理器,嵌入式操作系统将替代传统的由手工编制的监控程序或调度程序,成为重要的基础组件。 • 更重要的是嵌入式操作系统对应用程序可以起到屏蔽的作用,使应用程序员面向操作系统级开发应用软件,并易于在不同的ARM核的嵌入式处理器上移植。
常见的嵌入式操作系统 • Linux • μCLinux • μC/OS-II • WinCE • VxWorks • Palm OS • Symbian • Windows Mobile • ……
嵌入式Linux操作系统概述 • Linux已成为嵌入式系统主流操作系统。 • 嵌入式Linux是按照嵌入式操作系统的要求而设计的一种小型操作系统。 • 由一个内核及一些根据需要进行定制的系统模块组成。其kernel很小,一般只有几百kB左右。即使加上其它必须的模块和应用程序,所需的存储空间也很小。 • 它有多任务、多进程的系统特征,还具有一定的实时性 。
嵌入式Linux操作系统的优势 • (1)、支持多种体系结构; 目前Linux能够支持x86, ARM, IPS,APARC等多种CPU的体系机构,已被移植到数十种硬件平台上。 • (2)、多任务,内核稳定,可定制,源代码开放; • (3)、强大的网络支持功能; 支持TCP/IP协议,及其上的高层协议,如ftp, Telnet, http等。同时支持Socket网络编程。 • (4)支持多文件系统; linux支持FAT32, EXT2, EXT3等多种文件系统,支持虚拟文件系统,同时还可以连接其它的文件系统,如ROMFS,JFFS等文件系统。
嵌入式Linux操作系统的优势 • (5)驱动丰富,支持大量的外设; linux支持基本所有的PC外设,具有丰富的外设驱动程序。 • (6)Linux具备一整套工具链。 容易自行建立嵌入式系统的开发环境、交叉运行环境,并且可以跨越嵌入式系统开发中仿真工具的障碍。一般开发嵌入式操作系统的程序调试和跟踪都是使用仿真器来实现的,而使用Linux系统做原型的时候,可以绕过这个障碍,直接使用内核调试器来做操作系统的内核调试和查错。
嵌入式Linux开发流程 • 准备烧写工具 • 准备交叉编译环境 • 移植/编写Bootloader • 配置/移植/编译Linux Kernel • 制作根文件系统Root FS • 移植/编写设备驱动Device Driver • 调试/开发应用程序Applications • 固化/自启动装载执行Autorun
嵌入式Linux应用程序开发流程 • 编译源文件 编译 排错 调试 交叉编译 排错 调试
Linux使用与编程基础 • 目的:编写一个简单的hello world程序并编译运行(演示)。 • 1)ifconfig 显示IP 地址 • 2)putty ,winscp连到linux • 3)登陆;创建目录work;进入该目录;下载文件;挪到自己的目录;编译; • 4)自己要修改,怎么改?Vi • 5) ……
homework1 • 见文档