logo资料库

国嵌实验手册-ARM系统精讲班.doc

第1页 / 共141页
第2页 / 共141页
第3页 / 共141页
第4页 / 共141页
第5页 / 共141页
第6页 / 共141页
第7页 / 共141页
第8页 / 共141页
资料共141页,剩余部分请下载后查看
实验1-1 ARM汇编编程-寄存器访问
实验1-2 ARM汇编编程-算术运算
实验1-3 ARM汇编编程-寻址方式
实验1-4 ARM汇编编程-逻辑控制
实验1-5 ARM汇编编程-模式切换
实验1-6 ARM/C混合编程
实验2-1 ADS集成开发环境
实验2-2 ARM综合实验-二进制数字显示
实验2-3 ARM综合实验-二进制数字显示
实验2-4 ARM综合实验-按键程序设计
实验3-1 ARM综合实验-定时器程序设计
实验4-1 ARM综合实验-串口程序设计1
实验4-2 ARM综合实验-串口程序设计2
实验5-1 ARM综合实验-ADC程序设计1
实验5-2 ARM综合实验-ADC程序设计2
实验5-3 ARM综合实验-触摸屏程序设计
实验6-1 ARM综合实验-LCD程序设计
我们专注于嵌入式 ARM 系统精讲班 实验手册 国嵌 编著 嵌入式 LINUX 培训专用 公司地址:成都市牛王庙东恒国际 1 栋 2 期 701 技术咨询 QQ:1783168692 技术交流 QQ 群:65212116 电话:028-88820953 网址:www.enjoylinux.cn 1
我们专注于嵌入式 版权申明 该资料版权归属成都国嵌信息技术 有限公司(简称“国嵌”)所有, 并保留 一切权力。非经国嵌同意(书面形式), 任何单位和个人不得擅自摘录本手 册部分或全部,违者我们将追究其法 律责任。 公司地址:成都市牛王庙东恒国际 1 栋 2 期 701 技术咨询 QQ:1783168692 技术交流 QQ 群:65212116 电话:028-88820953 网址:www.enjoylinux.cn 2
我们专注于嵌入式 实验目录 实验 1-1 ARM 汇编编程-寄存器访问............................................4 实验 1-2 ARM 汇编编程-算术运算................................................5 实验 1-3 ARM 汇编编程-寻址方式................................................7 实验 1-4 ARM 汇编编程-逻辑控制................................................9 实验 1-5 ARM 汇编编程-模式切换..............................................13 实验 1-6 ARM/C 混合编程............................................................16 实验 2-1 ADS 集成开发环境........................................................ 18 实验 2-2 ARM 综合实验-二进制数字显示..................................38 实验 2-3 ARM 综合实验-二进制数字显示..................................46 实验 2-4 ARM 综合实验-按键程序设计......................................54 实验 3-1 ARM 综合实验-定时器程序设计..................................62 实验 4-1 ARM 综合实验-串口程序设计 1...................................72 实验 4-2 ARM 综合实验-串口程序设计 2...................................84 实验 5-1 ARM 综合实验-ADC 程序设计 1.................................93 实验 5-2 ARM 综合实验-ADC 程序设计 2...............................104 实验 5-3 ARM 综合实验-触摸屏程序设计................................115 实验 6-1 ARM 综合实验-LCD 程序设计...................................127 公司地址:成都市牛王庙东恒国际 1 栋 2 期 701 技术咨询 QQ:1783168692 技术交流 QQ 群:65212116 电话:028-88820953 网址:www.enjoylinux.cn 3
我们专注于嵌入式 实验 1-1 ARM 汇编编程-寄存器访问  实验目的: 掌握ARM通用寄存器,存储器的访问方法  实验要求: 1. 使用MOV指令访问ARM通用寄存器 2. 使用LDR/STR指令完成存储器的访问  实验代码与分析: 1-1 test1.s EQU COUNT 0x30003100 ; 定义一个变量,地址为 0x30003100 START LOOP AREA Example2,CODE,READONLY ; 声明代码段 Example2 ENTRY CODE32 LDR MOV STR R1,=COUNT ; R1 <= COUNT R0,#0 R0,[R1] ; R0 <= 0 ; [R1] <= R0,即设置 COUNT 为 0 ; 标识程序入口 ; 声明 32 位 ARM 指令 R1,=COUNT R0,[R1] R0,R0,#1 R0,[R1] ; R0 <= [R1] ; R0 <= R0 + 1 ; [R1] <= R0,即保存 COUNT LOOP LDR LDR ADD STR B END 公司地址:成都市牛王庙东恒国际 1 栋 2 期 701 技术咨询 QQ:1783168692 技术交流 QQ 群:65212116 电话:028-88820953 网址:www.enjoylinux.cn 4
我们专注于嵌入式 实验 1-2 ARM 汇编编程-算术运算  实验目的: 掌握ARM算术,逻辑运算指令  实验要求: 使用ADD、SUB、AND、ORR、CMP、TST等指令完成数据加减 运算及逻辑运算  实验代码与分析: 1-2 test2.s X EQU EQU Y 11 8 ; 定义 X 的值为 11 ; 定义 Y 的值为 8 BIT23 EQU (1<<23) ; 定义 BIT23 的值为 0x00800000 AREA Example2,CODE,READONLY ; 声明代码段 Example2 ENTRY CODE32 ; 声明 32 位 ARM 指令 ; 标识程序入口 START ; 使用 MOV、ADD 指令实现:R8 = R3 = X + Y MOV MOV ADD MOV ; R0 <= X,X 的值必须是 8 位图数据 ; R1 <= Y,Y 的值必须是 8 位图数据 ; 即是 R3 = X + Y ; R8 <= R3 R0,#X R1,#Y R3,R0,R1 R8,R3 ; 使用 MVN、SUB 指令实现:R5 = 0x5FFFFFF8 - R8 * 8 MVN SUB ; 0xA0000007 的反码为 0x5FFFFFF8 ; R8 左移 3 位,结果即是 R8 * 8 R5,R0,R8,LSL #3 R0,#0xA0000007 ; 使用 CMP 指令判断(5*Y/2)>(2*X)吗?若大于则 R5 = R5&0xFFFF0000,否 则 R5 = R5|0x000000FF 公司地址:成都市牛王庙东恒国际 1 栋 2 期 701 技术咨询 QQ:1783168692 技术交流 QQ 群:65212116 电话:028-88820953 网址:www.enjoylinux.cn 5
我们专注于嵌入式 MOV ADD MOV MOV MOV CMP R0,#Y R0,R0,R0,LSL #2 R0,R0,LSR #1 R1,#X R1,R1,LSL #1 R0,R1 ; 计算 R0 = Y + 4*Y = 5*Y ; 计算 R0 = 5*Y/2 ; 计算 R1 = 2*X ; 比较 R0 和 R1,即(5*Y/2)和(2*X)进行 LDRHI R2,=0xFFFF0000 ; 若 (5*Y/2)>(2*X) , 则 R2 <= ANDHI R5,R5,R2 ORRLS R5,R5,#0x000000FF ; 若(5*Y/2)≤(2*X),则 R5 = R5|0x000000FF ; 若(5*Y/2)>(2*X),则 R5 = R5&R2 ; 使用 TST 指令测试 R5 的 bit23 是否为 1,若是则将 bit6 位清零(使用 BIC 指 比较 0xFFFF0000 令) R5,#BIT23 TST BICNE R5,R5,#0x00000040 B START END 公司地址:成都市牛王庙东恒国际 1 栋 2 期 701 技术咨询 QQ:1783168692 技术交流 QQ 群:65212116 电话:028-88820953 网址:www.enjoylinux.cn 6
我们专注于嵌入式 实验 1-3 ARM 汇编编程-寻址方式  实验目的: 掌握ARM寻址方式  实验要求: 编写汇编程序,分别实现 立即数寻址 寄存器寻址 寄存器间接寻址 基址变址寻址 多寄存器寻址  实验代码与分析: 1-3 test3.s AREA TEST,CODE,READONLY ENTRY CODE32 ;立即数寻址 MOV R0,#0x1 ADD R0,R0,#0x4 ;寄存器寻址 MOV R1,#0x2 ADD R2,R1,R0 ADD R2,R2,R0,LSL #1 ;立即数 0x1 存入寄存器 R0 ;寄存器 R0 中的内容加上立即数 0x4 然后存入寄存器 R0 ;立即数 0x2 存入寄存器 R1 ;寄存器 R0 中的内容和寄存器 R1 的内容相加存入寄存器 R2 ;寄存器 R0 中的内容逻辑左移 1 位加上寄存器 R2 的内 容在存入寄存器 R2 ;寄存器间接寻址 MOV R1,#0x10 STR R2,[R1] SWP R0,R0,[R1] ;将立即数 0x10 存入寄存器 R1 ;将寄存器 R2 的内容存入以寄存器 R1 的值为地址的存储器中 ;完成寄存器 R1 所指向的存储器中的字数据与寄存器 R0 的内 公司地址:成都市牛王庙东恒国际 1 栋 2 期 701 技术咨询 QQ:1783168692 技术交流 QQ 群:65212116 电话:028-88820953 网址:www.enjoylinux.cn 7
我们专注于嵌入式 ;将立即数 0x14 存入寄存器 R3 ;将立即数 0x3 存入寄存器 R0 ;将寄存器 R0 的内容存入寄存器 R3 所指向的存储器 ;将寄存器 R1 的内容加上 4 所指向的存储器的字存入寄存器 R4 容交换 ;基址变址寻址 MOV R3,#0x14 MOV R0,#0x3 STR R0,[R3] LDR R4,[R1,#4] ;多寄存器寻址 LDMIA R1,{R5,R6} ;相对寻址 B NEXT NOP NOP NOP NOP NOP NOP NEXT NOP NOP NOP END 公司地址:成都市牛王庙东恒国际 1 栋 2 期 701 技术咨询 QQ:1783168692 技术交流 QQ 群:65212116 电话:028-88820953 网址:www.enjoylinux.cn 8
分享到:
收藏