收藏 分享(赏)

ARM综合实验.pdf

上传人:HR专家 文档编号:6037075 上传时间:2019-03-25 格式:PDF 页数:47 大小:1.15MB
下载 相关 举报
ARM综合实验.pdf_第1页
第1页 / 共47页
ARM综合实验.pdf_第2页
第2页 / 共47页
ARM综合实验.pdf_第3页
第3页 / 共47页
ARM综合实验.pdf_第4页
第4页 / 共47页
ARM综合实验.pdf_第5页
第5页 / 共47页
点击查看更多>>
资源描述

1、版权声明:本课件及其印刷物、视频的版权归成都国嵌信息技术有限公司所有,并保留所有权力:任何单 位或个人未经成都国嵌信息技术有限公司书面授权,不得使用该课件及其印刷物、视频从事商业、教学活 动。已经取得书面授权的,应在授权范围内使用,并注明 “来源:国嵌 ”。违反上述声明者,我们将追究其 法律责任。 ARM ARM 综合实例综合实例 谢伟谢伟 著著 技术咨询 QQ: 550491596 1327229087 技术咨询电话 : 028-88820953 028-66501487 Contents S3c2440 GPIO LED程序设计 按键程序设计 ARM中断与异常 串口程序设计 技术咨询 Q

2、Q: 550491596 1327229087 技术咨询电话 : 028-88820953 028-66501487 Contents S3c2440 GPIO LED程序设计 按键程序设计 ARM中断与异常 串口程序设计 技术咨询 QQ: 550491596 1327229087 技术咨询电话 : 028-88820953 028-66501487 S3c2440 GPIO S3C2440有 130个 IO口 , 分为 AJ共 9组 : GPA、 GPB 、 GPC GPJ, 可以通过设置寄存器 来 确定某 个 IO 口 用 于输入 、 输出还是 其 他特殊功能 。 比如可以设置 GPH6做

3、为一般 的 输入 、 输出端口 ,或者用 于串口 。 对 GPIO的 操作是 所有 硬 件 操作 的 基础 , 由此扩展开 来 可 以了解 所有 硬 件的 操作 , 这是 嵌 入式开发 人 员必须掌握 的。 技术咨询 QQ: 550491596 1327229087 技术咨询电话 : 028-88820953 028-66501487 操作 GPIO 可以通过读 取 一 个 IO对 应的 寄存器 来 确定 该 IO 口 的电 平是高还是低;还可以通过 其 他 的 寄存 器 来 控制它 。 对于这几组 GPIO, 他 们 对 应的 寄存 器是相似 的 ; GPxCON用 于选择引脚功能 , GP

4、xDAT用 于读 /写引脚数据;另外 , GPxUP用 于 确定是否 使用内 部 上 拉 电 阻 。其 中 x为 A、 B H、 J等 。 技术咨询 QQ: 550491596 1327229087 技术咨询电话 : 028-88820953 028-66501487 从 寄存器 的 名字可以看出 , 它属于配置 ( Confugure) 寄存器 选择 IO的 功能 。其 中 PORTA与 PORTBPORTJ在 功能选择 方 面有所 不 同 。 GPACON中 每 一 位 对 应 一 个 IO口 ( 共 23个 ) 。 当 某 位 为 0时 , 相 应的 IO为输出; 当 某 位 被 置为

5、1时 , 相 应的 引脚为 地址线 或用 于 地址 控制 。 GPxCON寄存器 技术咨询 QQ: 550491596 1327229087 技术咨询电话 : 028-88820953 028-66501487 GPxCON寄存器 PORTBPORTJ在 寄存器操作 方 面 完全 相 同 , GPxCON中 每两 位 控制一 根 引脚 : 00表示 输 入 、 01表示 输出 、 10表示 特殊功能 、 11保留不 用。 技术咨询 QQ: 550491596 1327229087 技术咨询电话 : 028-88820953 028-66501487 GPxDAT寄存器 GPxDAT寄存器 用

6、于读 /写引脚 : 当 引脚 被 设 为输入 时 , 读此寄存器可 知 相 应 引脚 电 平 状 态 是高还是低; 当 引脚 被 设为输出 时 , 写此 寄存器相 应的位 可 令 此引脚输出高 电 平 或 低 电 平 。 技术咨询 QQ: 550491596 1327229087 技术咨询电话 : 028-88820953 028-66501487 GPxUP寄存器 GPxUP: 某 位 为 1时 , 相 应 引脚 无 内 部 上 拉 电 阻;为 0时 相 应的 引脚 使用内 部 上 拉 电 阻 。 技术咨询 QQ: 550491596 1327229087 技术咨询电话 : 028-8882

7、0953 028-66501487 Contents S3c2440 GPIO LED程序设计 按键程序设计 ARM中断与异常 串口程序设计 技术咨询 QQ: 550491596 1327229087 技术咨询电话 : 028-88820953 028-66501487 LED程序设计 LED 是开发中 最 常 用的 状态指示 设 备 ,本 开发 板具 有 4 个用 户 可 编 程 LED, 它 们 直接 与 CPU 的 GPIO 相 连接 , 低 电 平 有 效 (点亮 ), 详细 的 资 源 占 用 如 下表 : 技术咨询 QQ: 550491596 1327229087 技术咨询电话 :

8、 028-88820953 028-66501487 LED原理图 技术咨询 QQ: 550491596 1327229087 技术咨询电话 : 028-88820953 028-66501487 先 将 相 应的 引脚设置为输出 模 式 , 然 后 相 应的 引脚输出低 电 平 即 可 点亮 LED灯 。 LED设计 思想 技术咨询 QQ: 550491596 1327229087 技术咨询电话 : 028-88820953 028-66501487 实 现跑马灯 程序 实 验 一 技术咨询 QQ: 550491596 1327229087 技术咨询电话 : 028-88820953 028

9、-66501487 以 二进 制 方 式 依次显示 0-15 实 验二 技术咨询 QQ: 550491596 1327229087 技术咨询电话 : 028-88820953 028-66501487 Contents S3c2440 GPIO LED程序设计 按键程序设计 ARM中断与异常 串口程序设计 技术咨询 QQ: 550491596 1327229087 技术咨询电话 : 028-88820953 028-66501487 CPU运行 过程中 , 如 何 知道各类 外设发 生 了某 些 不 预期 的事件, 比如串口 收到 数 据 、 按键按 下 等 ? ARM中断 机 制 技术咨询

10、QQ: 550491596 1327229087 技术咨询电话 : 028-88820953 028-66501487 1.查 询 方 式 程序 不 断 地查 询 各 设 备 的 状态 ,并 做出相 应的反应。 他 实 现 比 较简 单, 常 用在 比 较 单 一 的 系统 中 , 比如一 个 温 控 系统 中可以 实用 查 询 方 式 不 断 检测温度 的 变化 。 缺点 是 占 用 CPU资 源 过高 ,不 适 应 多 任 务 的 系 统 。 ARM中断 机 制 技术咨询 QQ: 550491596 1327229087 技术咨询电话 : 028-88820953 028-66501487

11、 2.中断 方 式 当 事件 发 生时 , 硬 件 会 设置某 个 寄存器; CPU再每执行完 一 个 指令时 , 通过硬 件 查 看 这 个 寄存器 , 如 果 所 关 注的事件 发 生 了 , 则 中 断 当前 程序 流 程 , 跳转 到 一 个 固 定 的 地址 处 理 这 个事件, 最后 返回 被 中断 的 程序 。 它 的实 现 相对 复杂 , 但 是 效 率 较 高 , 是常 用的 方 法。 ARM中断 机 制 技术咨询 QQ: 550491596 1327229087 技术咨询电话 : 028-88820953 028-66501487 中断 处 理流 程 : ( 1) 中断控制

12、器 汇集 各类 外设发出 的 中断 信 号 , 然后 告诉 CPU。 ( 2) CPU保 存 当前 程序 的 运行 环 境 , 然后 调 用 中断 服 务 程序 ( ISR) 来 处 理 中断 。 ARM中断 机 制 技术咨询 QQ: 550491596 1327229087 技术咨询电话 : 028-88820953 028-66501487 ARM中断 机 制 ( 3) 在 ISR中通过读 取 中断控制寄存器 、 外设 的 相 关 寄存器 来 识别 是 哪 个 中断 ,并 进行 相 应 的 处 理 。 ( 4) 清除 中断 : 通过读写相 关 中断控制寄存器 和 外设相 关 寄存器 来实

13、现 。 ( 5)最后 恢复 被 中断程序 的 环境 , 继续 执行 。 技术咨询 QQ: 550491596 1327229087 技术咨询电话 : 028-88820953 028-66501487 中断控制寄存器 1.SUBSRCPND寄存器 ( SUB SOURCE PENDING) 2.INTSUBMSK寄存器 ( INTERRUPT SUBMSK) 3.SRCPND寄存器 ( SOURCE PENDING) 4.INTMSK寄存器 ( INTERRUPT MASK) 5.INTMOD寄存器 ( INTRRUPT MODE) 6.PRIORITY寄存器 7.INTPND寄存器 ( IN

14、TERRUPT PENDING) 8.INTOFFSET寄存器 ( INTERRUPT OFFSET) 技术咨询 QQ: 550491596 1327229087 技术咨询电话 : 028-88820953 028-66501487 SUBSRCPND寄存器 ( SUB SOURCE PENDING) SUBSRCPND寄存器 用来 标 示 INT_RXD0, INT_TXD0等 子 中断是否发 生 。 S3C2440有 这 样 的 15个 子 中断 。 每 一 位 对 应 一 个 子 中断 。 当 这 些 子 中断发 生 , 并 且子 中断 未 被 屏蔽 , 则 它 们 当 中 的 若干 位

15、 则 汇集 在 SRCPND上。例 如 : SUBSRCPND寄存器中 的 3个 中断 INT_RXD0、 INT_TXD0、 INT_ERR0, 只要 有 一 个 发 生 了 , 且没 有 被 屏蔽 , 则 SRCPND的 INT_UART0位 被 置 1. 清 中断 时 只要往 SUBSRCPND寄存器中某 位 写入 1即 可 。 技术咨询 QQ: 550491596 1327229087 技术咨询电话 : 028-88820953 028-66501487 INTSUBMSK寄存器 用来 屏蔽 SUBSRCPND寄存器 所 标 示 的 中断 。 INTSUBMSK寄存器中某 位 被 设为

16、 1时 , 对 应的 中断 被 屏蔽 。 设为 0时 , 表示 中断 允 许 。 INTSUBMSK寄存器 ( INTERRUPT SUBMSK) 技术咨询 QQ: 550491596 1327229087 技术咨询电话 : 028-88820953 028-66501487 SRCPND中 每 一 位用来 表示 一 个 ( 或 一 类) 中断 是否 已经 发 生 。 SRCPND寄存器操作与 SUBSRCPND寄存器相似 , 若 想 清除 某一 位, 往 此 位 写入 1。 SRCPND各 个位 对 应 哪 个 中断 , 参考 S3C2440的 数据 手册 SRCPND寄存器 ( SOURC

17、E PENDING) 技术咨询 QQ: 550491596 1327229087 技术咨询电话 : 028-88820953 028-66501487 INTMSK寄存器 用来 屏蔽 SRCPND所 标 示 的 中断 。 INTMSK某 位 被 设置为 1时 , 对 应的 中 断 被 屏蔽 , 设置为 0时 , 中断 允许 。 INTMSK 只 能 屏蔽 设为 IRQ的 中断 ,不 能 屏蔽 设为 FIQ 的 中断 。 INTMSK寄存器 ( INTERRUPT MASK) 技术咨询 QQ: 550491596 1327229087 技术咨询电话 : 028-88820953 028-6650

18、1487 INTMOD寄存器 ( INTRRUPT MODE) 当 INTMOD寄存器中某 位 被 设置为 1时 , 它对 应的 中断 被 设为 FIQ, 即 此中断发 生时 , CPU将 进 入 快速 中断 模 式 , 这通常 用来 处 理 特 别紧急 的 中断 。 当 某 位 被 置为 0时 , 表 示 为 IRQ中断 。 注 意 : 同 一 时 间里 , INTMOD上 只 能 有 一 位 被 设置为 技术咨询 QQ: 550491596 1327229087 技术咨询电话 : 028-88820953 028-66501487 INTPND寄存器 ( INTERRUPT PENDIN

19、G) 经 过中断 优 先 级仲裁 器选出 优 先 级 高 的 中断 后 , 这 个 中断 在 INTPND寄存器中 的 相 应位 被 置 1, 随 后 , CPU将 进 入中断 处 理模 式 处 理 它 。 同 一 时 间 内, 此寄存器 只 有 一 位 被 置 1; 在 ISR中可以 根 据这 个位 确定是 那 个 中 断 。 清除 该 中断 时 , 往 这 个位 写入 1。 技术咨询 QQ: 550491596 1327229087 技术咨询电话 : 028-88820953 028-66501487 这 个 寄存器 用来 表示 INTPND寄存器中 哪 位 被 置 1了 , 即 INTP

20、ND寄存器中 位 x为 1时 , INTOFFSET寄存器 的 值 为 x(x为 031)。在 清 除 SRCPND、 INTPND寄存器 时 , INTOFFSET寄存器 被 自 动 清除 。 INTOFFSET寄存器 技术咨询 QQ: 550491596 1327229087 技术咨询电话 : 028-88820953 028-66501487 Contents S3c2440 GPIO LED程序设计 按键程序设计 ARM中断与异常 串口程序设计 技术咨询 QQ: 550491596 1327229087 技术咨询电话 : 028-88820953 028-66501487 按键 原理图

21、 技术咨询 QQ: 550491596 1327229087 技术咨询电话 : 028-88820953 028-66501487 用 户 按键 技术咨询 QQ: 550491596 1327229087 技术咨询电话 : 028-88820953 028-66501487 使用 中断 方 式 设计一 个 按键程序 , 按 一 次点亮 一 个 LED 实 验 一 技术咨询 QQ: 550491596 1327229087 技术咨询电话 : 028-88820953 028-66501487 使用 查 询 方 式 设计一 个 按键程序 , 按一 次点亮 一 个 LED 实 验二 技术咨询 QQ:

22、 550491596 1327229087 技术咨询电话 : 028-88820953 028-66501487 Contents S3c2440 GPIO LED程序设计 按键程序设计 ARM中断与异常 串口程序设计 技术咨询 QQ: 550491596 1327229087 技术咨询电话 : 028-88820953 028-66501487 通 用 异 步 收 发器 简 称 UART, 即 “ Universal Asynchronous Receiver Transmitter” , 它 用来 传 输串 行 数据 : 发 送 数据 时 CPU将并 行 数据写入 UART, UART按

23、照 一定 的 格 式 在 一 根 电 线 上 串 行 发出; 接收 数据 时 , UART检测 另一 根 电 线 上的信 号 ,将 串 行 数据 放 在 缓冲区 中 , CPU可读 取 UART 获 得的 这 些 数据 。 UART基 本 原理 技术咨询 QQ: 550491596 1327229087 技术咨询电话 : 028-88820953 028-66501487 mini2440的 UART: UART基 本 原理 技术咨询 QQ: 550491596 1327229087 技术咨询电话 : 028-88820953 028-66501487 在使用 UART之 前 要 设置 波 特

24、 率 、 传 输 格 式 ( 有 多 少 个 数据 位、 是否 使用 校 验 位、 是 奇校 验 还是 偶校 验 、有 多 少 个 停止 位、 是否 使用 流 量 控制 ) ;对于 S3C2440, 还 要 选择 所 涉 及 管 脚为 UART功能 、 选 择 UART通 道 的 工 作 模 式为中断 模 式 或者 DMA模 式 。 设置 好之 后 往 某 个 寄存器写入数据 即 可发 送 , 读某 个 寄存器 即 可 得 到接收 的 数据 , 可以通过 查 询 状态 寄存器 或者 设置中断 模 式 来 获 知 数据是否发 送 或 接收完 毕 。 UART初始 化 技术咨询 QQ: 55049

25、1596 1327229087 技术咨询电话 : 028-88820953 028-66501487 ( 1) UBRDIVn寄存器 ( 2) ULCONn寄存器 ( 3) UCONn寄存器 ( 4) UFCON寄存器 ( 5) UMCONn寄存器 ( 6) UTRSTATn寄存器 ( 7) UERSTATn寄存器 ( 8) UTXHn寄存器 ( 9) URXHn寄存器 UART寄存器 技术咨询 QQ: 550491596 1327229087 技术咨询电话 : 028-88820953 028-66501487 在 UART 模 块 中 有 三 个 UART 波 特 率除 数寄存器 UBRD

26、IV0, UBRDIV1 和 UBRDIV2。 存 储 在 波 特 率除 数寄存器 UBRDIVn 中 的 值 用 于 决 定 波 特 率 , 如 下 : UBRDIVn = (int) ( UART clock / ( buad rate x 16) ) 1 例 如如 果 波 特 率 为 115200bps 且 UART 时 钟 为 40MHz, UBRDIVn = (int) (40000000 / (115200 x 16) ) -1 UBRDIVn寄存器 技术咨询 QQ: 550491596 1327229087 技术咨询电话 : 028-88820953 028-66501487 U

27、LCON寄存器 技术咨询 QQ: 550491596 1327229087 技术咨询电话 : 028-88820953 028-66501487 该 寄存器 用 于选择 UART时 钟 源、 设置 UART中断 方 式等 。 详 见 S3C2440的 手册 。 UCONn寄存器 技术咨询 QQ: 550491596 1327229087 技术咨询电话 : 028-88820953 028-66501487 该 寄存器 用 于设置是否 使用 FIFO, 设置 各 个 FIFO的 触 发 深 度 ,本 次 试 验 中 都未使用 该 寄存器 。 如 果 不使用该 寄存器 , 则 触 发 深 度 默认

28、 为 1。 UFCONn寄存器 技术咨询 QQ: 550491596 1327229087 技术咨询电话 : 028-88820953 028-66501487 UTRSTATn寄存器 技术咨询 QQ: 550491596 1327229087 技术咨询电话 : 028-88820953 028-66501487 UTXHn寄存器 : CPU将 数据写入这 个 寄存器 , UART会 将 它 保 存 到 缓冲区 中 ,并 自 动 发出 去 。 URXHn寄存器 : 当 UART收到 数据 时 , CPU读 取 这 个 寄 存器 , 即 可 获 得 数据 。 UART收 发 缓冲 寄存器 技术咨询 QQ: 550491596 1327229087 技术咨询电话 : 028-88820953 028-66501487 编 写串口 收 发程序 : 首 先 向 串口发 送 十 次 “ hello world”, 然后 等 待 键 盘 输入字 符 R, 然后 蜂鸣 器 连 续 响 5次 。 实 验 一 技术咨询 QQ: 550491596 1327229087 技术咨询电话 : 028-88820953 028-66501487 改 写 实 验 一 ,实 现 串口 的 中断 方 式 接收 数据 , 然后 将 接收 的 数据 显示 在 超 级 终 端 上。 实 验二

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报