《ARM原理及应用》实验指导书_第1页
《ARM原理及应用》实验指导书_第2页
《ARM原理及应用》实验指导书_第3页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、作者:日期:个人收集整理勿做商业用途实验一 Q/OS-II任务创建实验目的:通过查看任务创建的源代码了解任务创建的过程及与系统的关系;掌握卩C/OS-II任务创建的方法;了解基于任务的系统设计方法实验原理:任务可以是一个无限的循环,也可以是在一次执行完毕后被删除掉。这里要注意的是,任务代码并不是被真正的删除了,而只是 卩C/OS-II不再理会该任务代码,所以该任务代码不 会再运行任务看起来与任何 C 函数一样,具有一个返回类型和一个参数,只是它从不返回.任务的返回类型必须被定义成 void型.卩C/OSI可以管理多达 64个任务,并从中保留了四个最高优先级和四个最低优先级的 任务供自己使用,所

2、以用户可以使用的只有 56个任务。任务的优先级越高,反映优先级的 值 则越低。在最新的pC/OS-II版本中,任务的优先级数也可作为任务的标识符使用。想让卩C/OSII管理用户的任务,用户必须要先建立任务。用户可以通过传递任务地址 和 其它参数到以下两个函数之一来建立任务:OSTaskCreate() 或 OSTaskCreateExt(). OSTaskCreateO 与 C/OS-II 是向下兼容的,OSTaskCreateExt()是OSTaskCreat()的扩展版本,提 供了一些附加的功能用两个函数中的任何一个都可以建立任务。任务可以在多任务调度开始前 建立,也可以在其它任务的执行过

3、程中被建立。 在开始多任务调度(即调用 OSStart()前,用 户必须建立至少一个任务。任务不能由中断服务程序(ISR )来建立。开发板部分引脚配置图:设备对应引脚LED1P1。16LED2P1.17LED3P1.18LED4P1.19LED5P1.20LED6P1.21LED7P1。22LED8P1。23按键P0.16蜂鸣器P1.25实验步骤:1、 按照概述中“AR Embedded Workbench 使用"打开位于D:实验程序 实验 Ex1的工程文件.2、在Workspace 一栏中打开app。c文件,从文件中学习任务产生的方法和任务应用的方法。3、建立一个任务,使用LED_

4、Toggle()函数,定时对LED D3进行控制。4、 编译工程后,通过概述中的“卩C/OS实验烧写说明,下载修改后的程序。5、通过通过LED闪烁情况检验任务建立的正确性 .6、使用如下图的功能,查找OSTaskCreate函数,通过源代码深入了解任务产生的过程。0 STssk Cre ateExt|( AppS tar tTask 1,CutCppy EastsConopleteMatch Brackets Insert TefTplahsOpsn 1-iBacler/Sgijrce Ffle0ST'a5kNafiieSe,05TaJkNAmeS±'To(je Sr

5、epoir* Gode)i fToijgle Srepoirrt (Leg)Eriatfejdlsable BreakpointOS TASK NAME思考题:1、建立任务的过程包括那些步骤。2、系统对任务产生需要那些初始化和设置3、通过查看源代码,找出以下变量的是怎样定义的,并对其进行简单的意义说明。OS_STK,OSTCBPrioTbl , OS_TCB,OSTCBFreeList ,OSTCBList ,OSRdyGrp, OSRdyTbl实验二 Q/OS II同步与通信实验目的:通过查看信号量创建和邮箱创建的源代码 ,了 解信号量创建的过程及与系统的关系; 掌 握 卩C/OSI信号量创

6、建和邮箱创建的方法;了解并使用信号量和邮箱对任务进行同步和通 信。实验原理:在pC/OS-II中,有多种方法可以保护任务之间的共享数据和提供任务之间的通讯:一是利用宏OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()来关闭中断和打开中断。当两个任务或者一个任务和一个中断服务子程序共享某些数据时,可以采用这种方法。 二是利用函数OSSchedLock ()和OSSchekUnlock ()对C/OS-II中的任务调度函数上锁和开锁。用这种方法也可以实现数据的共享。 另外三种用于数据共享和任务通讯的方法:信号 量、邮箱和消息队列 . 一个任务或者中断服务子程序可以通过事件

7、控制块 ECB( Event Control Blocks )来向另外的任 务发 多个任务可以同时等待同一个事件的发生。 在这种情况下, 当该事件发生后, 所有等待 该 信事件的任务中, 优先级最高的任务得到了该事件并进入就绪状态, 准备执行。上面讲到的 事件, 号可以是信号量、 邮箱或者消息队列等。 当事件控制块是一个信号量时, 任务可以等待 它 ,也可 以。给它发送消息。这 邮箱是 p C/OS-II 中另一种通讯机制,它可以使一个任务或者中断服务子程序向另一个 里任务发送一个指针型的变量。该指针指向一个包含了特定“消息 ”的数据结构 .为了在非C/OSI中使用邮箱,必须将 OS_CFG.

8、H中的OS_MBOX_EN 常数置为1。使用邮箱之前, 必须先建立该邮箱。该操作可以通过调用OSMboxCreate ()函数来完成(见 下节)并且要指定有指针的初始值。一般情况下,这个初始值是 NULL ,但也可以初始化一 个邮箱,使其在最开 始的就信 包号 含都 被一实验步骤:看条成消 1 、确保实验一的程序运行成功 .是息 2、使用二值信号量或者邮箱按照程序中的提示进行程序填写。.事 3、 如件(果 使 用 邮箱。这也说明为什么上面把用于 通讯的数据结构叫做事件控制块。 一个任务还可以等待另一个任 务的或中断服务子程序给它发 送信号。 这里要注意的是 ,只有任务可以等待事件发生 ,中断服

9、务子 目程序是不能这样做的 . 对于处于等待状态的任务, 还可以给它指定一个最长等待时间, 以此来防 止的因为等待的事件 没有发生而无限期地等下去。是思考题 :1、使用文字说明任务同步与通信的过程。2、通过查看源代码说明信号量和邮箱创建的过程。3、通过查看源代码 ,找出以下变量的是怎样定义的,并对其进行简单的意义说明。OS_EVENT ,OSEventFreeList,OSTCBCur 。实验三 嵌入式 Linux 系统的基本操作实验目的:掌握实验箱嵌入式 Linux 运行环境的硬件的连接方法和软件的设置;掌握 Linux 基本的操作;掌握 Linux 基本的命令。实验原理:> Linu

10、x正在嵌入式开发领域稳步发展。 因为Linux使用GPL,所以任何对将Linux定 制于自己特定开发板或 PDA 、掌上机、可佩带设备感兴趣的人都可以从因特网免费下载其内核和应用程序 ,并开始移植或开发。嵌入式 Linux 的发展比较迅速。 NEC 、索尼已经在销售个人视频录像机等基于Linux的消费类电子产品 ,摩托罗拉则计划在其未来的大多数手机上使用Linux, IBM 也制定了在 手持机上运行 Linux 的计划 .“Linux 标准库 ”组织一直在从事对在服务器上运行的 Linux 进行标准化的工作, 现在,嵌入式 计算领域也开始了这一工作 .嵌入式 Linux 标准吸引了 “Linu

11、x 标准库 "以及 Unix 组织中有益 的元素。> 文件编辑 vivi 编辑器的文字说明模式:命令模式,编辑模式,末行模式。切换方式:命令模式 fi t编辑模式,编辑模式t Escf命令模式,命令模式f : f末行模式。功能:命令模式 (Command Mode): 控制光标移动,删除字符,段落复制。 辑模式( Insert Mode ): 新增文字及修改文字。末行模式(Last Line Mode ):保存文件,离开 vi,以及其他设置命令模式命令 命说明将光标向左移动一格 将光标向右移动一格 将光标向下移动一格 将光标向上移动一格数字 0,将光标移动到该行的行首 将光标移

12、动到该行的行末 将光标移动到该屏幕的顶端ML将光标移动到该屏幕的中间 将光标移动到该屏幕的底端ggG 行 w 或 W将光标移动到文章的首行将光标移动到文章的尾将光标移动到下一单词x X dd *dd D删除光标所在处的字符删除光标前的字符 删除光标所在行 从光标所在行向下删除 * 行,* 为数字 删除光标所在处到行尾r R取代光标处的一个字符 从光标处向后替换 ,按 Esc 结束u U取消上步的操作 取消目前的所有操作yy p复制光标所在行将复制的内容放在光标所在行的下行编辑模式命令 命令说明a A iI在光标后插入文本 在光标所在行后插入文本 在光标前插入文本 在光标所在行前插入文本o在光标

13、所在行下插入新行 (小写字母 o) O 在光标所在行上插入新行(大写字母 O)末行命令命令说明e创建新 文 件n加 载新文 件w !保存文件 强行操作w!强行保存文件q q! wq wq! set nu set nonu/* ?退出强行退出保存退出强行保存退出显示行号不显示行号/搜索 ,*任意字符串同上实验步骤:1、连接实验箱RS232的UARTO到计算机。2、连接实验箱网络到计算机的网卡。3、双击Putty,并打开COM 连接.4、 连接实验箱电源,并按Power键,打开实验箱电源,Putty会有如下输出。rootIntel /"就是嵌入式 Linux 的shell 输出。IE 也

14、屮 Tw*f Wr*w 姑J '- - jZJ -上i T 商-* Q -,zJ|L3 Jj cmaJCKslwll fur NM«4grr EnterprlM 3.« (BuildLi>|>yr iyhl ( c )Hrt£-4r diiy CunpuilLer B 0 ih: . All r iyi<liri«s4jruril-'h*lpfc tn Larn new ta us#.KslbtllCoir>n«GtiHg to CVHH .ydFFs : Al IrnpLing HT& MUhl

15、: OH 31 a 1B '"(Uii-dUdildljl)"t*PLatForBl:nntiiiirinii| kpi'nli:i puJi.ftip i *tri pr. - 1Atting clock aaealkLtw;: ihu加 1 90bd:is ui£ 197« mm hn 1i Qa:ee:i5 UTE 1470Setting hastnaiw II mt el P 肚NhunE inq lo-r:.! f ilpyErmPt hl: Oink lip. HUI1HI>pT 1-ul j-duip 3pxp Lpa

16、1I Hili 11 Lnterihgi9t* tlRPiOIirrantluylnUHr«t£>ih'tfcys-1呼如丁3;rofltloginCRlogin715|:ruu七loijiiiinPrnirpiHq /p-rc/prnilp-. Ufiqiin(TEE1 : fieit Imjiii an ' ttyl l£»91ii?e2: root Login vm 护Dorw| kimiErirn pl f5、双击图标VMware mkststion打开虚拟软件,如下图所示。二-厂V +也亚序4理圧巳ilf! Xn<&

17、amp; Lrtwsrrei!瞬曲:通側IXkDIMt軽 "- 事豪Red Hal Linux - VMware WorlcEtaticMn文件 購幡旧査爭賞虎拟机画逋I)蜜口凹帘肋世H Jd P © | © £; © | 回芒 |S 丨;t Red Hat Linuxfl 3壽户314找售配J£Red Hat LinuzRwd. LinwIl ps. ii2T0 Vvnrir*r er e dll at 日虛世机用罐丈f牛机.vni 当111虑拟机用于皿皤* H时餌吕吊卩120H0自动检测侨捉存在庾用詞口 COM1淀内再= 

18、7;£(5C510:0) CD-RCM1 IDE ;0)以丈嗣Q吹梯噬 心审口®虛羽处理黒6、点击启动此虚拟机,等待虚拟机启动起来,如下图所示。输入用户名:root,密码 是123456,进入系统.7、在虚拟机中打开一个终端,并输入ifconfig来查看网络配置,确保网络在192。168.1.*网段。如下图所示.8、 检查配置好网络后,为了使操作统一,我们使用Putty登录Redhat 9,下图所示。9、 练习Linux基本操作.(注意以下操作只能在root BC root #,也就是root文件夹 下运行,不然会导致系统不能启动)9.1 Is,在root BC root#

19、下输入Is可得到如下的结果。root BC root # lsanaconda ks.cfg in stall .login stall。 log。syslogrootBC root # man ls可以看到Is命令的用法,及其参数的意义,对于初学者大多数情况下,学习命令都 是通过man * ”和“* -help”得到的命令使用方法.9。2根据以上提示,学习并掌握以下的命令.cp , mkdir, rmdir ,rm , del, file , cd 等命令10、 简单的系统管理(以下的命令详细的使用发放都可以用man * *"和“ *-help)10。1查看硬盘使用情况df10。2

20、查看文件夹的大小du10。3查看CPU使用情况top10。4系统网络配置 ifconfig11莊虚拟机中练习完命令后,以上学习的命名大部分都可以在嵌入式的Linux中使用,令可以在Xshell的COM窗口练习。11。1输入qt,可以启动桌面,按CRT+ C退出,如果鼠标位置不准确可以输入 qt 进入校屏程序。在LCD的桌面上可以放音乐和 MTV,还有游戏程序。11.2控制台下播放音乐及 MTV,输入:#cd /mn t/yaffs/mm#ls 查看文件名称 mplayer * *为文件名 ,进行播放文件。12、实验箱的 Linux 系统挂载 V Mware 中的文件夹。 在Xshell 中的

21、COM 窗口输入:/mnt/nfs#mou nt p nolock 192。168。1。101:/up-techpxa270只是输入#cd /mnt/nfs通过Is命令就可以看到 VMware中Linux系统的文件.思考题:1、请 画出虚拟机、 PC 机和 ARM 实验箱之间的硬件连接图。2、在 Linux 中怎样配置网络实验四嵌入式Linux系统的编程实验目的:掌握嵌入式Linux系统编程的硬件结构图 掌握嵌入式Linux系统开发软件硬件的建立;掌握Linux程序编译的方法;了解 Linux系统编程的方法.实验原理:Lin ux软件开发一直在In ternet环境下讲行。这个环境是全球性的,

22、编程人员来自世界 各地。只要能够访问 Web站点就可以启动一个以Linux为基础的软件项目。Linux开发工作 经常是在Linux用户决定共同完成一个项目时开始的。当开发工作完成后,该软件就被放 到In ternet站点上,任何用户都可以访问和下载它。由于这个活跃的开发环境, 新的以Lin ux为基础的软件功能日益强大,而且呈现爆炸式的增长态势。大多数Linux软件是经过自由软件基金会(Free Software Foundation提供的GNU(GNU即 GNU ' not UNIX)公开认证授权的,因而通常被称作GNU软件.GNU软件免费提供给用户使 用,并被证明是非常可靠和高效的

23、 许多流行的Linux实用程序如C编译器、shell和编辑器都 是GNU软件应用程序。Linux程序需要首先转化为低级机器语言即所谓的二进制代码以后,才能被操作系统执行。例如编程时,先用普通的编程语言生成一系列指令,这些指令可被翻译为适当的可执行应用程序的二进制代码。这个翻译过程可由解释器一步步来完成,或者也可以立即由编译器明确地完成。shell编程语言如BASH、TCSH、GAWK、Perl、Tel和Tk都利用自己的解释器。用这些语言编制的程序尽管是应用程序文件,但可以直接运行编译器则不同,它将生成一个独立的二进制代码文件然后才可以运行。Linux原本被设计为桌面系统,现在广泛应用于服务器领

24、域。而更大的影响在于它正逐 渐 应用于嵌入式设备。Linux可以说是最早的嵌入式 Linux发行版本.它是为没有MMU的 处理 器而设计的,进而发展了一个完整的开发平台,包括编译、调试等工具。> gee 使用gee可以使程序员灵活地控制编译过程编译过程一般可以分为下面四个阶段,每个阶段分别调用不同的工具进行处理,如图所示。源程(*c)可执持文件预处理器编译器汇编器逹接器Linux系统中可执行文件有两种格式。第一种格式是a.out格式,这种格式用于早期的Linux系统以及 Unix系统的原始格式。a.out来自于Unix C编译程序默认的可执行文件名。 当使用共享库时,a.out格式就会发

25、生问题.把a。out格式调整为共享库是一种非常复杂的操 作,由于这个原因,一种新的文件格式被引入 Unix系统5的第四版本和Solaris系统中。它ELF 格式已经被 Linux 系统作为标准的格式采用。 gcc 编译程序产生的所有的二进制文 使用 GNU make 编辑 makefile要使用make,必须编写一个叫做 Makefile的文件,这个文件描述了软件包中文件之间的关,提供更新每个文件的命令。 一般在一个软件包里, 通常是可执行文件靠目标文件来更 新, 标文件靠编译源文件来更新。Makefile 写好之后 ,每次改变了某些源文件,只要执行make 命令 :的 # make格 所有必

26、要的重新编译将执行 .Make 程序利用 makefile 中的数据和每个文件的最后修改时 间式格来确定那个文件需要更新 ,对于需要更新的文件 ,make 程序执行 makefile 数据中定义的 命 (来更新。勺这ak格式很容易个文本共享库的数据库文件,其中包含一些规则来告诉make处理哪些文件以及文如何处理这些文件。 这些规则主要是描述哪些文件 (称为 target 目标文件, 不要和编译时 产 生件的目标文件相混淆)是从哪些别的文件(称为 dependency 依赖文件)中产生的 ,以及 用什 么命令(comma nd)来执行这个过程。即依靠这些信息, make 会对磁盘上的文件进行检查

27、, 如果目标文件的生成或被改动时的时 间 使(称为该文件时间戳 )至少比它的一个依赖文件还旧的话, make 就执行相应的命令,以 更新目可标文件。目标文件不一定是最后的可执行文件, 可以是任何一个中间文件并可以作为 其他目 标执文件的依赖文件 .行一个 Makefile 文件主要含有一系列的规则,每条规则包含以下内容。文? 一个目标( target,) 即 make 最终需要创建的文件 ,如可执行文件和目标文件 ;目标也 可以 件 是要执行的动作,如 “clean。”的? 一个或多个依赖文件(dependency)列表,通常是编译目标文件所需要的其他文件。默? 一系列命今(command),是make执行的动作,通常是把指定的相关文件编译成目标文 认 件的编译命令,每个命令占一行,且每个命令行的起始字符必须为 TAB 字符 . 名例如,有以下的 Makefile 文件:仍 一个简单的 Makefile 的例子然# 以#开头的为注释行是test: prog.o code.ogcc -o test prog.o code。o a prog.o: prog.c prog。 h code。 h 。gcc -c prog。c p prog。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论