最新中南大学单片机实验报告-中南大学嵌入式系统实验报告
- 格式:docx
- 大小:4.43 MB
- 文档页数:69
嵌入式系统实习报告一、嵌入式系统实习报告1、实习项目简介(1)在实习期间,我参与了一项嵌入式系统开发项目。
该项目的目标是设计和开发一个嵌入式系统,用于控制并监测一个温室的环境参数,如温度、湿度和光照强度等。
为了实现这个目标,我需要进行硬件设计、嵌入式编程和外设控制等方面的实践。
2、硬件设计经验和成果展示(1)在硬件设计方面,我负责选择和设计相应的传感器和执行器,并与其他团队成员进行紧密合作,确保系统的整体性能和稳定性。
我了解了传感器的工作原理和选择方法,并根据项目的需求选择了适合的温度、湿度和光照传感器。
在执行器方面,我选择了合适的风扇和灯光控制器,以便对温室内的环境进行调控。
(2)在设计过程中,我还学习了相关的电路原理和布局设计。
我根据传感器和执行器的要求,设计了相应的电路,并进行了仿真和测试。
通过这个过程,我熟悉了硬件设计的流程和方法,并深入了解了嵌入式系统的硬件架构。
3、嵌入式编程经验和成果展示(1)在嵌入式编程方面,我使用C语言进行了嵌入式系统的软件开发。
我根据项目的需求,编写了相应的程序,实现了对传感器和执行器的数据读取和控制。
我学习了嵌入式系统的基本编程思想和方法,如中断处理、定时器和IO口控制等。
(2)在编程过程中,我遇到了一些困难,如如何优化程序的运行效率和内存开销,以及如何处理实时数据的采集和处理等。
为了解决这些困难,我查阅了相关的资料并与导师和同事进行了讨论和交流。
最终,我通过对程序的优化和对数据采集时间的控制,成功解决了这些问题,并达到了预期的效果。
4、外设控制经验和成果展示(1)为了实现对温室环境的控制,我学习并实践了外设控制的方法。
我使用了GPIO接口来控制风扇和灯光的开关,通过PWM信号来控制风扇和灯光的转速和亮度。
我还学习了串口通信和I2C总线通信等方法,以实现与其他设备的数据交换和控制。
(2)在外设控制过程中,我也遇到了一些问题,如如何正确配置和使用外设引脚、如何处理外设的中断和异常等。
实习报告:嵌入式单片机实习一、实习目的和意义本次实习的主要目的是通过嵌入式单片机系统的实际操作,深入理解嵌入式系统的工作原理,掌握单片机的编程、调试和应用技巧。
通过实习,使学生能够将所学的理论知识与实际操作相结合,提高解决实际问题的能力,为未来的职业发展打下坚实的基础。
二、实习内容和过程实习的主要内容包括单片机系统的设计、焊接、装配、测试和程序编制等。
在实习过程中,我们使用了经典的51系列单片机,通过搭建不同的电路系统,实现了对单片机的各种控制功能。
首先,我们学习了单片机的硬件组成,包括CPU、存储器、输入输出端口等,并通过焊接电路板的方式,亲自组装了一个单片机系统。
在这个过程中,我们深刻理解了电路原理图及电子线路的基本焊接装配工艺、规范及注意事项。
然后,我们对组装好的系统板进行了测试,通过观察和分析系统板的工作原理及性能,掌握了元器件及系统故障的排除方法。
此外,我们还学习了程序编制及调试方法,完成了系统初始化、存储器操作、端口操作、键盘显示等程序的编制及调试。
在实习的过程中,我们使用了汇编语言和C语言进行编程,通过不断地尝试和调试,我们逐渐掌握了单片机的各种编程技巧,解决了一些挑战性问题。
同时,我们也学习了如何通过调试工具对程序进行调试和优化,提高了程序的稳定性和性能。
三、实习收获和反思通过本次实习,我对嵌入式单片机系统有了更深入的理解,掌握了单片机的编程、调试和应用技巧。
我意识到,嵌入式系统的设计和开发不仅需要扎实的理论知识,还需要良好的实际操作能力。
同时,我也明白了团队合作的重要性,通过与团队成员的分工合作,我们共同完成了实习任务。
然而,我也发现自己在实习过程中还存在一些不足之处。
例如,我在编程时有时过于依赖调试工具,没有充分发挥自己的编程能力。
此外,我在团队协作中也存在一些沟通不畅的问题,需要进一步提高自己的沟通能力。
四、实习总结通过本次嵌入式单片机实习,我收获颇丰。
我不仅掌握了单片机的编程技巧,还提高了解决实际问题的能力。
实验报告课程名称:嵌入式系统开发姓名:任课教师:学院:信息科学与工程学院专业班级:物联网工程2016年12月目录实验一ARM汇编指令 (1)1.实验目的 (1)2.实验设备 (1)3.实验内容 (1)1)实验A--------完成运算x+y,把结果存入堆栈寄存器(R13)中12)实验A运行截图 (1)3)实验B-----完成运算8x+y/2 orr 0x01+ (z and 0xFF+y/2)/2,将结果保存在R2中 (6)4)实验B运行截图 (6)实验二 ARM处理器工作模式 (13)1 实验目的 (13)2 实验设备 (13)3实验内容 (13)4 实验截图 (14)1)进入系统模式 (17)2)初始化系统模式下的R0-R14寄存器 (18)3)切换到FIQ模式 (19)4)初始化FIQ模式下特有的寄存器R8-R14 (19)5)切换到中止模式 (20)7)切换到管理模式 (22)8)初始化管理模式下特有的寄存器R13-R14 (22)9)切换到IRQ模式 (23)10)初始化IRQ模式下的R13-R14 (23)11)J进入未定义模式 (24)12)初始化未定义模式下的寄存器R13-R14 (24)5 实验心得 (25)实验三 C语言程序(一) (26)1 实验目的 (26)2 实验设备 (26)3 实验内容 (26)4 实验截图 (26)实验四 C语言程序实验(二) (35)1 实验目的 (35)2 实验设备 (35)3 实验内容 (35)4 实验截图 (35)5 实验心得 (45)实验五汇编和C语言的相互调用实验 (45)1 实验目的 (45)2 实验设备 (45)3 实验内容 (46)4 实验截图 (46)5 实验心得 (56)实验六综合编程实验 (57)1 实验目的 (57)2 实验设备 (57)3 实验内容 (57)4 实验截图 (57)5 实验心得 (66)实验一 ARM汇编指令1.实验目的(1)初步学会使用ADS1.2集成开发环境及ARM软件模拟器;(2)通过实验掌握简单ARM汇编指令的使用2.实验设备(1)硬件:PC机(2)软件:ADS1.2集成开发环境,Windows98/2000/NT/XP3.实验内容(1)熟悉ADS开发环境,并使用LDR/STR和MOV等指令访问寄存器或存储单元;(2)使用ADD/SUB/LSL/LSR/AND/ORR/等指令完成基本数学逻辑运算。
精选嵌入式系统实习报告3篇嵌入式系统实习报告篇1ARM嵌入式系统综合设计一.实习时间和地点安排1.实习时间:20xx年XX月03 日—— 20xx年XX月14日,共两周的时间。
2.每天的实习时间安排:上午:8:30——11:30下午:13:30——15:303.实习地点:校内。
二.实习目的1.掌握电子元器件的焊接原理和方法。
2.掌握ARM7 LPC2132控制程序的编写方法。
3.掌握调试软件和硬件的方法。
三.实习内容与要求1.根据设计要求焊接好电路板并测试焊接无误。
2.绘制流程图并编写程序。
3.编译通过后,将程序下载到LPC2132进行调试。
4.调试成功后编写实习报告。
四.LPC2132芯片介绍LPC2132最小系统图及其介绍概述LPC2132是基于一个支持实时仿真和嵌入式跟踪的32/16 位 ARM7TDMI-STM CPU 的微控制器,并带有 32kB、64kB、512 kB 的嵌入的高速Flash 存储器。
128 位宽度的存储器接口和独特的加速结构使 32 位代码能在最大时钟速率下运行。
对代码规模有严格控制的应用可使用 16 位 Thumb?模式将代码规模降低超过 30%,而性能的损失却很小。
较小的封装和极低的功耗使 LPC2131/2132/2138 可理想地用于小型系统中,如访问控制和 POS 机。
宽范围的串行通信接口和片内 8/16/32kB 的 SRAM 使LPC2131/2132/2138 非常适用于通信网关、协议转换器、软 modem 、声音辨别和低端成像,为它们提供巨大的缓冲区空间和强大的处理功能。
多个 32 位定时器、1 个或 2 个 10 位 8 路 ADC 、10 位 DAC 、PWM 通道和 47 个 GPIO 以及多达9 个边沿或电平触发的外部中断使它们特别适用于工业控制和医疗系统。
特性1.小型 LQFP64 封装的 16/32 位 ARM7TDMI-S 微控制器。
嵌入式系统实验报告学院:计算机科学与工程姓名:___________学号:_______________专业:_______________指导老师:______________完成日期:______________实验一:流水灯案例、8位数码管动态扫描案例一、实验目的1.1 进一步熟悉Keil C51集成开发环境调试功能的使用;1.2 学会自己编写程序,进行编译和仿真测试;1.3 利用开发板下载hex 文件后验证功能。
二、实验原理2.1 :实验原理图030B 〜I ।卜RSI I ™Hi 」 口 UICDR Hr hJJK RR 18q U I. 海水灯电浒周LhE U_EEM^Li > > 第 X > k >n - » =白 L a £0EBS2.2:工作原理2.2.1:流水灯电路中有LO,1,L2,L3,4,L5,L6,L7共八个发光二极管,当引脚LED_ SEL输入为1,对于A、B、C、D、E、F、G、H引脚,只要输入为1,则点亮相连接的发光二极管。
A〜H引脚连接STM32F108VB芯片的PE8〜PE15,程序初始化时,对其进行初始设置。
引脚LED_SEL为1时,发光二极管才工作,否则右边的数码管工作。
注意,LED SEL 连接于PB3,该引脚具有复用功能,在默认状态下,该引脚的I0不可用,需对AFIO_ MAPR寄存器进行设置,设置其为10可用。
2.2.2: 8位数码管数码管中的A~G、DP段分别连接到电路图中的A~G、H线上,当某段上有一-定的电压差值时,便会点亮该段。
当£3输入为1,也就是LED_ 5£1输入为0时,根据SELO〜SEL2的值确定选中的数码管,即位选,再根据A~H引脚的高低电平,点亮对应段,即段选。
三、实验结果3.1:流水灯对于给出的流水灯案例,下载HEX文件后,在开发板上可观察到L0-L7从左至右依次点亮,间隔300ms。
单片机嵌入式实训报告一、引言在当今的电子技术领域,单片机已经成为嵌入式系统设计的核心组件。
为了更好地理解和应用单片机,我们进行了一次单片机嵌入式实训。
本报告将详细介绍实训的目的、过程、发现的问题、解决方案以及对实训的反思和个人的收获。
二、实训目的和岗位认识实训的主要目的是培养我们的实际操作能力,将单片机理论知识与实际应用相结合,使我们更好地理解单片机的选型、外围电路设计、程序编写与调试等技能。
在实训过程中,我对单片机嵌入式系统工程师这一岗位有了更深入的认识。
单片机嵌入式系统工程师需要具备扎实的电子技术基础、编程能力、电路设计能力以及问题解决能力。
同时,他们需要熟悉各种单片机及其开发工具,能够根据项目需求进行系统设计和优化。
三、实训过程与问题解决在实训过程中,我们首先根据项目需求选择了合适的单片机型号。
接着,我们进行了外围电路设计,包括电源电路、输入输出接口电路等。
在编程方面,我们使用了C语言进行编程,并利用开发工具进行了程序烧写和调试。
在实训过程中,我们遇到了一些问题。
首先,在电路设计时,我们发现某个元件的参数选择不当,导致系统无法正常工作。
通过查阅资料和讨论,我们确定了正确的元件参数,并重新进行了电路设计。
其次,在程序调试过程中,我们发现程序存在逻辑错误,导致系统运行异常。
通过逐步调试和代码审查,我们找到了错误的原因并进行了修正。
四、实训总结与收获通过本次实训,我深刻体会到了单片机嵌入式系统设计的复杂性和挑战性。
我不仅学会了如何根据项目需求进行单片机选型、外围电路设计和程序编写,还掌握了单片机的调试技巧和常见问题的解决方法。
同时,实训也锻炼了我的团队协作能力,使我明白了在项目中各成员间沟通与合作的重要性。
五、对实训不足之处的反思与建议虽然本次实训收获颇丰,但我认为仍有一些不足之处。
首先,我在时间管理方面仍有待提高,部分任务进度滞后。
为此,我应提前规划好每个阶段的任务,确保按计划进行。
其次,我在问题解决方面过于依赖已有知识,忽视了新知识的学习。
一、实训背景随着科技的不断发展,单片机技术已成为现代电子设备中不可或缺的一部分。
为了提高学生的实际操作能力和工程实践能力,我校组织了单片机嵌入式实训课程。
本次实训旨在使学生掌握单片机的基本原理、开发流程和实际应用,培养学生的创新精神和团队协作能力。
二、实训目标1. 掌握单片机的基本原理和开发环境;2. 学会使用单片机进行简单的编程和调试;3. 能够根据实际需求设计并实现嵌入式系统;4. 培养学生的创新精神和团队协作能力。
三、实训内容1. 单片机基本原理实训过程中,我们学习了单片机的基本结构、工作原理和常用外设。
主要包括:(1)单片机的内部结构:中央处理单元(CPU)、存储器、定时器、计数器、并行I/O口、串行通信接口等。
(2)单片机的工作原理:通过编程,使CPU执行指令,实现对外设的控制和数据处理。
(3)常用外设:LED灯、数码管、按键、传感器、LCD显示屏、串行通信模块等。
2. 单片机开发环境实训过程中,我们学习了Keil uVision软件的使用,该软件是单片机开发过程中常用的集成开发环境。
主要包括:(1)Keil uVision软件的安装与配置;(2)项目管理:创建项目、添加文件、设置编译器、链接器等;(3)代码编写:使用C语言进行编程,实现单片机的功能;(4)调试:使用调试器进行程序调试,观察程序运行过程。
3. 实践项目在实训过程中,我们完成了一个基于单片机的嵌入式系统设计项目。
项目要求如下:(1)设计一个基于STC89C52单片机的抢答器系统;(2)系统包括4个抢答按钮、一个LCD显示屏和一个蜂鸣器;(3)当抢答按钮被按下时,LCD显示屏显示抢答者的编号,蜂鸣器发出提示音;(4)系统具备去抖动功能,防止误操作。
4. 项目实现过程(1)需求分析:明确项目需求,确定系统功能;(2)系统设计:设计系统硬件电路、软件程序和界面;(3)硬件电路设计:绘制电路图,焊接电路板;(4)软件程序编写:使用C语言编写程序,实现系统功能;(5)调试与优化:调试程序,解决出现的问题,优化系统性能。
第1篇一、实验目的1. 熟悉嵌入式系统开发环境。
2. 掌握嵌入式编程的基本方法。
3. 理解嵌入式程序的结构和运行机制。
4. 提高实际编程能力,为后续嵌入式系统开发打下基础。
二、实验环境1. 操作系统:Windows 102. 开发工具:Keil uVision53. 嵌入式平台:STM32F103C8T64. 编程语言:C语言三、实验内容本次实验主要完成以下任务:1. 创建工程,配置工程参数。
2. 编写嵌入式程序,实现基本功能。
3. 编译、下载程序到目标板。
4. 观察程序运行效果,调试程序。
四、实验步骤1. 创建工程(1)打开Keil uVision5,点击“Project”菜单,选择“New uVision Project”。
(2)选择目标芯片型号STM32F103C8T6,点击“OK”。
(3)在弹出的对话框中,选择项目保存路径,输入项目名称,点击“Save”。
(4)点击“OK”,完成工程创建。
2. 配置工程参数(1)双击“Target 1”,打开目标配置界面。
(2)在“Device”下拉列表中选择STM32F103C8T6。
(3)根据实际情况配置时钟、中断、外设等参数。
(4)点击“OK”,保存配置。
3. 编写嵌入式程序(1)在工程目录下,找到“User”文件夹,打开“main.c”文件。
(2)根据实验要求,编写嵌入式程序代码。
以下为示例代码:```cinclude "stm32f10x.h"void delay(unsigned int ms){unsigned int i, j;for (i = ms; i > 0; i--)for (j = 720; j > 0; j--);}int main(void){GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); // 使能GPIOA 时钟GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; // 设置PA0GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // 推挽输出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure); // 初始化GPIOAwhile (1){GPIO_SetBits(GPIOA, GPIO_Pin_0); // PA0输出高电平delay(500);GPIO_ResetBits(GPIOA, GPIO_Pin_0); // PA0输出低电平delay(500);}}```4. 编译、下载程序(1)点击“Project”菜单,选择“Build Target”编译程序。
单片机原理及应用系统设计实验报告学院:信息科学与工程学院班级:学号:姓名:指导老师:目录第一章综述 0第二章实验要求 (1)第三章软件设计 (2)1 清零程序 (2)2 拆字程序 (3)3 拼字程序 (4)4 数据传送程序设计 (5)5 排序程序 (7)6 散转程序 (8)第四章硬件设计 (10)1 数字量输入输出实验 (10)1)硬件构造: (10)2)程序代码: (10)2 定时器/计数器实验 (12)1)硬件构造: (13)2)程序代码: (14)3 A/D、D/A转换实验 (15)1)硬件构造: (15)2)程序代码: (15)4 串行通信软件设计 (19)1)硬件构造: (20)2)程序代码: (20)第五章调试过程及体会 (24)1 调试过程 (24)2 收获体会 (24)第一章综述单片机也被称为微控制器(Microcontroller),是因为它最早被用在工业控制领域。
单片机由芯片内仅有CPU的专用处理器发展而来。
最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。
INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。
单片机是靠程序运行的,并且可以修改。
通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。
一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性!单片机诞生于20世纪70年代末,经历了SCM、MCU、SoC三大阶段。
1.SCM即单片微型计算机(Single Chip Microcomputer)阶段,主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。
第1篇一、前言随着我国科技的快速发展,嵌入式系统已成为现代社会不可或缺的一部分。
嵌入式系统广泛应用于智能家居、智能交通、工业控制等领域,具有极高的实用价值和广阔的市场前景。
为了更好地了解嵌入式系统的设计与应用,我们开展了一次嵌入式综合实践。
本次实践旨在通过理论学习与实际操作相结合,提高我们的嵌入式系统设计与开发能力。
二、实践目的1. 掌握嵌入式系统基本概念、原理及开发流程;2. 熟悉嵌入式系统硬件平台和软件开发工具;3. 培养嵌入式系统设计与开发能力,提高团队协作能力;4. 深入了解嵌入式系统在各个领域的应用,拓宽知识面。
三、实践内容1. 嵌入式系统基础知识在本次实践中,我们首先学习了嵌入式系统的基本概念、原理及开发流程。
嵌入式系统是指嵌入在计算机硬件中的专用计算机系统,具有体积小、功耗低、实时性强等特点。
其主要分为硬件和软件两部分,硬件包括处理器、存储器、输入输出设备等,软件包括操作系统、驱动程序、应用程序等。
2. 嵌入式系统硬件平台为了更好地进行嵌入式系统开发,我们选择了基于ARM架构的嵌入式开发板进行实践。
ARM架构具有高性能、低功耗等特点,被广泛应用于嵌入式系统领域。
在实践过程中,我们学习了ARM架构的基本原理,了解了开发板的硬件组成,包括处理器、存储器、外部设备等。
3. 嵌入式软件开发工具在嵌入式系统开发过程中,软件开发工具是必不可少的。
我们学习了Keil uVision、IAR Embedded Workbench等集成开发环境,掌握了C语言、汇编语言等编程语言,并熟悉了调试工具的使用。
4. 嵌入式系统设计与开发在掌握了嵌入式系统基础知识、硬件平台和软件开发工具后,我们开始了嵌入式系统设计与开发实践。
本次实践以智能家居为例,设计并实现了一个基于ARM架构的嵌入式系统。
系统主要功能包括:温度、湿度监测、灯光控制、窗帘控制等。
(1)系统硬件设计系统硬件主要包括以下模块:1)微控制器:采用基于ARM Cortex-M3内核的STM32F103系列单片机;2)传感器模块:温度传感器、湿度传感器;3)控制模块:继电器、舵机;4)通信模块:蓝牙模块、Wi-Fi模块;5)显示模块:LCD显示屏。
中南大学单片机实验报告-中南大学嵌入式系统实验报告
实验报告
课程名
嵌入式系统开发称:
姓
名:
任课教
师:
学
信息科学与工程学院院:
专业班
物联网工程级:
2016年12月
目录
实验一 ARM汇编指令 (1)
1.实验目的 (1)
2.实验设备 (1)
3.实验内容 (1)
1)实验A--------完成运算x+y,把结果存入堆栈寄存器(R13)中 (1)
2)实验A运行截图 (2)
3)实验B-----完成运算8x+y/2 orr 0x01+ (z and 0xFF+y/2)/2,将结果保存在R2中 (6)
4)实验B运行截图 (6)
实验二 ARM处理器工作模式 (12)
1 实验目的 (12)
2 实验设备 (12)
3实验内容 (13)
4 实验截图 (13)
1)进入系统模式 (16)
2)初始化系统模式下的R0-R14寄存器 (17)
3)切换到FIQ模式 (18)
4)初始化FIQ模式下特有的寄存器R8-R14 (18)
5)切换到中止模式 (19)
7)切换到管理模式 (21)
8)初始化管理模式下特有的寄存器R13-R14 (21)
9)切换到IRQ模式 (22)
10)初始化IRQ模式下的R13-R14 (22)
11)J进入未定义模式 (23)
12)初始化未定义模式下的寄存器R13-R14 (23)
5 实验心得 (24)
实验三 C语言程序(一) (25)
1 实验目的 (25)
2 实验设备 (25)
3 实验内容 (25)
4 实验截图 (25)
实验四 C语言程序实验(二) (33)
1 实验目的 (34)
2 实验设备 (34)
3 实验内容 (34)
4 实验截图 (34)
5 实验心得 (44)
实验五汇编和C语言的相互调用实验 (44)
1 实验目的 (44)
2 实验设备 (45)
3 实验内容 (45)
4 实验截图 (45)
5 实验心得 (53)
实验六综合编程实验 (54)
1 实验目的 (54)
2 实验设备 (54)
3 实验内容 (54)
4 实验截图 (55)
5 实验心得 (63)
实验一 ARM汇编指令
1.实验目的
(1)初步学会使用ADS1.2集成开发环境及ARM软件模拟器;
(2)通过实验掌握简单ARM汇编指令的使用
2.实验设备
(1)硬件:PC机
(2)软件:ADS1.2集成开发环境,Windows98/2000/NT/XP
3.实验内容
(1)熟悉ADS开发环境,并使用LDR/STR和MOV等指令访问寄存器或存储单元;
(2)使用ADD/SUB/LSL/LSR/AND/ORR/等指令完成基本数学逻辑运算。
1)实验A--------完成运算x+y,把结果存入堆栈寄存器(R13)中
在该实验中主要是通过MOV/STR/LDR/ADD等指令来完成基本的加操作运算。
2)实验A运行截图
3)实验B-----完成运算8x+y/2 orr 0x01+ (z and 0xFF+y/2)/2,将结果保存在R2中
通过使用MOV/STR/LDR/ORR/LSR/ADD等指令完成简单的加操作运算。
4)实验B运行截图
实验二 ARM处理器工作模式
1 实验目的
通过该实验掌握使用MSR/MRS指令实现ARM处理器工作模式的切换,观察不同模式下的寄存器,加深对CPU结构的理解。
2 实验设备
(1)硬件:PC机
(2)软件:ADS1.2集成开发环境,Windows 98/2000/NT/XP
3实验内容
通过ARM汇编指令,在各种处理器模式下切换并观察各种模式下寄存器的区别;掌握ARM不同模式的进入与退出。
该实验通过使用MSR/MRS等指令实现依次从System模式(sys)→FIQ模式(fiq)→中止模式(abt)→管理模式(suv)→IRQ模式(irq),最后到未定义模式(und)之间的切换。
4 实验截图
1)进入系统模式
2)初始化系统模式下的R0-R14寄存器
3)切换到FIQ模式
4)初始化FIQ模式下特有的寄存器R8-R14
5)切换到中止模式
6)初始化中止模式下特有的寄存器R13-R14
8)初始化管理模式下特有的寄存器R13-R14
10)初始化IRQ模式下的R13-R14
11)J进入未定义模式
12)初始化未定义模式下的寄存器R13-R14
5 实验心得
试验中个模式的切换方法:
1)利用MRS命令将状态寄存器(CPSR)里的内容存储到R0中;
2)利用BIC命令和ORR命令修改R0中【7:0】位,其中为【4:0】位模式的二进制代码,位【7:5】位I、F、T位。
3)利用MSR命令将修改后的R0里的内容拷贝到CPSR寄存器中实现模式的自动切换。
4)I、F、T位对应解释如下:
中断禁止位I、F:
I=1 禁止IRQ中断; I=0 允许IRQ中断
F=1 禁止FIQ中断; F=0 允许FIQ中断
T标志位:该位反映处理器的运行状态
T=1时,程序运行于Thumb状态
T=0时,程序运行于ARM状态
5)处理器模式二进制代码如下:
实验三 C语言程序(一)
1 实验目的
(1)学会使用ADS1.2编写简单的C语言程序并进行调试;
(2)学会编写和使用命令脚本文件;
(3)掌握通过Memory/Registers/Watch/Variables窗口分析判断运行结果。
2 实验设备
(1)硬件:PC机
(2)软件:ADS1.2集成开发环境,Windows98/2000/NT/XP
3 实验内容
使用C语言完成延时函数。
该实验用C语言编写程序,通过调用delay (i)函数实现延时功能。
4 实验截图
实验四 C语言程序实验(二)
1 实验目的
(1)掌握建立基本完善的ARM工程,包含启动代码等;
(2)了解ARM7启动过程,学会使用ADS1.2编写简单的C语言程序和汇编启动代码病进行调试;
(3)掌握如何制定代码入口地址与入口点;
(4)掌握通过Memory/Regesters/Watch/Variables窗口分析判断结果。
2 实验设备
(1)硬件:PC机
(2)软件:ADS1.2集成开发环境,Windows98/2000/NT/XP
3 实验内容
用C语言编写延时函数,同时在C语言中嵌入汇编语言程序。
通过该试验学会在C语言中嵌入汇编,同时初步了解在汇编程序中如何调用C程序函数。
本实验是通过函数调用实现简单的函数延时功能。
4 实验截图
5 实验心得
(1)整个程序的入口点位Reset入口,所以在编写程序时,第一条语句是在Reset异常的起始地址0x000000000处开始执行的。
(2)在Reset模式下,首先要初始化堆栈指针(SP)。
(3)汇编函数调用C函数的方法:
○1使用IMPORT操作声明需要调用的函数名,该声明的意义在于声明该符号(函数名)是在其他源文件中定义的。
○2把函数的入口地址加载到寄存器R0中
○3保存当前状态下的指针寄存器(PC)的值
○4使用带状态跳转指令BX R0跳转到对应的函数入口处执行。
实验五汇编和C语言的相互调用实验
1 实验目的
(1)阅读S3C44B0X启动代码,观察处理器启动过程;
(2)学会使用ADS辅助信息窗口来分析判断调试过程和结果;
(3)学会在ADS环境中编写、编译与调试汇编和C语言相互调用的程序。
2 实验设备
(1)硬件:PC机
(2)软件:ADS1.2集成开发环境,Windows98/2000/NT/XP
3 实验内容
使用汇编语言完成一个随机数产生函数,通过C语言调用该函数,产生一系列随机函数,存放到数组中。
4 实验截图。