| 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消息。
|