ARMSYS-I型嵌入式系统教学实验平台

发 布 时 间 : 2008-11-17 来 源 : 本站原创 作 者 : 立宇泰电子 浏 览 :

ARMSYS的硬件体系结构
ARMSYS的硬件体系结构如右图所示,它主要包括以下模块:

  处理器

  Memory:RAM、ROM

  Disk:扩展存储设备

  I/O设备:键盘、显示设备

  ADC

  标准通信接口:UART,USB等

  网络接口

  调试接口  

      下面分模块介绍ARMSYS的硬件设计。
   处理器的选择

基于ARM7TDMI内核的S3C44B0X
 嵌入式处理器品种繁多:
中低端:4位、8位和16位处理器;
高性能32位处理器有很多种类,例如
   -ARM系列
   -X86系列
   -Motolora系列
   -MIPS系列
   -SH/HP-RISC等系列
进年来ARM内核处理器已经成为市场主流处理器
从1999年底开始,市场销售额排在前三位的公司分别是ARM、Motorola和MIPS,其中ARM公司的芯片销售量达1.5亿个,市场份额超过50%。ARM很快成为许多全球性RISC标准的缔造者。
      ARM(Advanced RISC Machines)公司设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。主要产品有:
    -CPU内核
     -ARM7TDMI(Thumb):这是公司授权用户最多的一项产品
     -体系扩展
     -嵌入式ICE调试
     -微处理器
    ARM公司将其技术授权给世界上许多著名的半导体、软件和OEM厂商。目前,总共有30家半导体公司与ARM签订了硬件技术使用许可协议,其中包括Intel、IBM、LG半导体、NEC、SONY、菲利浦、国半和三星等大公司。

     ARMSYS选择了Samsung(三星)公司出品的S3C44B0X处理器,它的特点是:
    -采用了ARM7TDMI内核
   -ARM7:小型、快速、低能耗、集成式RISC内核;
    -ARM7TDMI:将ARM7指令集同Thumb扩展组合在一起,减少内存容量和系统成本。利用嵌入式ICE调试技术来简化系统设计,并采用DSP增强扩展来改进性能。
    -集成了丰富的内置外设,是一款通用(General Purpose)型微控制器产品。
    -适用于嵌入式系统实验教学。
参考S3C44B0X的数据资料

Memory
  ROM   
        S3C44B0X自身不具有ROM,因此必须外接ROM器件来存放掉电后仍需要保存的代码和数据。 闪速存储器(Flash Memory)具有非易失性,并且可轻易擦写。Flash技术结合了OTP存储器的成本优势和EEPROM的可再编程性能,因此,得到越来越广泛的使用。在ARMSYS中,采用1M×16bit的FlashROM作为代码存储器。flashROM采用标准总线接口与处理器交互,对它的读取不需要任何特殊的代码,但需要首先在硬件上设定OM[1:0]和大小端,以便使处理器知道flash的数据长度和位序。 作为代码存储器,flashROM映射在处理器的第0bank地址空间(从系统地址0x00000000开始)。系统上电复位时,处理器就自动从0x00000000地址处开始取得指令运行...
参考实验二FlashROM器件的应用实验
参考SST39VF160数据资料

RAM
        随机存取存储器RAM(Random Access Memory)是易失性的存储器,在掉电以后数据即消失,不能够长久保存。但与ROM器件不同的是,它的随机读写速度非常快,写入数据之前也不需要进行擦除,这些特性使它成为嵌入式系统中必不可少的存储设备之一。在嵌入式系统中,通常都将数据区和堆栈区定位在RAM中,供快速地读、写。
参考实验三SDRAM器件的应用实验
参考SDRAM数据资料
  Disk

Nandflash的组织结构

Nandflash Nand-flash是Flash的一种技术规格,其内部采用非线性宏单元模式,为固态大容量存储器的实现提供了廉价有效的解决方案,因而现在得到了越来越广泛的应用。例如体积小巧的U盘就是采用Nand-flash存储器的嵌入式产品。
      由于Nand-flash内部结构不同于我们所熟悉的Nor-flash(线性flash),因此对它的读写操作也有较大的区别。S3C44B0X中没有像支持SDRAM一样提供直接与Nand-flash的接口,读写的过程要靠软件编程来完成...
参考实验四Nandflash器件应用实验
参考K9F2808数据资料
  I/O设备
键盘  最为常用的输入设备。ARMSYS提供4×4的矩阵式键盘:
参考实验五通用I/O口的使用-矩阵式键盘应用实验
LCD S3C44B0X内部具有一个LCD驱动控制器,自动产生LCD驱动控制所需的控制信号,因此S3C44B0X可以与诸如黑白灰度、STN型彩色等LCD屏直接接口,而不需要另外加LCD控制器。在这种接口方式下,LCD显示缓冲区映射在系统的存储器空间上,程序只需将像素点内容写入存储器对应地址就可以实现对应LCD屏上像素点颜色的显示,十分方便。
    ARMSYS以S3C44B0X与一个STN型320×240像素的彩色液晶接口为例,介绍S3C44B0X与彩色液晶的接口方法,如何在LCD上显示某种色彩、如何绘制简单图形等。
参考实验十LCD接口应用应用实验
触摸屏 触摸屏由于其体积小、轻便、接口简单的特点,成为一种在嵌入式系统中应用用广泛的输入设备。ARMSYS采用四线电阻式触摸屏,同时采用一款四线电阻式触摸屏专用的接口芯片ADS7843作为触摸屏的接口控制芯片。
参考实验十三触摸屏应用实验


SHARP彩色液晶屏(320×240像素)
ADC
A/D转换器   S3C44B0X具有8路模拟信号输入的10位逐次逼近模/数转换器(ADC),ARMSYS提供模拟信号产生模块,屏通过一个实例来掌握这个ADC的应用方法。
参考实验十二A/D转换器的使用
通讯接口
 UART异步串行接口   S3C44B0X内部集成的UART(通用异步收发器)单元提供两个独立的异步串行I/O端口,也就是通常所说的串口。串口是用途广泛的通讯口,很多工业现场总线都以串口为基础。在这里,串口不仅可以用来与外部设备进行数据通讯,还可以用来对观察系统运行状况,例如ARMSYS中经常使用的超级终端观察程序运行情况的方法。
参考实验七UART异步串行接口应用实验



USB接口   USB(通用串行总线)接口正在被用于多种嵌入式系统设备的数据通信中,如移动硬盘,数码相机、PDA、高速数据采集设备等。ARMSYS提供了专门的实例,供学生掌握这种使用日益广泛的接口标准,并通过实例了解开发USB接口设备的基本步骤、掌握如何进行硬件电路设计和如何进行固件部分的编程。
参考实验十四USB接口固件编程实验

USB下载器界面
网络接口
10M以太网接口 以太网以其高度灵活,相对简单,易于实现的特点,成为当今最重要的一种局域网建网技术。ARMSYS将介绍NE2000兼容的典型以太网控制器芯片RTL8019的工作原理。然后为NE2000兼容以太网适配器提供一系列的硬件驱动函数。这些硬件驱动函数在后面的TCP/IP协议实例中将被直接调用,来对网卡硬件进行操作。
参考实验十五以太网控制器接口应用实验
调试接口
JTAG接口 ARM7TDMI内核提供了片上调试技术,因此,可以通过一个简易的JTAG接口来实现对处理器运行的仿真调试,十分方便。
ARMSYS的软件体系结构
ARMSYS软件体系结构自底向上包括以下几个层次:

   硬件驱动层

   操作系统

         操作系统内核

         文件管理系统

         网络协议栈

         图形用户界面系统(GUI) 

   应用接口函数(API)

   应用程序/用户程序

      下面分模块介绍ARMSYS的软件平台设计。
   uC/OS-II嵌入式实时多任务操作系统介绍

uC/OS-II多任务管理教学演示液晶界面
     uC/OS-II清晰地体现了一个嵌入式操作系统的实时内核是怎样工作的,它的结构简明,容易学习,在一般实时系统应用中具有很强的实用性。
     在软件体系结构中,uC/OS-II与其它嵌入式软件组件,如GUI,FS,协议栈等配合工作。能清晰地展现嵌入式系统软件体系结构中的各个元素的作用和关系,而且便于裁减和扩展。 ARMSYS中,主要在3个方面针对uC/OS-II操作系统的应用进行分析:

   操作系统针对特定处理器的移植这通常是应用操作系统的第一步,移植的工作反映了uC/OS-II中有哪些项目是与处理器紧密相关的,体现了操作系统内核运行的硬件基础。
参考实验十八 uC/OS-II的移植与基本应用

   操作系统的多任务管理。在实时应用中,多任务化的最大特点是,开发人员可以将很复杂的应用程序层次化。使用多任务,应用程序将更容易设计与维护。
    一个任务,也称作一个线程,是一个简单的程序,该程序可以认为CPU完全只属该程序自己。在操作系统的应用中,如何把问题分割成多个任务,并建立起任务之间的关系,是需要考虑的首要问题。
参考实验十九 uC/OS-II的多任务管理与任务间通讯 
 中断处理程序的设计。uC/OS-II作为一种可剥夺型的操作系统内核,它的中断响应性能在实时应用中显得尤为重要。中断是一种硬件机制,因此中断处理程序的编写与硬件具有相关性。由于uC/OS-II的运作本身使用了定时器中断作为节拍,因此对其它中断很可能发生多次嵌套的情况,中断处理程序的设计作为一个编程难点,在我们的实验项目中也有专门的探讨。
参考实验二十 uC/OS-II的中断处理程序设计
文件管理系统介绍
    或许你还记得C语言中的fopen(),fwrite(),fread(),fclose()等文件输入/输出函数,采用这些函数可以将数据作为文件来保存和管理。文件实际上是被命名了的存储区段或是区段的集合。我们不需要指定存储器的地址,只需要根据目录和文件的名称来存取数据,显然,这种数据管理机制显得更加直观、方便。这也就是引入文件系统的原因。
    使用文件输入/输出函数的前提是必须具有文件系统的支持。FAT16是一种较为轻型的文件系统,原来工作在PC机的硬盘上,经过移植它也能适用于嵌入式系统。因此,我们就以FAT16为例,掌握文件系统的存储结构,并尝试将它移植到ARMSys的Nand-flash(非线性flash,也称为固态硬盘)上。这样,在ARMSys平台上也能够根据文件名来对数据进行访问,并可以调用类似于fopen(),fwrite(),fread(),fclose()功能的函数对数据进行访问。
参考实验二十四基于Nandflash的FAT文件系统

参考FAT16文件系统的说明
  TCP/IP协议栈的介绍

ping网络诊断教学演示液晶界面
    在TCP/IP协议栈的选择上,我们采用了一种基于嵌入式系统编写,结构清晰完整,易于学习的TCPLean协议栈。它具有非常简洁的代码,并有专门的书籍对整个协议栈代码进行详实的说明,因此,将它作为我们的教学实例可以促使学生快速理解TCP/IP协议栈的结构和原理。ARMSYS上提供了3个实例,对TCP/IP基础部分的协议:ARP协议,IP协议,ICMP协议,UDP协议进行深入探讨。
ARP网络寻址协议应用。我们从位于网络驱动程序之上的第一层软件层IP协议开始。但在此之前,我们必须首先了解IP地址和地址解析的概念。为了在网络上标识一台计算机,这台计算机必须具有一个唯一的地址,这就是我们熟知的IP地址。但是以太网硬件设备并不理解IP地址,它们的寻址必须基于以太网控制器的物理地址,也就是媒体访问控制(MAC)地址来进行。因此,IP地址必须经过转换或称映射到物理地址,这个工作就由ARP(地址解析协议)来完成。
参考实验二十五ARP网络寻址实验
IP和ICMP协议的应用。IP(网际协议)在OSI七层协议模型中位于数据链路层之上的网络层。IP协议屏蔽下层各种物理网络的差异,向上层(主要是TCP协议或UDP协议)提供统一的IP数据报。它是位于网络硬件驱动程序之上的第一层软件层,ICMP(网际控制消息协议)则是它的附属协议。IP协议本身没有获取差错信息的机制,为了能够动态地反映数据报的投递情况,为IP协议增加了这个附件:ICMP协议。IP和ICMP的主要作用就是进行网络路由。IP提供静态路由信息,而ICMP则提供动态路由信息。
参考实验二十六IP和ICMP协议应用实验
UDP数据报传输应用。UDP(用户数据报协议——User Datagram Protocol)在协议栈中位于IP之上的传输层,采用UDP协议可以实现在网络上发送和接收数据。UDP是一个简单的传输协议,它实际上是直接利用IP协议进行数据报的传输,也就是将报文包含在IP数据包中。我们说UDP的数据传输是无连接、不可靠的,因为它不像TCP(传输控制协议)那样,为了达到目标,首先要在两点之间建立一个可靠的连接,这个工作也使TCP实现起来相当复杂。UDP则简洁得多,虽然它是无连接的,但在很多场合下它仍然被采用。例如在多媒体应用中,常用TCP实现数据传输,UDP则实现音频/视频传输。事实上,如果在UDP的上层加入一些用户自定义的通讯协议,用来实现判断是否连接良好或进行多次重试,UDP也可以变得灵活而可靠。
参考实验二十七UDP数据报传输应用
图形用户界面系统(GUI)
     GUI是英文Graphics User Interface的缩写,即图形用户界面。在计算机的发展历史中,GUI的出现是一次革命。它提供友好的界面,使得计算机成为我们大多数人都能够使用和接受的工具。我们每天看到的 Windows系统就是PC机领域占主导地位的GUI系统。  
    与PC机不同,由于嵌入式系统实时性要求非常高,对GUI的要求也更高。嵌入式系统一般不希望建立在庞大累赘的、非常消耗系统资源的操作系统和GUI之上,比如Windows,太过庞大和臃肿。因此,嵌入式系统对轻型GUI的需求更加突出。嵌入式系统对GUI的基本要求包括轻型、占用资源少、高性能、高可靠性及可配置。
    在一些界面功能要求简单的嵌入式系统中,我们可以自行编写一些函数集,来进行图形、文字的显示。但是,对于要求界面功能强大的系统,往往就需要专业的GUI软件包来完成。近来的市场需求显示,越来越多的嵌入式系统,包括PDA、机顶盒、DVD/VCD播放机、WAP手机等系统均要求提供全功能的Web浏览器,包括 HTML 4.0、javascript,甚至Java虚拟机的支持。而这一切均要求有一个功能强大、且具有高性能、高可靠性的GUI的支持。
     在ARMSYS中,我们将以一个嵌入式GUI为实例,从它的移植、基本图形文字显示的应用到汉字的显示、视窗控件的显示和动画显示应用等各个方面来认识GUI的应用。

Windows风格的视窗控件系统
GUI的移植与基本应用。移植是指对GUI进行配置和修改,使它能够在你的目标系统上运行。GUI的采用与硬件系统也是密切相关的,要针对处理器、LCD控制器、输入设备(例如触摸屏、键盘等)的特点,有时还要针对特定的编译器进行相应的配置和修改才能保证GUI得以顺利运行。
参考实验十九GUI系统的移植与应用实验
图形文字显示基本应用。便利地显示各种图形和文字是GUI的首要任务,GUI提供的文字显示API(仅限于英文字母)函数,其功能包括字符显示、字符串显示、显示定位、文本对齐,并且提供多种显示模式;图形显示功能包括:绘制点、直线、曲线、多边形、原型和位图。对这些API函数赋以适当地参数值,并进行合理的组合调用,就可以绘制出各种各样所需的图形或文字。
参考实验二十图形文字显示基本应用实验
汉字显示应用。在GUI中加入汉字的显示是应用GUI是通常要面对的一个问题。GUI系统通常都提供一个字库模板或转换工具给用户来实现不同文字库的转换和生成。
参考实验二十一汉字显示应用实验
视窗控件的应用。 PC机上安装的Windows操作系统所提供的视窗环境是我们早已接受并且已经习惯使用的GUI环境。为了适应这种习惯,我们采用的GUI也提供了类似的窗体和各种控件的显示功能。窗体和控件的使用会使图形界面显得更加友好、方便。作为一款嵌入式GUI产品,在提供视窗环境的支持同时也将消耗的资源降到最低;这使我们有可能在多数嵌入式应用中加入类似桌面系统般友好和美观的界面。
参考实验二十二视窗控件应用实验
动画显示应用。GUI采用一定的技巧来满足动画显示中两个要求:提供一个方便调用、满足各种动画绘制的API函数,实现动画的无闪动显示。这个GUI采用了一种称为存储器设备驱动(memory device)的机制实现无闪动的动画显示功能。
参考实验二十三动画显示应用实验
  集成开发环境(IDE)


ARM Software Development Toolkit(SDT) V2.51
+简易JTAG模块,构成编译、在线仿真调试环境。
该方案实用而廉价,适于学生学习和小型项目的开发。
ARM Developer Suite (ADS) V1.2
+Multi-ICE兼容仿真器,构成编译、在线仿真调试环境。
该方案需要一定资金投入,但工具更为完善、下载速度快, 适于较大型项目的研发。
   仿真器

采用简易型JTAG仿真器时的开发环境

简易型JTAG仿真器
     采用一片244作为电平转换,在主机上必须运行一个协议转换软件:JTAG.exe;在ADW上进行相应的选项设置即可。
     可以实现所有调试功能,如单步、断点等。缺点是下载程序速度较慢(注意,这不影响程序运行的速度,运行的速度仅与CPU速度有关),下载上M的大型程序时会感到等待时间较长。


Multi-ICE全兼容仿真器

ARMSYS-ICE仿真器
◆完整实现ARM RDI 1.5和RDI 1.51标准,与ARM Multi-ICE 兼容,支持ARM SDT、ADS、RDS及所有遵从RDI接口标准的调试器,如GreenHills Multi2000、IAR EWARM、WinCE Platform Builder等;
◆提供极高的下载速度(120Kbytes/S~200Kbytes/S)和单步执行能力(每秒钟可以单步80次)
......
注意,ARMSYS-ICE仿真器是独立于ARMSYS-I实验箱的选配件。

Bootloader

  Bootloader的概念 
      
    简单地说,Boot Loader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。
ARMSYS的Bootloader (文件名为44bapp)
   ARMSYS的Bootloader,除了提供在上电时对硬件的初始化之外,还提供以下功能:
(1)对ARMSYS上硬件模块的功能检测;
(2)对Nandflash的FAT16格式化;
(3)启动USB接口,将二进制文件通过USB接口下载至SDRAM特定地址处;
(4)将二进制文件通过USB口下载至Nandflash;
(5)USB下载并烧录至Bootflash特定地址处;
(6)将程序从Bootflash地址拷贝到SDRAM地址处;
(7)从SDRAM特定地址处开始运行;
(8)(采用默认地址)启动uClinux;
(9)运行Nandflash中保存的文件。
下载最新版的Bootloader


上电启动后Bootloader通过串行口的输出
  USB下载器

USB下载器的运行界面

USB下载器
    USB接口是一种速度非常快的数据传输接口。ARMSYS利用全速USB接口来将二进制代码的快速下载到目标系统。ARMSYS提供了左图所示的USB下载器,配合Bootloader既可以通过USB接口进行:
(1)将二进制文件下载至SDRAM特定地址处;
(2)将二进制文件通过USB口下载至Nandflash;
(3)将二进制文件下载并烧录至flashROM特定地址处;

    以上功能在进行各种调试开发,特别是在进行uClinux操作系统的移植和应用开发时用户将感到十分便利!
下载最新版的USB下载器
  flash烧录
fluted  空片烧录工具,通过简易JTAG仿真器进行烧录(主机上需要运行JTAG.EXE),缺点是烧录的速度较慢。
下载fluted工具
Bootloader中提供的烧录工具  方便、速度快。但是要求目标系统已经装有Bootloader。
下载最新版Bootloader
串口动态观察
串口打印   最为常用、便利的调试工具,程序运行过程中向串口发送一条信息,可以打印出你所想查看的变量值等。ARMSYS提供的串口打印函数与C语言中实现控制台打印的printf函数功能相同,函数原型:Uart_Printf(char *fmt,...),例如查看变量i的值,添加一条:Uart_Printf("\ni=%x",i);即可。
 
ARMSYS的实验项目
   ARMSYS采用的配套实验教材《嵌入式系统设计与开发实例详解》目前正在北京航空航天出版社出版中,预计于10月份面世,界时将为每一位购买ARMSYS实验平台产品的客户免费赠送该教材,敬请关注。
 实验一、 ARMSYS平台开发环境及工具熟悉

实验目的:
(1)认识ARMSys提供的开发环境;
(2)学习如何使用SDT2.5工具软件进行ARM系统开发;
(3)学习如何进行仿真调试;
(4)如何在ARMSys上进行代码固化。
实验要求
(1) 利用工程模板source\template.apj,在SDT2.5的APM(项目管理器)中建立新的工程,在工程中加入source\Helloworld\Target目录中提供的文件;
(2) 编写主程序文件main.c,并将文件加入到工程中;
(3) 正确设置编译器的编译选项,并对工程进行编译、除错,最终产生可执行的映像文件(*.axf)和二进制代码(*.bin)文件;
(4) 打开超级终端,正确配置串口参数;
(5) 采用ADW(ARM视窗调试器)通过JTAG模块下载可执行程序,并仿真调试,观察实验现象;
(6) 采用ARMSys提供的USB口代码下载工具下载二进制代码,并观察运行情况。

 实验二、 FlashROM器件应用实验
实验目的
(1) 学习flash ROM器件SST39VF160的相关知识;
(2) 学习flash ROM与S3C44B0X的接口电路和器件操作编程。
实验要求
(1) 编写程序,擦除SST39VF160的最后一个扇区;
(2) 进行空检查,读出被擦除的扇区的内容,如果全为0xffff,说明这个扇区为空,可以继续进行下面的写入步骤。
(3) 编写程序,在该扇区内写满0xaa55;
(4) 读出校验,看写入是否成功;
(5) 再次擦除该扇区内容。

 实验三、SDRAM器件应用
实验目的
(1) 了解两种RAM(SRAM和DRAM)的工作原理和应用特点,重点理解SDRAM(同步动态RAM)器件的工作原理和应用;
(2) 掌握SDRAM与S3C44B0X的接口电路和编程操作。
实验要求
编写程序,在SDRAM的0x400000-0x4000ff 地址(对应处理器的0xC400000~0xC4000ff 地址)空间写入0xAA55,然后读出校验;
 实验四、 Nandflash器件应用
实验目的
(1)学习Nand-flash典型器件K9F5608U0B(或K9F2808U0B)的结构特点和应用特点;
(2)学习Nand-flash与S3C44B0X的接口电路和基本编程操作。
实验要求
(1) 编写程序,读出器件的识别码(ID);
(2) 对K9F5608U0B(或K9F2808U0B)的最后一个块进行擦除操作;
(3) 对被擦除的块的第一个扇区全部写入0xAA;
(4) 然后读出每个字节校对是否为0xAA。
 实验五、通用I/O的应用——矩阵式键盘
实验目的
(1) 掌握S3C44B0X的I/O口的功能特点;
(2) 掌握对I/O口的基本编程操作。
实验要求
4×4矩阵键盘的每个键的对应字符如下:
7, 8, 9, /,
4, 5, 6, *,
1, 2, 3, -,
0, ., +, \n
编写4×4矩阵式键盘的驱动程序,使得当某个键被按下时,超级终端上显示出该键对应的字符。
 实验六、外部中断处理程序设计
实验目的
(1) 学习ARM处理器中断机制的工作原理;
(2) 掌握编写中断处理程序的方法。
实验要求
按下EINT4/5/6/7对应的按键触发外部中断,利用对应的中断处理程序,在超级终端上输出与按下键相对应的“EINT4”或“EINT5”或“EINT6”或“EINT7”字符串。
 实验七、UART异步串行接口应用
实验目的
(1) 学习如何进行UART串口工作参数的设置;
(2) 如何进行UART数据的接收和发送。
实验要求
编写函数myUart_Send(char *str),其功能是将字符串*str发往UART串口,并在超级终端上显示出来。
 实验八、定时器应用
实验目的
(1) 学习定时器的工作原理和应用;
(2) 掌握定时中断的处理程序编程;
(3) 利用定时器的PWM功能,产生一定占空比的PWM脉冲波形。
实验要求
(1)编写程序,令TOUT0输出频率为16K,占空比为30%的PWM脉冲调制波形;
(2)编写程序,定时约0.5秒后产生定时中断。
 实验九、实时日历时钟(RTC)应用
实验目的
通过实例来学习S3C44B0X内置RTC的应用。
实验要求
编写程序,向RTC写入初始化时间。随后等待串口的字符输入,一旦接收到串口输入的‘D’命令,立即向串口输出显示当前日期和时间(包括年、月、日、星期、时、分秒)。
 实验十、 LCD接口应用
实验目的
(1) 了解STN型彩色LCD显示屏的工作原理和接口;
(2) 掌握S3C44B0X与LCD显示屏的接口电路;
(3) 掌握实现在LCD上显示某种色彩、绘制简单图形的编程。
实验要求
(1) 编写程序,在LCD显示屏上依次显示全红、全绿、全蓝、全白色;
(2) 编写程序,在白色背景下,在显示屏中心位置显示一个80×80的正方形,在正方形中以1秒为间隔依次显示256种颜色。

 实验十一、I2C接口应用
实验目的
(1) 学习I2C总线的工作原理和应用特点;
(2) 掌握24LC0X I2C总线串行EEPROM器件的应用;
(3) 掌握S3C44B0X中I2C接口的基本操作编程。
实验要求
(1) 编写程序,在24LC04B内部的0~0xff地址处依次写入0~255;
(2) 编写程序,将24LC04B内部的0~0xff地址处数据读出,并校验(1)步的写入是否成功。
 实验十二、A/D转换器应用
实验目的
(1)了解逐次逼近式ADC的工作原理;
(2)掌握S3C44B0X内部ADC的基本应用方法。
实验要求
(1) 参考本章3.1节提供的电路,连接3组“模拟信号产生电路”;
(2) 编写程序,以300ms时间间隔对3组模拟信号进行一次A/D转换,并将转换结果的数值从串口输出,显示到超级终端上。
 实验十三、 触摸屏应用
实验目的
(1) 触摸屏的工作原理和应用特点;
(2) 掌握S3C44B0X与触摸屏的驱动控制器ADS7843的接口电路和操作编程。
实验要求
(1) 连接S3C44B0X与ADS7843的接口电路;
(2) 编写程序,每当用手指在触摸屏上按压,按下的触点位置坐标(x,y)就立即在超级终端上显示出来。
 实验十四、 USB接口应用
实验目的
(1)了解USB接口工作原理;
(2)了解其硬件电路组成;
(3)掌握固件编程方法。
实验要求
本实验实现一个这样的USB批量数据传输设备:在PC机端采用USBdownload.exe程序通过USB接口下发任意一个文本文件(后缀.txt),ARMSys目标系统通过USB接口接收该文件,再通过串口发送至PC机串口在超级终端上显示出接收到的文本内容。
按照以下要求来编写符合以上功能要求的USB固件:
(1)增加控制端点对BULK_SEND_FILENAME请求的响应。
(2)增加控制端点对BULK_SEND_FILE请求的响应。
端口定义为:
端口0:控制端口;
端口1:批量传输IN端口;
端口2:批量传输OUT端口。
 实验十五、以太网控制器接口应用
实验目的
(1) 了解关于以太网的概念、组成及以太网协议数据包的格式;
(2) 掌握RTL8019以太网控制器的工作原理;
(3) 掌握S3C44B0X与RTL8019的接口电路;
(4) 掌握RTL8019的驱动程序的编程。
实验要求
按照核心板与以太网模块的电路;
编写程序,对以太网控制器进行热复位;复位成功后,对以太网控制器寄存器进行初始化。读取以太网控制器的物理地址,并设置物理地址。将复位是否成功的情况信息,和控制器物理地址发送到串口显示输出。
 实验十六、μC/OS-II的移植与应用
实验目的
(1)学习如何在S3C44B0X上移植μC/OS-II操作系统;
(2)掌握如何在μC/OS-II操作系统集成上编写多任务应用程序。
实验要求
基于移植好的μC/OS-II编写应用程序。
创建具有不同优先级的3个任务Task1、Task2和Task3。这3个任务分别以1秒、2秒、3秒为时间间隔在串口上输出“TASKn”字符串,这里的n为任务代号(对应Task1、Task2和Task3分别为1,2,3)。
在这个实验中,我们将每个任务的挂起时间(任务执行时间间隔)延长至秒级,这样读者可以清楚地看到任务的执行次序。这种次序是由μC/OS-II调度机制(优先级机制)决定的。
 实验十七、 μC/OS-II的多任务管理和任务间通讯
实验目的
(1) 掌握各种任务管理操作函数的功能和应用;
(2) 掌握任务间采用消息队列进行通讯的应用方法。
实验要求
(1)参考实验十二的3.1节,连接ARMSys核心板与3组模拟信号产生电路;
(2)基于移植好的μC/OS-II进行编程。创建具有不同优先级的4个任务MAIN_TASK、KEY_TASK、TASK1、TASK2和TASK3。各任务的职能描述如下: ……
 实验十八、μC/OS-II中断处理程序设计
实验目的
(1) 学习如何在μC/OS-II中应用ARM处理器的中断机制;
(2) 掌握如何编在μC/OS-II中基础上编写中断处理程序;
(3) 学习如何实现中断处理程序和任务间的通讯。
实验要求
编写程序,建立TaskA,TaskB,TaskC和TaskISR。
TaskA,TaskB, TaskC三个任务的优先级从高到低,它们的工作内容相同,都是在串口上连续输出10个“Taskn”字符串,然后将自身挂起500ms时间。
TaskISR在所有任务中优先级最高。……
编写外部中断服务程序(ISR),对中断进行响应和处理,并向TaskISR发送一个包含按键序号的信息(推荐采用“邮箱”进行通讯),唤醒TaskISR进入就绪状态运行。
……
 实验十九、GUI系统的移植与应用
实验目的
(1) 了解如何移植GUI软件包;
(2) 掌握GUI提供的API函数的基本应用。
实验要求
(1) 根据ARMSys的LCD显示硬件电路,为GUI定义底层硬件驱动函数: LCD_INIT_CONTROLLER(void):对LCD显示进行初始化;
LCD_WRITE_MEM(Index, Data):在显示缓冲区指定地址写入数据;
LCD_READ_MEM(Index):读出显示缓冲区指定地址的数据。
(2) 基于GUI,编写Hello world程序,要求在LCD上显示“Hello world!”字符串。在LCD显示平面坐标(20,20)处,显示一个小于10000的整数,该整数不断循环加1,每次加1后立即更新显示,从而反应显示输出的速度。效果如下图:
 实验二十、图形文字显示基本应用
实验目的
(1) 学习应用GUI提供的API函数实现字母文字的显示和不同字体的设置;
(2) 掌握应用GUI提供的API函数绘制各种图形。
实验要求
编写主程序,在LCD上显示以下表盘图形:
 实验二十一、汉字显示的应用
实验目的
学习在GUI下如何实现汉字的显示。
实验要求
编程写程序,在LCD屏上显示:
 实验二十二、 GUI的视窗和控件应用
实验目的
按钮、文本框、滚动条等,都是我们非常熟悉的视窗控件。在μC/GUI中,视窗控件也是窗体的一种,并且是具有对象类型属性的窗体。因此,控件的显示管理与窗体相同。本实验的目的是:
掌握如何在GUI下实现窗体和控件的应用。
实验要求
编程写程序,在LCD屏上显示对话框
 实验二十三、 GUI中的动画显示应用
实验目的
emWin采用一种称为存储器设备驱动(memory device)的机制实现无闪动的动画显示功能。本实验将学习这一机制的工作原理,并利用emWin提供的API函数,进行动画显示的编程实现。
实验要求
编写程序,绘制一个水平方向上向左移动的两条正弦波形曲线,如下图所示
 实验二十四、基于Nand-flash的文件系统
实验目的
(1) 学习FAT16文件系统的存储结构;
(2) 掌握如何将FAT16移植到Nand-flash上;
(3) 掌握使用文件I/O函数。
实验要求
(1) 编写程序,根据FAT16对存储结构的要求,完成对Nand-flash的格式化;
(2) 编写程序,完成文件系统初始化(读取引导区参数,初始化全局变量);
(3) 编写主程序,在ARMSys平台上使用文件I/O函数进行文件操作,验证以下函数的功能:
 实验二十五、 ARP地址解析实验
实验目的
本实验学习如何编程实现TCP/IP协议栈中的底层协议:ARP地址解析。
实验要求
编写程序,实现一个具有IP地址扫描功能的ARP地址解析工具:Arpscan。Arpscan在客户模式下向子网发送广播请求,在服务器模式下则响应ARP请求回送接ARP应答。

 实验二十六、IP与ICMP应用实例
实验目的
ICMP数据报则专门用作“错误侦测和回报”的消息,当路由出现问题时,就将这个消息动态地回报给发送者。
本实验学习如何编程实现标准的网络诊断工具Ping,从中体会IP和ICMP协议的内容和作用。
实验要求
编写程序,在ARMSys上实现标准Ping工具。Ping运行在客户模式下时向服务器发送带有数据的ICMP 回送(echo)请求。在服务器模式下则响应客户端的请求,产生ICMP应答并回送接收到的数据。用网线(交叉线)连接ARMSys的以太网模块和PC机的网卡适配器,实现ARMSys和PC机之间的互相Ping。

 实验二十七、 UDP数据报传输应用
实验目的
UDP(用户数据报协议——User Datagram Protocol)在协议栈中位于IP之上的传输层,采用UDP协议可以实现在网络上发送和接收数据。
通过一个PC机和ARMSys之间进行UDP数据传输的实验来实现UDP在ARM系统上的应用。
实验要求
编写程序,实现一个具有回送(echo)数据功能的UDP工具:Datagram。Datagram在客户模式下向服务器请求回送服务,在服务器模式下则响应客户请求回送接收到的UDP数据。它跟ping的功能上有一些相似,同样是回送数据。但是Datagram是通过UDP数据报来进行数据传输,而不是ICMP消息。



上一篇:ARMSYS-I型嵌入式系统教学实验平台简介PDF文档 下一篇:没有了