1、 语言类综合项目实践报告语言类综合项目实践报告 学生姓名:学生姓名: 学学 号:号: 指导教师:指导教师: 实验时间:实验时间: 年年 月月 日日 1、课程设计目的 本课设目的是对在裸板上进行一些初始化操作,实现 UART 串口通讯驱动, 即实现 PC 端与开发板间串口的通讯,从 PC 终端输入字符,开发板再将其返回到 PC 终端(也叫回显) 。驱动程序的实质即对硬件资源的管理。 2、课程设计任务 了解串口通信基本原理,查看开发板上 datasheet 上关于串口的连接方式, 以及其特点;根据 ARM mini2440 的硬件原理,设置对应的寄存器,用程序初始 化串口硬件,控制串口硬件实现字符
2、串接收、发送等功能。编程实现 ARM UART (Universal Asynchronous Receiver and Transmitter)通讯。 主要任务为:1、设置管脚模式;2、设置通信模式(8 个数据位,1 个停止 位,无校验) ;3、设置数据读取模式(中断、轮询) ;4、设置是否用硬件缓存 (FIFO,NONFIFO) ;5、设置是否启用硬件流控;6、设置传输速度:波特率。 3、裸板串口的设计 3.1 需求分析数据流程图 3.1.1 顶层数据流图 PC机终端 Tiny Mini2440裸板 裸板串口驱动 程序 输入信息输入信息 回显信息 回显信息 3.2 概要设计程序结构图 3.
3、3 详细设计程序流程图 4、裸板串口的实现 4.1 关看门狗 4.1.1 代码 4-1 LDR R0,=0x53000000 (1) MOV R1,#0x0 STR R1,R0 时钟设置开始 设置变频锁定时间 设置FCLK:HCLK: PCLK的分频比 设置系统时钟工作 频率 串口设置开始 设置管脚模式 设置通信模式 设置数据读取模式 (中断/轮询) 设置是否启用硬件 缓存(FIF0,NON- FIFO) 设置是否启用硬件 流控 设置传输熟读:波 特率 开始 关看门狗 中断屏蔽 时钟设置 内存初始化 堆栈初始化 串口设置 4.1.2 注释 看门狗定时器控制寄存器 寄存器 地址 描述 复位值 W
4、TCON 0x53000000 看门狗定时器控制寄存器 0x8021 4-1(1)设置看门狗定时器控制寄存器的值,看门狗定时器内部有一个递减计数器,当该计 数器递减为 0 的时候,会产生复位控制器信号,自动重启控制器。在这里,我们为了防止看 门狗产生复位控制器信号,将机器重启,所以要将看门狗定时器控制寄存器中的内容赋 0, 使看门狗定时器无效. 4.2 关中断 代码 4-2 LDR R0,=0x4A000008 (1) LDR R1,=0x3ff STR R1,R0 中断屏蔽寄存器 寄存器 地址 读写 描述 复位值 INTMSK 0x4A000008 R/W 决定哪个中断源被屏蔽 0=中断服务
5、无效 1=中断服务有效 0xFFFFFFFF 4-2(1)设置中断屏蔽寄存器。中断屏蔽寄存器该寄存器包括 32 位,每个都是和一个中断 源相关。如果某位置 1,则 CPU 不会服务相应中断源的中断请求。如果屏蔽位为 0,中断请 求可以被服务。这里我们将 0x3ff 写入中断屏蔽寄存器中是将所有的中断服务屏蔽。因为这 里我们这里只需执行一个简单的数据传输服务, 如果中断服务没有被屏蔽, 那我们的传输过 程中就可能受到中断服务的影响, 导致传输服务停止或出错。 所以在最开始我们就要屏蔽掉 中断服务。 WTCON 位 描述 初始值 Watchdog timer 【5】 看门狗定时器使能位。 0=无效 1=有效 1 Reset enable/disable 【1】 对于复位信号看门狗定时器 输出使能位。 1:看门狗定时器曹氏,发出 s3c2440A 复位 信号。 0:看门狗定时器复位功能无效 1 Interrupt generation 【2】 中断使能位 0=无效 1=有效 0 4.3 时钟设置 代码 4-3 LDR R0,=0x4C000000 (1) MOV R1,#0xFFFFFFFF STR R1,R0