嵌入式操作系统课程实验指导书
嵌入式操作系统实验指导书2014)教材

嵌入式操作系统实验指导书苗暹黄连丽目录实验一 Linux命令使用实验二 vi编辑器的使用实验三 shell编程实验(一)实验四 shell编程实验(二)实验五 Linux开发工具的使用实验六 Linux编程实验(一)实验七 Linux编程实验(二)实验八 Linux的系统及网络管理实验实验一 Linux命令使用班级:姓名:学号:上机时间:任课教师:实验教师:实验成绩:一、实验目的1.掌握Linux的一般命令格式。
2.掌握有关文件和目录操作的常用命令。
3.掌握有关进程操作的常用命令。
4.熟练使用man命令。
二、实验注意事项实验环境与系统是共用设施,请不要在系统内做对系统或对其他用户不安全的事情。
要求每个同学登录后系统后,要在主目录(/home/student)下创建一个属于自己的子目录(以自己(拼音)名字或学号)。
以后所有工作都要在自己的目录内进行。
建议以后的实验都在同台计算机上做,这样可以保持连续性。
三、实验内容及步骤:1.登录进入系统。
开机,选择进入,再选择登陆窗口,输入用户名:,输入密码:,进入Ubuntu图形桌面环境。
2.使用简单命令:date,cal,who,echo,clear等,了解Linux命令格式。
要启动一个终端,可以选择在终端提示符下输入:date↲显示:。
在终端提示符下输入:who ↲显示:。
在终端提示符下输入:who am I ↲显示:。
在终端下显示Hello! 命令:。
在终端提示符下输入:clear ↲显示:。
在终端提示符下输入:cal ↲显示:。
3.浏览文件系统:(1)运行pwd 命令,确定当前工作目录,记录之:。
(2)运行ls命令,查看当前目录下有哪些文件和子目录,简略记录。
(3)运行ls -l命令,理解文件各字段的含义,找一个文件标注。
(4)运行ls -ai命令,理解各字段的含义。
(5)使用cd /命令,将当前目录改变为根目录(/)。
运行ls -l命令,结合书中给出的Linux树状目录结构,了解各目录的作用。
pdf 嵌入式系统实验与课程设计指导教程(韩磊)

《嵌入式系统及应用》实验与课程设计指导书韩磊曹欲晓编南京工程学院前言目前,嵌入式系统已广泛地渗透到科学研究、工程建设、军事、各类产业,甚至商业、文化、艺术及人们日常生活的方方面面。
随着国内外各种嵌入式产品的进一步开发和推广,嵌入式技术的重要性日益凸显,这方面人才的需求量与日俱增,高等学校的培养任务迫在眉睫。
2004年,ACM和IEEE联合制定了新版的计算机学科的课程体系,其中一个主要的变化就是把嵌入式系统列为本科生的专业基础课,并且给出了基本的课程体系。
同时,美国卡内基梅隆大学、伯克利大学等国外高校也不断地在完善他们的嵌入式教育体系,欧盟也推出了面向欧盟高校和企业的嵌入式研究计划。
国内高校对嵌入式系统的教育教学也非常关注,嵌入式系统课程体系正在形成和完善。
《嵌入式系统及应用》是一门实践性很强的课程。
只有通过实验,才能使学生更深入地理解和掌握嵌入式系统的理论和技术。
本书根据课程的教学要求和教学实践经验,按照学生掌握知识的规律,循序渐进,由浅入深,阐述了配套实验系统的硬件平台以及软件开发平台的构建方法,编写了有助于学生理解与巩固理论知识的基本实验,提高分析问题和解决问题能力的设计性实验,以及培养创新思维和自学能力的综合性实验。
本书以武汉创维特公司的JXARM9-2410实验教学系统为嵌入式实验平台,以ADT IDE为软件开发环境。
本书共分五章:第1章介绍JXARM9-2410实验箱的硬件模块以及资源分配;第2章阐述了嵌入式系统的交叉开发模式、ADT IDE开发环境以及超级终端的使用;第3章基本实验部分让学生熟悉开发环境的使用、汇编语言编程以及操作系统的相关知识;第4章介绍驱动程序开发以及图形用户界面的设计;第5章介绍课程设计的题目及要求。
嵌入式系统技术综合全面,加上编者水平有限,编写时间仓促,书中错误和不妥之处在所难免,敬请读者批评指正。
编者目录第1章实验系统介绍 (1)1.1 概述 (1)1.2 硬件组成 (1)1.2.1 硬件模块 (1)1.2.2 硬件资源分配 (3)第2章软件开发环境搭建 (5)2.1 开发模式与工具 (5)2.1.1 开发模式 (5)2.1.2 开发工具介绍 (6)2.2 ADT IDE集成开发环境的安装 (9)2.2.1 系统配置要求 (9)2.2.2 ADT IDE安装 (9)2.3 超级终端的使用 (13)第3章基本实验 (15)3.1 ARM开发环境实验 (15)3.2 ARM汇编语言编程实验 (23)3.3 uC/OS-II移植实验 (26)3.4 uC/OS-II任务间通讯和同步实验 (32)3.5 uC/OS-II内核裁剪实验 (35)第4章设计性实验 (38)4.1 键盘驱动程序设计实验 (38)4.2 定时器设计实验 (42)4.3 GUI移植实验 (44)4.4 图形界面编程实验 (54)第5章课程设计 (59)5.1 课程设计任务安排 (59)5.1.1 目的和意义 (59)5.1.2 任务及要求 (59)5.1.3 进程安排 (59)5.1.4课程设计报告 (59)5.2 课题及设计思路 (60)第1章实验系统介绍嵌入式系统课程以武汉创维公司研发的JXARM-2410实验系统为实验平台,该实验平台功能齐全,调试方便,易于嵌入式系统入门与提高。
专业实验嵌入式系统实验指导书2010版

实验一嵌入式系统ARM驱动编程一、实验目的1.熟悉ARM环境,学会ARM 仿真器的使用。
使用ADS 编译、下载、调试并跟踪一段已有的程序,了解嵌入式开发的基本思想和过程。
2.掌握非嵌入式操作系统模式下的ARM编程。
3.了解LCD 基本概念与原理,熟悉用ARM 内置的LCD 控制器驱动LCD,掌握延时函数的使用方法,可以设计动态ARM程序。
二、实验内容(2学时)1.本次实验使用ADS集成开发环境。
学习ARM 仿真器的使用和开发环境的设置。
下载已经编译好的文件到嵌入式控制器中运行。
学会在程序中设置断点,观察系统内存和变量,为调试应用程序打下基础。
2.学习LCD 显示器的基本原理,理解其驱动控制方法。
掌握两种LCD 驱动方式的基本原理和方法。
并用编程实现控制LCD显示的ARM程序。
三、预备知识C 语言的基础知识、程序调试的基础知识和方法。
四、实验设备及工具硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机。
软件:PC 机操作系统Win2000、ARM ADS1.2 集成开发环境、仿真器驱动程序、超级终端通讯程序五、实验原理1.ARM程序的在线仿真与调试ADS1.2可以进行ARM程序的编写和调试。
打开ADS1.2的编辑界面后,可以以工程的方式编写和组织源代码。
执行菜单Project | Make 可对工程进行编译连接。
在出现的错误/警告窗口中选择某错误/警告信息,ADS 会自动打开相应源文件并用箭头指向出错的文本行。
如果某个源文件被修改,重新编译时ADS 会自动同步各文件的日期信息。
ARM程序调试步骤如下:(1)在ADS 中执行菜单Project | Debug 启动ADS1.2 的调试工具AXD。
(2)在AXD 中执行菜单Options | Configure Target 对AXD 进行设置。
如图1B-13 所示。
选择ADP 即远程调试,点Configure 按钮进一步设置具体参数,如图1B-14 所示。
嵌入式系统概论实验指导书资料

嵌入式系统概论实验指导书计算机系2013年12月目录目录 (2)实验一Linux的安装 (3)实验二VMware tools的安装 (4)实验三Linux基本命令的使用(一) (5)实验四Linux基本命令的使用(二) (6)实验五Linux基本命令的使用(三) (7)实验六文本编辑器vi的使用 (8)实验七使用GCC编译C语言程序 (9)实验八使用GDB调试程序 (10)实验九makefile的编写 (11)实验十嵌入式Linux开发环境建立及内核编译 (13)实验十一嵌入式Linux根文件系统制作 (17)实验十二嵌入式Linux内核和根文件系统的下载和烧写 (18)实验十三嵌入式Linux驱动程序添加 (23)实验十四嵌入式Linux下的音频实验 (25)实验十五嵌入式Linux下的视频实验 (26)实验十六RVDS 2.2集成开发环境练习 (29)实验十七:GPIO输出控制实验 (29)实验一Linux的安装【实验目的】一、掌握虚拟机软件VMware的安装方法二、掌握Fedora Core 4 Linux发行版的安装【实验内容】一、准备如下安装文件:1.VMware.Workstation.5.5中文版(虚拟机)带注册机2.FC4-i386-disc1.iso3.FC4-i386-disc2.iso4.FC4-i386-disc3.iso5.FC4-i386-disc4.iso6.FC4-i386-rescuecd.iso二、VMware软件的安装1.双击安装文件,按照提示进行下一步2.需要输入注册码时,运行注册机目录下的keygen..exe,点击generate,serial框中的即为注册码。
3.安装完成后,运行汉化补丁目录下的HF_Vmware5.5进行汉化三、Fedora Core 4 Linux发行版的安装1.在VMware软件中,新建虚拟机->下一步,选择典型->下一步,选择linux->下一步,选择linux安装的位置->下一步,使用桥接网络->下一步,完成2.编辑虚拟机->设置,选择cdrom1,使用iso映像,选中FC4-i386-disc1.iso,确定3.启动此虚拟机,进入linux安装界面4.选择skip,跳过光盘检测5.按next,选择简体中文,按next,下一步6.安装类型选择定制,下一步7.选择手工分区,下一步,弹出警告框,选择是8.新建,选择文件类型为swap,大小为1000MB,确定。
嵌入式实验指导书

嵌入式实验指导书2016.5嵌入式实验是学习嵌入式系统原理及应用课程的一个重要环节。
通过实验加深嵌入式系统原理的认识,训练学生嵌入式系统应用及开发的基本技能,培养学生合理选择嵌入式处理器和接口芯片、正确设计嵌入式系统的接口电路、学会程序调试的基本方法以及解决实验中所遇到问题的能力,同时,培养学生理论联系实际、严谨认真的科学态度和良好的工作作风。
实验一搭建嵌入式开发环境实验 (4)实验二编译下载uboot kernel yaffs2 (18)实验三GPIO模块驱动程序及测试 (23)实验四编写串口通信程序 (27)实验一搭建嵌入式开发环境实验一、实验目的1、掌握嵌入式开发环境的搭建2、掌握嵌入式开发常用工具的使用3、掌握嵌入式交叉编译环境的搭建二、实验内容及原理1.vmware虚拟机的安装及配置2.ubuntu操作系统的安装及配置3.windows环境中常用工具的安装及使用三、实验步骤(一)、vmware虚拟机的安装及配置1)打开VMware-8.0.2-591240.exe安装程序。
2)之后操作按图进行。
3)安装完成后打开刚安装的VMware程序。
4)虚拟机使用固定IP 地址的网络方式默认情况下,虚拟机安装完成后与宿主机共享一个IP 地址,没有属于自己的IP,这里首先需要设置虚拟机的网络联系方式为桥接方式。
单击VM 菜单下面的Settings 项,弹出虚拟机设置对话框,如下图:选择Bridged 连接,确定即可。
(二)、ubuntu的安装及配置1)安装Ubuntu首先准备一张Ubuntu12.04 的安装光盘。
将光盘插入光驱,在PC的bios 中把PC启动方式设置为光驱启动,启动PC。
启动PC 后,安装盘会提示选择安装语言种类。
使用PC键盘的方向键选择在安装过程中显示的语言,在这里我们选择English>>点击“Install Ubuntu”按钮。
选择“Erase disk and install Ubuntu”>>点击“Continue”按钮硬盘空间以及挂载点的分配。
嵌入式系统及应用实验指导书

嵌入式系统及应用实验指导书李剑编中国矿业大学信息与电气工程学院2012年12月实验要求实验前应充分预习阅读实验指导书,查看相关技术文档,复习教材中有关内容。
明确实验目的、实验原理及内容,以减少实验中的盲目性,提高主动性。
自行拟定实验步骤,掌握注意事项。
实验报告在实验完成后一周内交到实验室,采用统一报告纸,手写完成,并装订成册。
目录嵌入式系统与应用实验硬软件介绍实验一 ADI IDE嵌入式集成开发环境基础实验实验二嵌入式Linux应用程序开发基础实验嵌入式系统与应用实验硬软件介绍一、JXARM9-2410实验箱硬件简介:图1 JXARM9-2410实验箱结构示意图JXARM9-2410教学实验系统的硬件部分包括:基本模块、调试模块、通讯模块、人机交互模块、A/D模块、步进电机驱动模块、IDE/CF接口模块、GPRS模块、GPS模块。
1. 基本模块:SDRAM存储器:主板包含64MB SDRAM。
由一片16位数据宽度的SDRAM存储器组成,地址从0x30000000~0x33fffffff。
FLASH 存储器:主板包含32MB NOR FLASH存储器和8MB NAND FLASH,NOR FLASH内部存放启动代码Bootloader、Linux 内核映象、IIS测试声音文件等。
其数据宽度为32位,地址从:0x00000000~0x01ffffff;NAND FLASH中包含一个cramfs文件系统,在Linux中使用。
串行通讯口:主板包含3 个UART接口:UART0和UART1 用作RS232 串行接口,UART2 用作RS485 接口。
UART0在Bootloader、演示程序、Linux 和多个实验中用于人机交互(通过超级终端)以及文件传输;IIS 录放音接口:主板有一个可以基于DMA 操作的IIS 总线接口,可进行立体声录放音;I2C 总线接口:与24C08 芯片接口,可以存放一些固定的配置数据;4 个LED 跑马灯:可独立软件编程;6 个七段数码管:6个共阳七段数码管;外部中断测试:一个按键用于外部中断0 的测试;复位按键:按键用于CPU 复位;两通道通用DMA,两通道具有外部请求引脚的外设 DMA;五个PWM 定时器和一个内部定时器;看门狗定时器;8 通道10-bit ADC。
嵌入式系统实验指导指导书完整版
嵌入式系统实验指导王艳春李英一张劲松实验一嵌入式微处理器系统的开发环境一、实验环境PC机一台软件: ADS 1.2集成开发环境一套二、实验目的1.了解嵌入式系统及其特点;2.熟悉嵌入式系统的开发环境和基本配置并能编写简单的汇编程序三、实验内容1.嵌入式系统的开发环境、基本配置2.使用汇编指令完成简单的加法实验四、实验步骤(1)在D:\新建一个目录,目录名为experiment。
(2)点击 WINDOWS 操作系统的“开始|程序|ARM Developer Suite v1.2 |Code Warrior for ARM Developer Suite”启动Metrowerks Code Warrior,或双击“ADS 1.2”快捷方式启动。
启动ADS 1.2 如图1-1所示:图1-1启动ADS1.2(3) 在CodeWarrior 中新建一个工程的方法有两种,可以在工具栏中单击“New”按钮,也可以在“File”菜单中选择“New…”菜单。
这样就会打开一个如图1-2 所示的对话框。
选择【File】->【New…】,使用ARM Executable Image工程模板建立一个工程,名称为ADS,目录为D:\experiment。
图1-2 新建文件在这个对话框中为用户提供了7 种可选择的工程类型:1)ARM Executabl Image:用于由ARM 指令的代码生成一个ELF 格式的可执行映像文件;2)ARM Object Library:用于由ARM 指令的代码生成一个armar 格式的目标文件库;3)Empty Project:用于创建一个不包含任何库或源文件的工程;4)Makefile Importer Wizard:用于将Visual C 的nmake 或GNU make 文件转入到CodeWarrior IDE 工程文件;5)Thumb ARM Executable Image:用于由ARM 指令和Thumb 指令的混和代码生成一个可执行的ELF 格式的映像文件;6)Thumb Executable image:用于由Thumb 指令创建一个可执行的ELF 格式的映像文件;7)Thumb Object Library:用于由Thumb 指令的代码生成一个armar 格式的目标文件库。
嵌入式系统原理与应用实验指导书(合稿+习题)
嵌入式系统原理与应用实验指导书南航金城学院2013.2目录目录 (1)第一部分试验箱硬件结构 (2)第二部分实验 (11)实验一ADS1.2集成开发环境练习 (11)实验二汇编指令实验1 (17)实验三汇编指令实验2 (20)实验四汇编指令实验3 (23)实验五ARM微控制器工作模式实验 (28)实验六 C语言程序实验 (33)实验七 C语言调用汇编程序实验 (36)实验八GPIO输出控制实验 (39)实验九GPIO输入实验 (46)实验十外部中断实验 (50)实验十一UART通讯实验 (56)实验十二I2C接口实验 (64)实验十三定时器实验 (75)实验十四PWM DAC实验 (81)实验十五ADC实验 (87)实验十六RTC实验 (94)实验十七步进电机控制实验 (101)实验十八直流电机控制实验 (105)附录1 DeviceARM2410 专用工程模板 ..................................................... 错误!未定义书签。
第一部分试验箱硬件结构MagicARM2410教学实验开发平台是一款可使用μC/OS-II、Linux和WinCE操作系统、支持QT、MiniGUI图形系统、集众多功能于一身的ARM9教学实验开发平台。
采用Samsung公司的ARM920T内核的S3C2410A微处理器,扩展有充足的存储资源和众多典型的嵌入式系统接口。
MagicARM2410实验箱参考如图1.1所示。
图1.1 MagicARM2410实验箱外观图MagicARM2410实验箱功能框图如图1.2所示。
图1.2 MagicARM2410实验箱功能框图1.1 S3C2410A芯片简介S3C2410A是Samsung公司推出的16/32位RISC处理器(ARM920T内核),适用于手持设备、POS机、数字多媒体播放设备等等,具有低价格、低功耗、高性能等特点。
嵌入式系统开发(通信专业)实验指导书
《嵌入式系统开发》(通信专业)陈靖编撰闽江学院计算机实验教学中心印制目录实验一Linux常用命令 (1)实验二Linux 常用工具实验 (4)实验三 Makefile 实验 (13)实验四gdb实验 (22)实验五Cross-gdb实验 (25)实验六驱动程序结构实验 (29)实验七字符设备驱动程序实验 (34)实验八嵌入式GUI 应用程序实验 (45)实验九QT/E 移植实验 (54)实验十嵌入式QT应用程序设计实验 (59)实验十一串口通讯实验 (60)实验十二网络通讯实验 (66)实验十三 Web服务器的移植 (69)实验十四 TCP客户/服务器应用程序设计实验 (72)实验一Linux常用命令【实验目的】1、掌握嵌入式系统设计中linux常用命令的使用方法。
2、熟悉linux操作环境3、熟悉linux命令中常用参数的用法【实验仪器】1、装有Linux 操作系统的PC 机一台;【常用命令介绍】一、文件目录操作类命令1、 ls 显示目录内容2、 cp 文件复制3、 mv 文件移动或改名4、 rm 文件删除5、 pwd 显示当前工作目录6、 cd 改变工作目录7、 mkdir 创建目录8、chmod 更改文件的访问权限二、文件操作类命令1、wc 统计一个或多个文件的字数2、more 分屏显示文件3、less 分段显示文件4、cat 输出文件内容5、head、tail 显示文件的头(尾)内容6、touch 改变文件或目录的存取或修改时间7、ln 建立符号链接三、文件查找、排序1、 find 搜索文件2、 grep 查找文件内容3、 sort 对文件内容进行排序四、文件备份、压缩和解压类1、 bzip2、gzip、compress 压缩或解压文件2、 tar 归档和恢复文件五、文件系统管理类命令1、 mount、umount 加载和卸载文件系统和设备2、 du 显示目录或文件的大小3、 df 显示磁盘信息六、用户管理类命令1、 useradd 建立新用户2、 userdel 删除用户3、 passwd 用户密码设置4、 su 切换用户5、 who 查看登录用户七、进程控制类命令1、 ps、top 显示进程及信息2、 kill 中止信息八、其他有用的命令1、 echo 显示“字符串”2、date 日期时间设置3、file 查看文件的类型4、history 显示命令使用历史5、ifconfig 显示或配置网络设备6、export 新增、修改、删除或输出环境变量九、输入输出重定向及管道1、< 输入重定向2、>、>> 输出重定向3、| 管道十、vi编辑器的使用【实验内容】复习以上常用命令并完成以下的实验内容,写出实现下面功能的命令。
嵌入式系统(STM32微处理器)实训指导书
嵌入式系统(STM32微控制器)实训指导书意法半导体公司的STM32微控制器具有32位字长的CPU,使用精简指令系统(RISC)。
精简指令系统的指令字长固定,译码方便,相对于复杂指令系统(CISC),精简指令系统的处理效率更高。
具有32位字长CPU的STM32系列微控制器的处理能力远高于8位和16位单片机,同时集成了与32位CPU相适应的强大外设(如双通道ADC、多功能定时器、7通道DMA、SPI等),能够完成过去一般单片机所无法达到控制功能。
现在,已经形成了以8位单片机为主流的低端产品和以32位微控制器为主流的高端产品两大市场。
对于自动化领域的从业人员,了解32位微控制器的结构、特点,掌握其使用方法,是很有必要的。
一、关于学习方法此前,我们已经学习过《C语言程序设计》、《微机原理》、《单片机原理及应用》等相关课程。
这些课程的学习是系统的、完整的、全面的,是有老师讲授的。
这种学习方法,适合在学校学习一些重要的基础理论课程。
在工作中,我们常常会遇到新的东西,需要以已有的知识作为基础,去解决问题、完成任务。
这就需要不同于前述的另一种学习方法。
这种方法是建立在自学基础上的,以解决实际问题为目的,允许通过局部的、模仿性的手段,来实现既定目标。
这种方法在工程实践中的应用是非常普遍的。
“白猫黑猫,能抓住老鼠就是好猫”。
能解决问题的方法就是好方法。
本次实训采取的方法是:将参考资料发给同学,同学自学其中需要的部分。
在指导教师引导下,体验各个控制项目、理解各组成部分,再以原控制软件为基础进行修改和移植,获得要达到的控制效果。
在本次实训中,我们使用的微控制器型号为STM32F103RB。
STM32F103RB是STM32微控制器系列中的一种,内部具有128KB程序存储器、20KB随机读写存储器、1个16位高级定时器、3个16位通用定时器、2个SPI、2个I2C、3个USART、1个USB、1个CAN、2个ADC。
芯片为64引脚LQFP封装,有51个I/O引脚。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《嵌入式操作系统》课程 实验指导书 《嵌入式操作系统》课程实验指导书
I 目 录 前 言..................................................I
实验一 多任务及调度实验..............................1
基本信息.......................................................1
实验预习.......................................................1
实验过程.......................................................2
实验数据和实验结果记录.......................................7
实验结果分析..................................................8
实验二 任务同步实验..................................8
基本信息.......................................................8
实验预习.......................................................8
实验过程.......................................................9
实验数据和实验结果记录......................................12
实验结果分析.................................................12
实验三 信号量集实验.................................12
基本信息......................................................12
实验预习......................................................13
实验过程......................................................13
实验数据和实验结果记录......................................13
实验结果分析.................................................14
实验四 51单片机移植实验............................14
基本信息......................................................14
实验预习......................................................14
实验过程......................................................15
实验数据和实验结果记录......................................15
实验结果分析.................................................15 《嵌入式操作系统》课程实验指导书 I 前 言
《嵌入式操作系统》课程为软件工程本科专业嵌入式系统与应用方向的专业方向课。本课程以一个源码开放的嵌入式实时操作系统的内核µC/OS-Ⅱ为例,介绍嵌入式实时操作系统内核的任务管理和调度、系统时钟和节拍服务、时间管理、中断、任务的通信和同步、内存的简单管理原理,以及移植方法。 µC/OS-Ⅱ是一种可移植、可固化、可裁剪及可剥夺型的多任务实时内核(RTOS),适用于各种微处理器和微控制器。其性能足可媲美于商用内核,在某些方面甚至更佳。所有代码用ANSI C语言编写,具有良好的可移植性。 通过对µC/OS-Ⅱ源代码的分析与描述、讲解多任务实时系统的基本原理,学生可以学到内核结构、调度算法、任务切换、时间管理、任务问通信与同步及存储空间的动态分配等知识。 学习本课程旨在使学生掌握嵌入式操作系统的基本原理及实现技术,详究计算机硬件与操作系统之间的关系、学习计算机系统软件的编写方法,对培养学生设计开发计算机系统软件的能力有重要作用。该课程为今后进行嵌入式系统的构建、嵌入式软件开发、以及深刻理解先修课程如操作系统、微型计算机原理与接口技术、单片机技术与应用等能起到事半功倍的作用。 本课程的实验环节是对理论知识的综合运用,根据理论课教学进度,循序渐进,将课本知识应用于实际系统,并可以根据自己的思路设计、修改参考程序,通过观察程序运行结果,加深对操作系统、特别是多任务系统的基本原理和方法的理解,掌握计算机系统软件的基本设计方法。在培养学生理论联系实际、实际动手能力的同时,着重培养学生思考问题、解决问题的能力和创造能力。通过实验着重培养学生阅读优秀源代码、掌握调试手段和方法、处理实验数据以及分析与总结实验结果等方面的能力。 实验用主要仪器设备:微型计算机、操作系统源代码、可嵌入汇编的编译器。 《嵌入式操作系统》课程实验指导书
1 实验一实验一 多任务及调度实验
基本信息 实验课程:嵌入式操作系统 设课形式:非独立 课程学分:2 实验项目:多任务及调度实验 项目类型:设计 项目学时:2 实验预习 实验目的和要求:实验目的和要求: 1、熟悉µC/OS-Ⅱ中多任务的建立与启动过程; 2、掌握任务函数的设计、主函数与任务函数之间参数传递的方法; 3、掌握基于同一函数建立多个任务的方法。 实验内容和原理或涉及的知识点: 1、在PC机DOS环境中实验µC/OS-Ⅱ的多任务。 2、建立4个任务,每个任务使用屏幕的一部分,分别循环显示“0”、“1”、“2”、“3”4个字符。即,任务0循环显示“0”,任务1循环显示“1”,依此类推。 3、各任务显示内容不可混杂在一起。 4、4个任务函数可分别编制,也可统一到一个函数中。 实验条件: 1、装有Windows操作系统的微型计算机; 2、Borland C++软件。 3、µC/OS-Ⅱ源代码。 4、µC/OS-Ⅱ在PC机、DOS下的移植代码。 5、PC机中进行屏幕、键盘操作的函数源代码。 实验设计方案: 1、熟悉使用µC/OS-Ⅱ进行应用程序设计的基本模式、任务函数的结构(无限循环结构、加入延时)。 2、熟悉建立任务的函数OSTaskCreate()的各个参数的含义、任务堆栈对于每个任务的作用。 3、熟悉屏幕与键盘操作函数的使用。 4、分别编写4个任务函数。 《嵌入式操作系统》课程实验指导书 2 5、统一编写任务函数,考虑不同参数的传递。
实验过程 1、根据实验预习阶段的实验设计方案,编写应用程序。参考代码如下。 #include "includes.h"
#define TASK_STK_SIZE 512 #define TASK0_SCREEN_FROM 0 #define TASK0_SCREEN_TO 14 #define TASK1_SCREEN_FROM 20 #define TASK1_SCREEN_TO 34 #define TASK2_SCREEN_FROM 40 #define TASK2_SCREEN_TO 54 #define TASK3_SCREEN_FROM 60 #define TASK3_SCREEN_TO 74 #define TASK0_PRIO 0 #define TASK1_PRIO 2 #define TASK2_PRIO 4 #define TASK3_PRIO 6
OS_STK Task0Stk[TASK_STK_SIZE]; OS_STK Task1Stk[TASK_STK_SIZE]; OS_STK Task2Stk[TASK_STK_SIZE]; OS_STK Task3Stk[TASK_STK_SIZE];
INT16S key; void Task0(void *pdata); void Task1(void *pdata); void Task2(void *pdata); void Task3(void *pdata);
void main(void) { OSInit();
PC_DOSSaveReturn(); PC_VectSet(uCOS, OSCtxSw);
OSTaskCreate(Task0, "0", &Task0Stk[TASK_STK_SIZE - 1], TASK0_PRIO); OSStart(); } 《嵌入式操作系统》课程实验指导书 3 void Task0(void *pdata) { #if OS_CRITICAL_METHOD == 3 OS_CPU_SR cpu_sr; #endif
static INT8U x = TASK0_SCREEN_FROM, y = 0; OS_ENTER_CRITICAL(); PC_VectSet(0x08, OSTickISR); PC_SetTickRate(OS_TICKS_PER_SEC); OS_EXIT_CRITICAL();
OSStatInit(); OSTaskCreate(Task1, "1", &Task1Stk[TASK_STK_SIZE - 1], TASK1_PRIO); OSTaskCreate(Task2, "2", &Task2Stk[TASK_STK_SIZE - 1], TASK2_PRIO); OSTaskCreate(Task3, "3", &Task3Stk[TASK_STK_SIZE - 1], TASK3_PRIO);
for (;;) { if (x == TASK0_SCREEN_TO) { x = TASK0_SCREEN_FROM; y += 2; }
PC_DispChar(x, y, *(char *)pdata, DISP_BGND_BLACK + DISP_FGND_WHITE); x++;
if (PC_GetKey(&key) == TRUE) if (key == 0x1B) PC_DOSReturn();
OSTimeDlyHMSM(0, 0, 3, 0); } }
void Task1(void *pdata) { #if OS_CRITICAL == 3 OS_CPU_SR cpu_sr; #endif