




已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章 ADS集成开发环境 1 ADS集集成成开开发发环环境境简简介介 1 1ARM编译器的选择 ADS 目前 针对ARM处理器核的C语言编绎器有很多 如SDT ADS IAR TASKING和GC C等 据了解 目前在国内最流行的是SDT ADS和GCC SDT和ADS均为ARM公司自己 开发 ADS为SDT的升级版 以后ARM公司不再支持SDT 所以不会选择SDT GCC虽然 支持广泛 很多开发套件使用它作为编译器 与ADS比较其编译效率较低 这对充分发挥 芯片性能很不得 所以最终使用ADS编译程序和调试 本实验设备采用ADS编译器 其全称为ARM Developer Suite ADS由命令行开发工具 ARM时实库 GUI开发环境 Code Warrior和AXD 实用程序和支持软件组成 有了这些部件 用户就可以为ARM系列的RI SC处理器编写和调试自己的开发应用程序了 ADS支持汇编语言和标准C语言和标准C 语言 1 2ADS库路径 ADS库路径是在ADS软件安装路径的lib目录下的两个子目录 假设 ADS软件安装在 e arm adsv1 2目录 则在e arm adsv1 2 lib目录下的两个子目录armlib和cpplib是ARM 的库所在路径 armlib这个子目录包含了ARM C库 浮点代数运算库 数学库存等各类库函数 与这些库相就的头文件在e arm adsv1 2 include目录中 Cpplib这个子目录包含了Rogue Wave C 库和C 支持函数库 Rogue Wave C 库和C 支持函数库合在一起被称为ARM C 库 与这些库相应的头文件安装在e arm adsv1 2 include目录下 读者需特别注意的几点 1 ARM C库函数是以二进制格式提供的 2 ARM 库函数禁止修改 如果读者想对库函数创建新的实现的话 可以把这个新 的函数编译成目标文件 然后在链接的时候把它包含进来 这样在链接的时候 使用的是新的函数实现而不是原来的库函数 3 通常情况下 为了创建依赖于目标的应用程序 在ANSI C库中只有很少的几个函数需要实现重建 4 Rogue Wave Standard C 函数库的源代码不是免费发布的 可以从Rogue Wave Software Inc 或ARM公司通过支付许可证费用来获得源文件 2 ADS集集成成开开发发环环境境的的使使用用 2 1进入ADS集成开发环境 点击桌面ADS图标 如下图所示 进入ADS集成开发环境 2 2建立一个工程 1 在CodeWarrior中新建一个工程有两种方法 方法一 在工具栏中单击 New 按钮 如下图 方法二 在 File 菜单中选择 New 如下图 2 执行上步骤后 则会弹出 新建工程对话框 如下图 在这个对话框中为用户提供了7种可选择的工程类型 ARM Executabl Image 用于由ARM指令的代码生成一个ELF格式的可执行映像文件 ARM Object Library 用于由ARM指令的代码生成一个armar格式的目标文件库 Empty Prlject 用于创建一个不包含任何库或源文件的工程 Makefile Importer Wizard 用于将Visual C 的nmake 或 GNU make 文件转入到CodeWarrior IDE 工程文件 Thumb ARM Executable Image 用于由ARM指令和Thumb指令的混和代码生成一个可执行的ELF格式的映像文件 Thumb Executable image 用于由Thumb 指令创建一个可执行的ELF格式的映像文件 Thumb Object Library 用于由Thumb指令的代码生成一个armar格式的目标文件库 在这里选择ARM Executable Image 在 Project name 中输入工程文件名 本例为 ledcircle 点击 Location 文本框的 Set 按 钮 浏览选择想要将该工程保存的路径 将宽大些设置好后 点击 确定 即可建立一 个新的名为ledcircle的工程 此时会出现ledcircle mcp的窗口 如下图如示 其中有三个标签页 分别为files linkor der target 2 3 新建原文件 1 在 File 菜单中选择 New 在打开的对话框中 选择标签页File 在File name中输入要创建的文件名 若是汇编语言则文件名格式为 s 若是C语言则文件名 格式为 c 然后再点击 确定 关闭窗口 在这里还有一个细节 希望注意 在建立好一个工程时 默认的target是DebugRel 还有另外两个可用的target 分别为Realse和Debug 这三个target的含义分别为 DebugRel 使用该目标 在生成目标的时候 会为每一个源文件生成调试信息 Debug 使用该目标为每一个源文件生成最完全的调试信息 Release 使用该目标不会生成任何调试信息 在本例中 使用默认的 DebugRel 目标 2 4 向工程添加文件 1 在ledcircle mcp窗口的file标签页内右击鼠标右键 选中 Add Files 可以把要用到的源程序添加到工程中 2 选中了要添加的文件后 会出现如下所示的一个对话框 询问用户把文件添加到何 类目标中 在这里 我们选择DebugRel目标 再按OK即可把刚才创建的两个文件添加到 工程中来 3 对于本实验 在建立好每一个工程后都需将stardcode文件夹里的所有文件添加至 工程中 且新建的每个文件里都需包含 config h 头文件才行 原因不多说明 有兴趣可 自行阅读文件代码 2 5 编译和链接工程 在进行编译和链接前 首先讲述一下如何进行生成目标的配置 点击Edit菜单 选择 DebugRel Settings 则出现如下图如示的对话框 这个对话框中的设置很多 在这里只介绍一些最为常用的设置选项 读者若对其他未 涉及到的选项感兴趣 可以查看相应的帮助文件 1 target设置选项 A TargetName 文本框显示了当前的目标设置 B Linker 选项供用户选择要使用的链接器 在这里默认选择的是ARM Linker 使用该链接器 将使用armlink链接编译器和汇编器生成的工程中的文件相应的目 标文件 C Pre Linker 目前CodeWarrior IDE不支持该选项 D Post Linker 选择在链接完成后 还要对输出文件进行的操作 因为在本例中 希望生成一个 可以烧写到Flash中去的二进制代码 所在在这里选择 ARM fromELF 表示在链接生成映像文件后 再调用FromELF命令将含有调试信息的ELF格式 的映像文件转换成其化格式的文件 2 Linker设置 鼠标选中ARM Linker 出现如下图所示对话框 这里详细介绍该对话框的主要的标签页选项 因为这些 选项对最终生成的文件有着直接的影响 A 在标签页Output中 Linktype中提供了三种链接方式 Partial方式表示链接器只进行部分 链接 经过部分链接生成的目标文件 可以作为以后进一步链接时的输入文件 Simple方 式是默认的链接方式 也是最为频繁使用的链接方式 它链接生成简单的ELF格式的目标 文件 使用的是链接器选项中指定的地址映射方式 Scattered方式使得链接器要根据scatt er格式文件中指定的地址映射 生成复杂的ELF格式的映像文件 这个选项一般情况下 使用不太多 因为我们所举的例子比较简单 选择Simple方式就可以了 在选择Simple方 式后 就会出现Simple image B RO Base 这个文本框设置包含有RO段的加载域为同一个地址 默认是0 x8000 这里用户要 根据自已硬件的实际SDRAM的地址空间来修改这个地址 保证在这里填写的地址 是程 序运行时 SDRAM地址空间所能覆盖的地址 针对本实验可以设置地址值为 0 x00000000 C RW Base 这个文本框设置了包含RW和ZI输出段的运行域地址 如果选中split选项 链接器 生成的映像文件将包含两个加载域和两个运行域 此时 在RW Base中所输入的地址为包含RW和ZI输出段的域设置了加载域和运行域地址 本实验可设 置为 0 x40000030 D 在标签页Options中 将Image entry point文本框设置为 0 x00000000 如下图所示 E 在标签页Layout中 将Object Symbol设为 startup o F 将Section设为 vectors 鼠标选中ARM fromELF 则会出现如下图所示的对话框 A 在Output format中选择Intel 32 bit Hex B 在Output file name文本域输入期望生成的输出文件存放的路径 或通过点击Choose 按钮从文件对话 框中选择输出文件 如果在这个文本域不输入路径名 则生成的文件存放在工程所在的目 录下 3 点击CodeWarrior IDE的菜单Project下的make菜单 或按F7键就可以对工程进行编译和链接了 第二章 基础实验 一数码管扫描程序 1 实实验验目目的的 1 1理解ARM数码管显示的一般原理 掌握使用数码显示的一般方法 1 2学会十六进制字型的显示方法 1 3学会同时 实际上并不是同时 只是视觉 让多个数码管显示 显示任意 字符 1 4了解74HC595是如何工作的 2 实实验验内内容容 2 1理解数码管显示的字符代码和数字之间的关系 2 2理解数码管是如何片选及显示 2 3依次让多个数码管显示任意字符 2 4学会使用74HC595 3 实实验验预预习习要要求求 3 1查找数码管扫描相关资料 了解循环扫描的基本原理 3 2复习ARM中对端口的操作步骤 复习数码管模块的是实现方法 3 3查找74HC595的芯片资料 了解该芯片的工作原理和在数码管扫描模块 中的作用 4 实实验验原原理理 5 端端口口寄寄存存器器介介绍绍 PINSEL是用于选择端口功能选择 IOPIN用于读引脚当前状态 IOSET控制寄存器引 脚输出高电平 IOCLR控制寄存器引脚输出低电平 IODIR控制每个IO口的方向 例如 I ODIR DLED RCK DLED RCK为宏 是一个 32位无符号整型 5 1595原理 数码管扫描涉及到4个引脚 分别是P0 17 P0 20 P0 17 P0 18 P0 20分别作为74H C595的SCK SI RCK 结合74HC595手册理解 通过SI口接收每位数据 SCK的高 电平发出移位信号 每位数据都移动到下一个移位寄存器中 遇到同步发送脉冲RCK时 将多位数据一次发送到寄存器中 形成一个相当于8位或多位的并行数据 从而通过595给 数码管给予片选和数据 5 2数码管原理 数码管内部为8个发光二极管 并排列为8字形 同时加一个位表示小数点 通过这8个 发光二极管的合理组合 可以构成不同的数字字型和简单的字母字型 同时数码管还有一 个位选信号 即8个数码管的公共端 用于电平选中 原理图中的A H的0 1组合就可以 组成不同的字符 6 实实验验流流程程图图 数码管原理图 图 1 数码管总体流程图 7 参参考考源源代代码码 8 思思考考题题 8 1如何使你写的程序高效 8 2如何使你写的程序可广泛移植到其他程序中 8 3是否有其他的方法让数码管显示 二键盘扫描程序 1 实实验验目目的的 1 1了解键盘电路的布局 理解键盘扫描的基本原理 1 2熟练掌握键盘轮转扫描的方法 1 3熟悉74HC595芯片的原理 以及如何利用74HC595写程序实现串并转换 2 实实验验内内容容 2 1了解实验箱键盘模块的工作原理 引脚连接 2 2写程序实现轮转扫描算法 实现键盘的扫描 能够判断是否有键按下 结 合数码管显示模块 实现按下某键显示相应内容 3 实实验验预预习习要要求求 3 1查找键盘相关资料 了解轮转扫描的基本原理 对比其与行扫描 全扫描 的区别 3 2复习ARM中对端口的操作步骤 复习数码管模块的是实现方法 3 3查找74HC595的芯片资料 了解该芯片的工作原理和在键盘扫描模块中 的作用 4 实实验验原原理理 4 1键盘扫描引脚设置 键盘扫描涉及到4个引脚 分别是P0 4 P0 7 P0 4 P0 6 P0 7分别作为74HC595的S CK SI RCK 595原理在前一实验已做介绍 p0 5为返回值端口 也是按键是否按下的判断位 在硬件电路上 只要一个按键按下 并 且对应的片选中该位为低电平 任意一位同时满足两条件 那么rekey端口将返回低电平 处理器可以根据该端口的电平来判断是否有键按下 具体是何键值则可以由程序设计判 断 因为片选可以通过逐位清 16个位只能有一位为 来实现的 本实验才用轮转扫 描算法 4 2轮转扫描实现 通过595向16位键盘输入片选 其中只有一位为 为了在同一时刻只判断一位是否 按下 通过对片选数据逐位右移 将对每一位判断是否按下 如果同时满足该位片选为 且有键按下 那么返回值为 说明有键按下 同时可在程序中用一记数变量记录判断是 哪一位 同时就解决了是何键按下 因为一旦判断出返回值为 说明此刻记数变量的值 即为按下键盘为的值 或者说相关 看你具体程序如何处理 此刻立即取出变量中的值 就做到了判断是何键位的目的 5 实实验验流流程程图图 总体流程图扫描函数流程图 6 参参考考源源代代码码 7 思思考考题题 7 1 如果按键与需要的偶尔有差别 为什么 7 2 当按下键后 是否需要继续扫描 两者如何实现 7 3 同时按下两个键 什么结果 为什么 三点阵屏汉字显示程序 1 实实验验目目的的 1 1了解点阵屏显示基本原理 1 2熟悉74HC595芯片的原理 以及如何利用74HC595写程序实现串并转换 1 3熟悉使用字模软件 1 4进一步熟悉ARM的端口操作 2 实实验验内内容容 2 1建立汉字字库 2 2在点阵屏上显示汉字 3 实实验验预预习习要要求求 3 1预习GPIO GERERAL PROGRAMABLE INPUT OUTPUT 通用可编程输入输出口的基本操作 3 2找相关74HC595芯片的资料 了解起基本原理和使用方法 4 实实验验原原理理 点阵屏涉及到4个引脚 分别是P0 20 P0 17 P0 4 P0 17 P0 18和P0 19 P0 2 0分别作为74HC595的SCK SI RCK 结合74HC595手册理解 通过SI口接收每 位数据 P0 18和P0 19分别对应SI X SI Y 用于控制行和列的显示 SCK的高电平发出移位信号 每位数据都移动到下一个 移位寄存器中 遇到同步发送脉冲RCK时 将多位数据一次发送到寄存器中 形成一 个相当于16位或多位的并行数据 点阵显示是这样实现的 利用串并转换将两个16位数据分别发送给P0 18和P0 19 所对应的SI X和SI Y 它们分别控制片选位和显示数据位 至于行列哪个作片选位哪个做数据显示位 可由自己定 一般便于观察和结合字模软件 将点阵屏相对于实验箱正向的行作为数 据显示位 列作为片选位 通过控制片选和数据显示位可以实现固定行显示固定的亮 灭信息 再通过扫描算法 与LED灯相似 实现点阵屏显示任意数据信息 字模软件的使用 通过字模软件 可以很容易的实现16X16 或者其他大小 的点阵字模数据的提 取 而不用手动的去计算 具体的实现方法可以结合软件自己尝试 比较容易 字库的建立一个重要问题在于如何索引 即通过哪种方式可以方便的调用你的字 库 一般建立字库采用二维数组 通过数字索引或者其他方式可以方便调用 如果是 ASC码的字符 可以通过以ASK码为桥梁方便的建立索引 5 实实验验流流程程图图 图图 2点阵总体流程图点阵总体流程图 图图 3 点阵扫描函数流程图点阵扫描函数流程图 6 参参考考源源代代码码 7 思思考考题题 7 1怎样使点阵屏隔一段时间显示另一个字 7 2与LED程序相比较 有什么异同 四外部中断实验 1 实实验验目目的的 1 1了解外部中断的基本设置方法和原理 1 2通过外部中断实验学习ARM中中断的产生机制 1 3了解中断的应用 2 实实验验内内容容 2 1通过实验箱发声器和红外发送 接收对管实现通过外部中断令发生器产生声响 3 实实验验预预习习要要求求 3 1预习 ARM嵌入式系统基础教程 中向量中断控制器和外部中断输入的 章节 了解相关寄存器的内容和用法 3 2了解什么是外部中断 与其他中断有什么联系和区别 4 实实验验原原理理 首先需要介绍向量中断控制器的相关知识 4 1向量中断控制器 VECTORED INTERRUPT CONTROLLER 简称VIC 向量中断寄存器 具有32个中断请求输入 可将其编程分为3类 FIQ 向量IRQ 非 向量IRQ 可编程分配机制意味着不同外设的中断优先级可以动态分配及调整 中断输入可以在VIC被设置成三类 1 FIQ中断 具有最高优先级 2 向量IRQ中断 具有中等优先级 VIC最多支持16个向量IRQ中断 这些中断被分为16个优先级 每个优先级有一个中断服 务地址 3 非向量IRQ中断 具有最低优先级 所有的非向量IRQ中断共用一个中断服务地址 4 2相关寄存器 与中断相关的常用和比较重要的寄存器主要有 VICIntEnable 中断使能寄存器32位 每一位控制一个中断源 向某一位写入1 允许该中断源产生中断 VICIntClr 中断使能清零寄存器 与VICIntEnable相反 写入1 相应位中断源禁止中断 VICIntSelect 中断选择寄存器 向某位写1 对应中断源产生FIQ中断 否则产生IRQ中断 其中断相应延时相应较长 VICVectCntl 中断向量控制寄存器 为中断源分配向量IRQ的优先级 VICVectCntl n n值越小优先级越高 0 n转换成128 64 位大小的数据放在LCD缓冲区中 4 将LCD缓冲区中的数据 逐行写入到LCD内部RAM中去 5 实实验验流流程程图图 LCD LCD LCD LCD RAM LCD LCD RAM LCD T F T F 图图 3 LCD显示数据流程图显示数据流程图 6 参参考考源源代代码码 7 思思考考题题 7 1试比较控制LCD与控制点阵LED有什么不同 7 2怎样实现用LCD显示一幅自己的图片 十AD转换程序 1 实实验验目目的的 1 1掌握模数转换的基本原理 熟悉ARM AD转换功能特点 转换性能以及编程方法 2 实实验验内内容容 2 1利用旋转按纽改变输出数电的大小 并用数码管显示 3 实实验验要要求求与与预预习习 3 1参考ARM嵌入式系统基础教程 PPT 了解AD转换原理 并理解其寄存 器的设置方式 4 实实验验原原理理 4 1AD转换相对于其他模块较为简单 主要是对ADCR的设置以及读取ADD R ADCR主要包括一 0 7位 SEL通道设置如选通 通道 则是0X01 二 15位CLKDIV AD转换时钟 需要小于4 5MHZ 三 位 BURST 触发模式选择 两种方式 BURST 需对该位置 另外一 种为软件方式 四 17 19位CLKS 转换位数以及转换时间五24
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年零售行业医药零售供应链协同合规认证考核试卷
- 2025年中医药应急预案编制中医药现代化合规考核试卷
- 2025年公共卫生执业医师资格《流行病学》实践能力应用强化考核试卷(含突发公共卫生事件应急处置新流程)
- 解析卷人教版八年级物理上册第4章光现象同步测试试卷(含答案详解)
- 104试卷前培训考核规范岗生产安全安全工业料车间防爆5年锂电材02.203
- 解析卷-人教版八年级物理上册第5章透镜及其应用综合训练练习题(解析版)
- 考点解析-人教版八年级上册物理物态变化《汽化和液化》单元测试试题(含详细解析)
- 培养测量素养丰厚活动经验
- 学校后勤工作人员绩效工资考核方案(2025年)
- 广告租赁安装合同(标准版)
- 湾汇云中心公馆500㎡超豪宅方案
- 山东省名校考试联盟2026届高三上学期10月阶段性检测数学试卷(含答案)
- 2025年个人电动汽车购买协议
- 无人机测绘课件
- 养老机构销售技巧培训
- 创意笔筒产品设计与制作方案
- 公文格式培训课件
- 快递员安全寄递培训课件
- 2025公务员考试《常识》高分题库完美版附答案详解
- 文库发布:五岳课件
- 装修直播培训课课件
评论
0/150
提交评论