南邮嵌入式系统B实验报告
嵌入式系统基础实训报告

一、引言随着科技的飞速发展,嵌入式系统在各个领域的应用越来越广泛。
为了使学生更好地了解嵌入式系统的基础知识,掌握嵌入式系统的设计与开发方法,提高学生的实际操作能力,我们开展了嵌入式系统基础实训课程。
本文将详细介绍本次实训的过程、成果以及心得体会。
二、实训目标1. 理解嵌入式系统的基本概念、组成和工作原理;2. 掌握嵌入式系统硬件平台搭建和调试方法;3. 熟悉嵌入式系统软件开发流程,掌握C语言编程技巧;4. 能够进行简单的嵌入式系统设计与实现。
三、实训内容1. 嵌入式系统概述首先,我们对嵌入式系统的基本概念、组成和工作原理进行了详细讲解。
嵌入式系统是以应用为中心,以计算机技术为基础,软硬件协同工作的一种专用计算机系统。
它具有体积小、功耗低、成本低、可靠性高等特点。
2. 硬件平台搭建与调试在硬件平台搭建方面,我们以STM32系列单片机为例,介绍了嵌入式系统硬件平台的基本组成,包括CPU、存储器、I/O接口、外设等。
通过实际操作,学生掌握了如何搭建嵌入式系统硬件平台,并学会了使用示波器、逻辑分析仪等工具进行调试。
3. 软件开发与编程在软件开发方面,我们以Keil uVision为开发环境,讲解了C语言编程基础,包括数据类型、运算符、控制结构、函数等。
通过实际编程,学生掌握了如何编写嵌入式系统程序,并学会了使用调试工具进行程序调试。
4. 嵌入式系统设计与实现在嵌入式系统设计与实现方面,我们以一个简单的温度控制项目为例,讲解了嵌入式系统设计的基本流程,包括需求分析、系统设计、硬件选型、软件开发等。
通过实际操作,学生掌握了如何进行嵌入式系统设计与实现。
四、实训成果1. 完成嵌入式系统硬件平台搭建,并成功调试;2. 掌握C语言编程技巧,能够编写简单的嵌入式系统程序;3. 熟悉嵌入式系统设计流程,能够进行简单的嵌入式系统设计与实现;4. 增强了团队合作意识,提高了实际操作能力。
五、心得体会1. 嵌入式系统基础实训课程使我对嵌入式系统的基本概念、组成和工作原理有了更深入的了解,为我今后的学习和工作打下了坚实的基础;2. 在实训过程中,我学会了如何搭建嵌入式系统硬件平台,掌握了C语言编程技巧,提高了我的实际操作能力;3. 通过嵌入式系统设计与实现,我认识到嵌入式系统开发是一个复杂的过程,需要综合考虑硬件、软件、系统等方面,培养了我的综合能力;4. 嵌入式系统基础实训课程使我更加明确了自己的学习目标,激发了我对嵌入式系统领域的兴趣。
嵌入式 实习报告

嵌入式实习报告在当今科技飞速发展的时代,嵌入式系统在各个领域都发挥着至关重要的作用。
为了更深入地了解和掌握嵌入式技术,我进行了一次宝贵的实习。
以下是我对这次实习经历的详细报告。
一、实习单位介绍我实习的单位是一家专注于嵌入式系统研发的公司,其在智能家居、工业控制、医疗设备等领域都有着广泛的应用和卓越的成果。
公司拥有一支高素质的研发团队,具备丰富的经验和创新能力,为公司的产品提供了强大的技术支持。
二、实习目的1、将在学校学到的理论知识与实际工程应用相结合,加深对嵌入式系统的理解和掌握。
2、熟悉嵌入式系统的开发流程和方法,提高自己的编程能力和解决问题的能力。
3、了解嵌入式行业的发展动态和市场需求,为今后的职业发展做好规划。
三、实习内容1、熟悉开发环境在实习的初期,我主要是熟悉公司所使用的嵌入式开发环境,包括硬件平台和软件开发工具。
我学习了如何使用开发板进行程序的下载和调试,掌握了常用的开发工具如 Keil、IAR 等的基本操作。
2、学习编程语言嵌入式系统开发中常用的编程语言是 C 和 C++。
我通过阅读相关的书籍和代码示例,不断地练习编程,逐渐提高了自己的编程水平。
同时,我也学习了一些嵌入式系统特有的编程技巧,如内存管理、中断处理等。
3、参与项目开发在熟悉了开发环境和编程语言之后,我有幸参与到了一个智能家居项目的开发中。
我的主要任务是负责一个传感器模块的驱动程序编写和调试。
在这个过程中,我需要深入了解传感器的工作原理和通信协议,通过阅读数据手册和参考前人的代码,我逐渐完成了驱动程序的编写,并通过了严格的测试。
4、系统优化与调试在项目开发的后期,我参与了系统的优化和调试工作。
这包括对程序的性能优化,降低功耗,提高系统的稳定性和可靠性。
通过使用一些调试工具如逻辑分析仪、示波器等,我能够快速定位和解决问题。
四、遇到的问题及解决方法1、内存泄漏问题在编写程序的过程中,由于对内存管理的不当操作,导致了内存泄漏的问题。
嵌入式系统实习报告

嵌入式系统实习报告
以下是关于嵌入式系统实习报告,希望内容对您有帮助,感谢您得阅读。
串口通信实验:
IIS音频实验:
六、实习体会
在嵌入式系统中,除了课本上的基础知识外,还学会了软件编程的基本思路,掌握了液晶屏的使用及其电路设计方法;掌握有关音频处理的基础知识;掌握液晶显示文本及图形的方法与程序设计。
通过这次设计,掌握了液晶显示实验、μC/OS-II移植、μC/OS-IILCD显示的工作原理及串口通信实验的工作过程,学会了使用仿真软件Embest EduKit-IV实验平台及ULINK2仿真器套件,并学会通过应用软件仿真来实现各种通信系统的设计,对以后的学习和工作都起到了一定的作用,加强了动手能力和学业技能。
虽然花了很长时间编写软件程序设计,但这一切还是理论上的。
希望学校能提供机会和条件,让我们能够去真正地将理论和实践相结合。
通过这次程序,感觉自己所掌握的知识是那么的有限,还有许多需要改进和不足的地方,同时也帮助了我怎样学好这门课程,增加了我对这门学科的兴趣。
·
总体来说,这次实习我受益匪浅。
在摸索该如何设计电路使之实现所需功能的过程中特别有趣,培养了我的设计思维,增加了实际操作能力。
在让我体会到了设计电路的艰辛的同时,更让我体会到成功的喜悦和快乐。
通过这次实习通信系统的设计,使我更加清楚以后的发展及学习的方向。
最后感谢老师这个学期的指导和帮助!
七、参考文献
《ARM9嵌入式系统设计与开发应用》熊茂华、杨震伦编著清华大学出版社
《ARM9嵌入式系统设计与开发教程》于明编著电子工业出版社
《Linux嵌入式系统教程》马忠梅北京航空航天大学出版社
·。
嵌入式系统实验实验报告

嵌入式系统实验实验报告一、实验目的1.基本实验.Word 资料搭建PXA270嵌入式LINUX开发软硬件环境;安装LINUX操作系统;安装与配置建立宿主机端交叉编译调试开发环境;配置宿主机 PC 机端的minicom(或超级终端)、TFTP服务、NFS服务,使宿主PC机与PXA270开发板可以通过串口通讯,并开通TFTP 和NFS服务。
2.人机接口键盘驱动;LCD控制;触摸屏数据采集与控制实验;3.应用实验完成VGA显示;Web服务器实验;网络文件传输实验;多线程应用实验。
4.扩展应用实验完成USB摄像头驱动与视频采集;GPS实验;GSM/GPRS通讯;视频播放移植;USB蓝牙设备无线通讯;NFS文件服务器;蓝牙视频文件服务器。
5.QT实验完成基本嵌入式图形开发环境搭建;“Hello world!”QT初探;创建一个窗口并添加按钮;对象通信:Signal和Slot;菜单和快捷键;工具条和状态栏;鼠标和键盘事件;对话框;QT的绘图;俄罗斯方块;基于QT的GSM手机在嵌入式LINUX下的设计与实现。
二、实验内容1.人机接口实验实验十九键盘驱动实验▪实验目的:矩阵键盘驱动的编写▪实验内容:矩阵键盘驱动的编写▪作业要求:完成键盘加减乘除运算▪实验作业源码及注释:#INCLUDE<STDIO.H>#INCLUDE<STRING.H>#INCLUDE<STDLIB.H>#INCLUDE<FCNTL.H>#INCLUDE<UNISTD.H>#INCLUDE<MATH.H>#DEFINE DEVICE_NAME “/DEV/KEYBOARD”INT MAIN(VOID){INT FD;INT RET;UNSIGNED CHAR BUF[1];INT I,F,J;DOUBLE X;INT A[2]={0};CHAR PRE_SCANCODE=0XFF;FD=OPEN(DEVICE_NAME,O_RDWR);IF(FD==-1)PRINTF(“OPEN DEVICE %S ERROR\N”,DEVICE_NAME);ELSE{BUF[0]=0XFF;I=0;F=0;WHILE(1){READ(FD,BUF,1);.Word 资料IF(BUF[0]!=PRE_SCANCODE) //判断是否放开按键IF(BUF[0]!=0XFF){ //判断是否键入PRE_SCANCODE=BUF[0];USLEEP(50000);SWITCH(BUF[0]){CASE 0X12:{ //按下ENTERSWITCH(F){ //判断运算符CASE1:{J=I;I=(I+1)%2;X=A[I]+A[J];PRINTF(“%D+%D=%D”, A[I],A[J],X);BREAK;}//加法CASE 2:{J=I;I=(I+1)%2;X=A[I]-A[J];PRINTF(“%D-%D=%D”,A[I],A[J],X);BREAK;}//减法CASE3:{J=I;I=(I+1)%2;X=A[I]*A[J];PRINTF(“%D*%D=%D”,A [I],A[J],X);BREAK;}//乘法CASE4:{J=I;I=(I+1)%2;X=A[I]/A[J];PRINTF(“%D/%D=%D”,A [I],A[J],X);BREAK;}//除法DEFAUIT:}F=0;BREAK;}CASE 0X13:{F=1;I=(I+1)%2;BREAK;} //键入运算符CASE 0X14:{F=2;I=(I+1)%2;BREAK;}CASE 0X15:{F=3;I=(I+1)%2;BREAK;}CASE 0X16:{F=4;I=(I+1)%2;BREAK;}DEFAULT:A[I]=BUF[0]; //存入数据}}}RET=CLOSE(FD);}RETURN 0;}▪实验结果:实验效果图实验二十LCD控制实验▪实验目的:了解LCD的基本原理▪实验内容:使用总线方式驱动LCD模块,体会与QT下LCD显示的差别.Word 资料▪作业要求:在目标板的LCD上显示彩色竖条纹或彩色圆环。
精选嵌入式系统实习报告3篇

精选嵌入式系统实习报告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 微控制器。
《嵌入式系统》实验报告指导书(含答案).

实验一熟悉嵌入式LINUX开发环境1、实验目的熟悉UP-TECHPXA270-S的开发环境。
学会WINDOWS环境与嵌入式Linu环境共享资源的基本方法。
2、实验内容学习UP-TECHPXA270-S系统的使用、XP和虚拟机之间传送文件方法以及UP-TECHPXA270-S和虚拟机之间共享目录的建立方法。
3、预备知识了解UP-TECHPXA270-S的基本结构和配置,Linux基本知识。
4、实验设备硬件:UP-TECHPXA270-S开发板、PC机(内存500M以上)。
软件:PC机操作系统RADHAND LINUX 9+MIMICOM+RAM LINUX操作系统5、实验步骤(1)、在虚拟机下练习Linux常用命令。
(注意以下操作只能在[root@BC root]#,也就是root文件夹下运行,不然会导致系统不能启动)a. 学习命令通过“man ***”和“*** --help”得到的命令使用方法。
b.学习并掌握如下命令:ls,cd ,pwd,cat,more,less,mkdir, rmdir ,rm,mv,cp,tar,ifconfig(2)、XP与虚拟机之间传送文件(Samba服务器建立、网络设置、文件传送);(3)、了解系统资源和连线;(4)、开发板与虚拟机之间共享目录建立(设置NFS、开发板IP设置、目录挂载),挂载文件;(5)vi(vim)的使用(6)输入qt,启动桌面,按CTRL+C退出6、实验报告要求(1)、XP和虚拟机之间传送文件步骤;虚拟机共享XP文件:选择虚拟机设置,设置要共享的文件启动Linux进入/mnt/hgfs即可看到共享文件夹服务器设置——samba服务器(设置需要共享的目录)XP共享虚拟机文件:服务器设置——samba服务器(设置需要共享的目录)确保网络的PING通(即在同一局域网):1.虚拟机的192.168.1.234(RH9)2.XP的为192.168.1.1253.在XP 下点击开始-》运行(\\192.168.1.234)4.用户名bc密码123456以上实现了Linux虚拟机(RH9)和XP的文件的共享(2)、开发板与虚拟机之间建立共享目录以及文件挂载步骤;1.服务器设置——nfs服务器(设置需要共享的目录)2.设置开发板的ip地址:ifconfig eth0 192.168.1.53.在实验箱终端里输入mount -t nfs -o nolock 192.168.1.234:/up-techpxa270/exp /mnt/nfs4./mnt/nfs即为共享目录(3)、请画出虚拟机、PC机和ARM实验箱之间的硬件连接图;(4)、在Linux中怎样配置网络;系统设置->网络,在新的选项卡中(5)、实验中遇到的问题与解决过程。
嵌入式实验报告
目录嵌入式系统实践实验报告1(使用GCC编译C语言程序) (1)嵌入式系统实践实验报告2(Linux 中通过minicom串口下载程序) (14)嵌入式系统实践实验报告1五、实验结果与分析(含程序、数据记录及分析和实验总结等):图5-1 实验结果截图1图5-2 实验结果截图2图5-3 实验结果截图3 图5-4 实验结果截图4图5-5 实验结果截图5 图5-6 实验结果截图6图5-7 实验结果截图7 图5-8 实验结果截图8图5-9 实验结果截图9图5-10 实验结果截图10本次实验按照实验步骤进行,完全符合实验要求,达到了实验预期。
嵌入式系统实践实验报告2二、实验环境:硬件:Mini6410嵌入式实验平台。
软件:PC机操作系统CentOS+Minicom+Arm-Linux 交叉编译环境。
图2-1 嵌入式开发板顶视图四、实验步骤:1.建立工作目录图4-1此时我们新建的hello工作目录,在home目录下,已出现,说明,我们此次操作成功(这里我们要注意,记清楚自己在创建目录时,所在的位置),如下图所示:图4-2编写程序源代码在Linux 下的文本编辑器有许多,常用的是vi 和Xwindow界面下的gedit 等,我们在开发过程中推荐使用vi。
hello.c 源代码较简单,如下:/*****hello.c*****/#include <stdio.h>int main(){printf("Hello,World!\n");return0;}我们可以是用下面的命令来编写hello.c 的源代码,进入hello 目录使用vi 命令来编辑代码(如果不会使用vi命令来编辑,我们也可以使用gedit命令来编辑hello.c文件,命令为:gedithello.c)vi命令中常用命令有: esc i :wq :q!图4-3按“i”或者“a”进入编辑模式,将上面的代码录入进去,完成后按Esc 键进入命令状态,再用命令“:wq”保存并退出。
嵌入式实习报告3篇
嵌入式实习报告 3 篇嵌入式实习报告篇 1班级:优异 1301 姓名:刘 __短短三周的很快就过去了,在中软国际嵌入式方向班的第二次实习立刻就要结束了。
固然只有短短的三周,但我学会了好多知识,学习了在 Linux-Fedora14 操作系统的环境下达成鉴于Smart210SDK开发板和 DS18B20的温度收集及显示系统还有按键控制 LED灯并实现开机和关机的有关功能,这些知识让我们对嵌入式有了更进一步的认识与熟习。
作为一名大学生,纵观此刻的就业局势,国家高校的扩招,世界金融危机的横扫,大学生应该有一种安不忘危的紧急感,特别是对已经度过几年大学的我来说,毕业其实不是一个遥远的词汇。
宝剑锋从磨砺出,梅花香自苦寒来,缺乏了平时的锻炼,没有厚积自然不可以有薄发。
第一我得有思想上的紧急感,在学校学习的都是理论知识,实践经验则是少之又少。
综合能力强的人材才是这个社会需要的,成长成为社会需要的人材是我的个人奋斗目标。
有了强盛的精神动力,有了安如盘石的毅力,相信成功其实不遥远。
第一,经过这些天的实训我学到了好多知识。
这一阶段在Linux-Fedora14操作系统的环境使用Smart210SDK开发板做一些程序设计并烧写到 SD卡中经过 Smart210SDK开发板来实现程序的履行,经过对 Smart210SDK开发板的一步一步的熟习和认识我们展开了嵌入式的基本的程序烧写、调试、履行这些有关的锻炼过程。
最后我们做了两个项目:第一个是鉴于 Smart210SDK开发板的按键控制 LED灯而且实现开机和关机的有关功能与实现 --- 项目功能是:实现长按开发板上的 K1 键实现开机或关机,在开机状态下能够实现 K1 短按控制 LED1的点亮与熄灭、 K2 短按控制 LED2的点亮与熄灭、 K3 短按控制 LED3的点亮与熄灭、 K4 短按控制 LED4的点亮与熄灭。
项目波及的有关技术是:有关存放器的调用,延时子函数的调用,LED灯的初始化,实现按键的长按与短按的控制的C语言程序的设计与实现。
嵌入式系统实验报告
----WORD格式--可编辑--------嵌入式系统实验报告内容第一章: ARM2410CL 嵌入式系统基础实验实验一 ARM2410CL嵌入式教学实验系统实验报告要求:(1)简述嵌入式 LINUX 开发的流程。
实验二嵌入式 LINUX 开发环境的配置实验报告要求:(1)简述嵌入式 LINUX 开发环境配置的具体步骤。
(2)简述网络文件系统( NFS)。
第二章:系统实验实验一LINUX基本应用程序编写实验实验报告要求:(1)简述交叉编译器基本概念及简述计算机平台和ARM 平台编译环境的异同。
(2)简述 Makefile 文件作用和基本组成。
(3)ARM 中怎样将编写的应用程序下载到LINUX中?怎样在 LINUX 中运行该程序?实验二串行端口程序设计实验报告要求:(1)简述 LINUX 下的串口程序设计的基本步骤。
(2)编写一个简单的文件收发程序完成串口文件的下载并画出实验流程图。
第三章:内核与根文件系统实验实验一内核移植与编译实验实验报告要求:(1) LINUX 内核移植的基本概念。
(2)简述 LINUX 内核配置和编译步骤。
实验二根文件系统实验实验报告要求:(1)简述文件系统的基本概念并列出LINUX 下根文件系统的目录结构及习惯用法。
(2)在 LINUX 下,怎样制作 cramfs 格式的根文件系统?实验心得:(要求写出关于本次实验收获及实验教学的意见及建议)注: 1.实验报告要求使用实验报告纸完成。
2.实验报告需在 17 周周五之前完成统一交与班长处。
嵌入式系统实验报告
嵌入式系统设计实验报告班级: 20110612学号: ***********名:***成绩:指导教师:武俊鹏、刘书勇1. 实验一1.1 实验名称博创UP-3000实验台基本结构使用方法1.2 实验目的1.熟悉嵌入式系统开发式流程概述。
2.熟悉UP-net3000实验平台的核心硬件电路和外设。
3.熟悉ARM JTAG的安装与使用。
1.3 实验环境硬件:ARM 嵌入式开发平台、用于ARM7TDMI的JTAG仿真器、PC 机Pentium100以上、串口线。
软件:PC机操作系统win98、Win2000或WinXP、ARM SDT 2.51或ADS1.2集成开发环境、仿真器驱动程序、超级终端通讯程序。
1.4 实验内容及要求1.熟悉嵌入式系统开发式流程概述。
2.熟悉UP-net3000实验平台的核心硬件电路和外设。
3.熟悉ARM JTAG的安装与使用。
1.5 实验设计与实验步骤1.新建超级终端2.选择ARM 开发实验台串口。
完成新建超级终端的设置以后,可以选择超级终端文件菜单中的保存,将当前设置3.保存为一个特定超级终端到桌面上,以备后用。
用串口线将PC机串口和平台UART0 正确连接后,就可以在超级终端上看到程序输出的信息了。
4.启动开发板,按住任意键,使开发板进入BIOS设置状态。
5.在超级终端的界面上,显示BIOS版本信息,以及相应的测试指令。
操作时,要在PC机上输入小写的字母快捷键,进入到相应的功能中去。
6.按照超级终端上的提示信息,进行功能的测试。
1.6 实验过程与分析本次实验操作起来并不困难,因为此次实验属于验证型实验,按照实验资料所给的提示信息,以上面的步骤,即可得到实验的结果。
进入到BIOS界面后,按照超级终端上的提示信息来进行功能1.7 实验结果总结在实验过程中,我们进行的很顺利,没有遇到什么问题,在超级终端界面,按提示的快捷键来测试对应的功能。
如e:测试由ZLG7289 驱动的LED 显示,共分3 步,请看超级终端提示按任意键继续,同时观察LED 的变化,最后返回主菜单。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
.. ;.. 南京邮电大学通信学院 实 验 报 告
实验名称:基于ADS开发环境的程序设计
嵌入式Linux交叉开发环境的建立 嵌入式Linux环境下的程序设计 多线程程序设计
课程名称 嵌入式系统B 班级学号 姓 名 开课学期 2016/2017学年 第2学期 ..
;.. 实验一 基于ADS开发环境的程序设计 一、实验目的 1、学习ADS开发环境的使用; 2、学习和掌握ADS环境下的汇编语言及C语言程序设计; 3、学习和掌握汇编语言及C语言的混合编程方法。
二、实验内容 1、编写和调试汇编语言程序; 2、编写和调试C语言程序; 3、编写和调试汇编语言及C语言的混合程序;
三、实验过程与结果 1、寄存器R0和R1中有两个正整数,求这两个数的最大公约数,结果保存在R3中。 代码1:使用C内嵌汇编 #include int find_gcd(int x,int y) { int gcdnum;
__asm { MOV r0, x MOV r1, y LOOP: CMP r0, r1 SUBLT r1, r1, r0 SUBGT r0, r0, r1
BNE LOOP MOV r3, r0 MOV gcdnum,r3 //stop // B stop // END } return gcdnum;
} int main() { int a; a = find_gcd(18,9); .. ;.. printf("gcdnum:%d\n",a); return 0; } 代码2:使用纯汇编语言 AREA example1,CODE,readonly ENTRY MOV r0, #4 MOV r1, #9 start CMP r0, r1 SUBLT r1, r1, r0 SUBGT r0, r0, r1
BNE start MOV r3, r0 stop B stop END 2、寄存器R0 、R1和R2中有三个正整数,求出其中最大的数,并将其保存在R3中。 代码1:使用纯汇编语言 AREA examp,CODE,READONLY ENTRY
MOV R0,#10 MOV R1,#30 MOV R2,#20 Start CMP R0,R1 BLE lbl_a CMP R0,R2 MOVGT R3,R0 MOVLE R3,R2 B lbl_b lbl_a CMP R1,R2 MOVGT R3,R1 MOVLE R3,R2 lbl_b B . END 代码2:使用C内嵌汇编语言 #include int find_maxnum(int a,int b,int c) .. ;.. { int x; __asm { MOV r0,a MOV r1,b MOV r2,c
CMP r0,r1 BLE lbl_a //相等跳转 CMP r0,r2 MOVGT x,r0 MOVLE x,r2 //MOV r3,x B lbl_b lbl_a: CMP r1,r2 MOVGT x,r1 MOVLE x,r2 //MOV r3,x lbl_b: } return x; } int for_r3(int t) { //int t; __asm { MOV r3,t } return 0; } int main() { int a; a = find_maxnum(130,50,70); for_r3(a);
printf("max:%d\r\n",a); return 0; }
3、编程实现将从地址source开始的30个字节数据复制到地址为dest的地.. ;.. 方。 代码: NUM EQU 30 AREA Init, CODE, READONLY CODE32 ENTRY START LDR R0, =SOURCE LDR R1, =DEST MOV R2, #NUM MOV SP, #0X400 BLKCOPY MOV R3, R2, LSR #3 BEQ COPYWORDS STMFD SP!, {R4-R11} OCTCOPY LDMIA R0!, {R4-R11} STMIA R1!, {R4-R11} SUBS R3, R3, #1 BNE OCTCOPY LDMFD SP!, {R4-R11} COPYWORDS ANDS R2,R2, #7 BEQ STOP WORDCOPY LDR R3, [R0], #4 STR R3, [R1], #4 SUBS R2, R2, #1 BNE WORDCOPY STOP B STOP LTORG SOURCE DCD 1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4,5,6 DEST DCD 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 END
4、用汇编语言设计实现10!。 代码:使用纯汇编语言 AREA Fctrl,CODE,READONLY ENTRY CODE32 START MOV R8 , #10 MOV R9 , #0 .. ;.. SUB R0,R8,#1 Loop MOV R1 , R9 UMULL R8 , R9 , R0 , R8 MLA R9 , R1 , R0 , R9 SUBS R0 , R0 , #1 BNE Loop Stop B Stop END 5、实现字符串的逆序复制TEXT1=”HELLO”=> TEXT2=”OLLEH”。 代码:使用纯汇编语言 AREA invstring, CODE, READONLY ENTRY ATART ADR R1, TEXT1 ADR R2, TEXT2 MOV R3, #0 LOOP LDRB R0, [R1], #1 ADD R3, R3,#1 CMP R0, #0 BNE LOOP SUB R1, R1, #2 LOOP1 LDRB R0, [R1], #-1 STRB R0, [R2], #1 SUB R3, R3, #1 CMP R3, #1 BNE LOOP1 MOV R5, #&55 NOP TEXT1 = "HELLO",0 ALIGN TEXT2 = "OELLH" END
6、用调用子程序的方法实现1!+2!+3!+…….+10! 代码: asmp.s AREA JC, CODE, READONLY EXPORT JCP ENTRY JCP ADD R3, R0, #1 MOV R2, #1 .. ;.. MOV R1, #1 LOOP MUL R0, R1, R2 MOV R1, R0 ADD R2, R2, #1
CMP R2, R3 BNE LOOP NOP NOP MOV PC, LR END
PROGC.c #include Extern int JCP(int N) int main() { int res=0; int m=10; int i; for (i=1;i<=m;i++) res=res+JCP(i); printf(“The result =%d\n”,res); return 0; } 四、实验小结 ..
;.. 实验二 嵌入式Linux交叉开发环境的建立 一、实验目的 1、掌握嵌入式Linux交叉开发环境的建立方法 2、学习和掌握Linux常用命令 3、学习和掌握vi编辑器的使用
二、实验内容 1、搭建嵌入式Linux交叉开发环境 2、熟悉Linux的常用命令 3、熟悉vi编辑器的常用命令
三、实验原理 Linux系统是UNIX系统的分支,是UNIX的微机版。Linux具有异常丰富的驱动程序资源,支持各种主流的硬件设备与技术。Linux包含了现代的UNIX操作系统的所有功能特性,这些功能包括多任务、虚拟内存、虚拟文件系统、进程间通信、对称所处理器、多用户支持等。 Vi编辑器是所有UNIX和Linux下的标准编辑器。它包含3种工作模式。 嵌入式系统是专用的计算机系统,它对系统的功能、可靠性、成本、体积、功耗等有严格的要求。大部分嵌入式系统没有大容量存储设备,一般不能安装大型开发软件,系统的开发需要采用交叉开发模式。
四、实验过程与结果 实验用的是UP-NetARM2410-S试验箱,里面配有三星的芯片S3c2410X。 打开电脑上VMWare软件,在Windows系统下启动虚拟机里的Linux系统。接着需要 1. 宿主机的环境搭建 下载并运行VMWare,根据向导创建一台新虚拟机并选择Linux作为客户操作系统,再根据向导安装RedHat Linux 9.0。
2. 虚拟机中启动Linux操作系统 使用root登陆,用户名为root,密码为123456。之后对共享文件设置进行调整:打开settings界面,打开shared folders功能,同时将路径设置到有课前下载的软件的目录下。
3. 开发工具软件的安装 (1)安装gcc 打开Linux后,打开终端窗口,在共享的目录下找到install.sh并运行,命令如下: ls . / install.sh 安装程序将自动建立/arm2410s目录,并将所有的开发软件包安装到/arm2410s 目录下,同时自动配置编译环境,建立合适的符号链接。安装完成后在目录/opt/host/armv4l/bin/下应该能看到主编译器。