南邮嵌入式系统B实验报告2016年度-2017年度-2

合集下载

嵌入式系统实习报告

嵌入式系统实习报告

嵌入式系统实习报告一、嵌入式系统实习报告1、实习项目简介(1)在实习期间,我参与了一项嵌入式系统开发项目。

该项目的目标是设计和开发一个嵌入式系统,用于控制并监测一个温室的环境参数,如温度、湿度和光照强度等。

为了实现这个目标,我需要进行硬件设计、嵌入式编程和外设控制等方面的实践。

2、硬件设计经验和成果展示(1)在硬件设计方面,我负责选择和设计相应的传感器和执行器,并与其他团队成员进行紧密合作,确保系统的整体性能和稳定性。

我了解了传感器的工作原理和选择方法,并根据项目的需求选择了适合的温度、湿度和光照传感器。

在执行器方面,我选择了合适的风扇和灯光控制器,以便对温室内的环境进行调控。

(2)在设计过程中,我还学习了相关的电路原理和布局设计。

我根据传感器和执行器的要求,设计了相应的电路,并进行了仿真和测试。

通过这个过程,我熟悉了硬件设计的流程和方法,并深入了解了嵌入式系统的硬件架构。

3、嵌入式编程经验和成果展示(1)在嵌入式编程方面,我使用C语言进行了嵌入式系统的软件开发。

我根据项目的需求,编写了相应的程序,实现了对传感器和执行器的数据读取和控制。

我学习了嵌入式系统的基本编程思想和方法,如中断处理、定时器和IO口控制等。

(2)在编程过程中,我遇到了一些困难,如如何优化程序的运行效率和内存开销,以及如何处理实时数据的采集和处理等。

为了解决这些困难,我查阅了相关的资料并与导师和同事进行了讨论和交流。

最终,我通过对程序的优化和对数据采集时间的控制,成功解决了这些问题,并达到了预期的效果。

4、外设控制经验和成果展示(1)为了实现对温室环境的控制,我学习并实践了外设控制的方法。

我使用了GPIO接口来控制风扇和灯光的开关,通过PWM信号来控制风扇和灯光的转速和亮度。

我还学习了串口通信和I2C总线通信等方法,以实现与其他设备的数据交换和控制。

(2)在外设控制过程中,我也遇到了一些问题,如如何正确配置和使用外设引脚、如何处理外设的中断和异常等。

嵌入式系统实验报告

嵌入式系统实验报告

嵌入式系统实验报告在本学期的嵌入式系统课程中,我与我的实验伙伴进行了多次实验。

在这篇报告中,我将分享我们实验的过程和结果。

实验一:GPIO控制LED灯在这个实验中,我们使用了Raspberry Pi 3B+开发板和一根杜邦线。

我们在电路板上将一盏LED灯与GPIO引脚连接起来,并编写了一个程序来控制这个引脚的电平状态。

在这个实验中,我们学习了GPIO的基本概念以及如何使用Python编程语言编写GPIO控制程序。

我们成功地让LED灯在不同的时间间隔内闪烁,并且了解了如何使用GPIO.setup()和GPIO.output()函数来控制GPIO引脚的输入和输出。

实验二:串口通信在第二个实验中,我们使用了两个Raspberry Pi 3B+开发板和两根串口线。

我们连接了两个板子的GPIO引脚,使得它们可以通过串口进行通信。

我们使用Python编写了两个程序来进行通信。

一个程序将发送一条消息,另一个程序将接收这个消息并将其打印出来。

通过使用串口通信,我们学会了如何使用Python编写程序来完成数据交换,并掌握了串口通信的基本概念。

实验三:Pi camera模块在第三个实验中,我们使用了Pi camera模块和一个Raspberry Pi 3B+开发板。

我们将摄像头连接到开发板上,并编写了一个程序来捕捉摄像头图像。

我们学习了如何使用Python编程语言来控制Pi camera模块,包括如何设置摄像头参数并如何捕捉静态图像。

我们还尝试了使用OpenCV库来处理图像。

实验四:蓝牙控制在最后一个实验中,我们使用了一个蓝牙透传模块、Raspberry Pi 3B+开发板和一些电路元件。

我们将蓝牙透传模块连接到GPIO引脚,并编写了一个程序来通过蓝牙信号控制电机。

在这个实验中,我们学习了如何使用蓝牙模块进行无线控制。

我们通过使用Python编写控制程序,成功地将蓝牙信号转换成GPIO引脚的电平信号来控制电机。

总结在这个嵌入式系统的实验中,我们学习了许多关于嵌入式系统的知识和技能。

嵌入式系统实习报告

嵌入式系统实习报告

嵌入式系统实习报告随着社会一步步向前发展,报告使用的次数愈发增长,报告成为了一种新兴产业。

那么什么样的报告才是有效的呢?以下是店铺为大家整理的嵌入式系统实习报告4篇,仅供参考,希望能够帮助到大家。

嵌入式系统实习报告篇1此次设计我们采用以LM3S2100为微控制器,并通过硬件和软件两方面设计,结合6位LED数码管,放大整形电路,来实现频率计在嵌入式系统中的开发与应用。

本次课程设计其主要目的是通过这学期所学的ARM知识,来实现频率计的功能,本次设计我们利用了定时计数器的功能,对输入的信号进行实时的、高精度的频率测量,并通过6位LED数码显示管显示测量结果。

论文中阐述了相关的硬件原理与应用方案,并在此基础上叙述了软件设计最终结合硬件和软件完成了本次设计。

关键词:LM3S2100、频率计、LED数码显示管1 绪论频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。

它是一种用十进制数字显示被测信号频率的数字测量仪器。

它的基本功能是测量正弦信号,方波信号及其他各种单位时间内变化的物理量。

在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,经常要用到频率计。

本频率计将采用定时、计数的方法测量频率。

测量范围在9kHz以下的方波,时基宽度为1us,10us,100us,1ms。

用ARM芯片实现自动测量功能。

基本设计原理是直接用十进制数字显示被测信号频率的一种测量装置。

它以测量周期的方法对方波的频率进行自动的测量。

1.1本次设计任务一.设计题目:ARM为内核的频率计二.主要功能:用ARM的定时器/计数器的定时和计数功能,外部扩展6位数码管,要求累计每秒进入ARM的外部脉冲个数,用LED数码管显示出来,或是用上位机显示。

三.设计要求:用protel画出最小系统和外围扩展电路。

显示部分可用LED数码管或是上位机显示。

要求小组成员分工明确。

1.2设计基本原理所谓频率,就是周期性信号在单位时间(1s)内变化的次数,若在一定时间间隔T内测得这个周期性信号的重复变化次数为N,则其频率可表示为被测信号经放大整形电路变成计数器所要求的脉冲信号,其频率与被测信号的频率相同。

南京邮电大学操作系统实验报告

南京邮电大学操作系统实验报告

通信与信息工程学院2015 / 2016学年第二学期实验报告课程名称:操作系统实验名称:1、LINUX及其使用环境2、进程管理3、进程间通信4、文件的操作和使用班级学号专业电子信息工程学生姓名指导教师赵建立实验名称试验一 LINUX及其使用环境实验类型验证实验学时1实验时间2016.6.2一、实验目的和要求1、了解UNIX的命令及使用格式。

2、熟悉UNIX/LINUX的常用基本命令。

3、练习并掌握UNIX提供的vi编辑器来编译C程序。

4、学会利用gcc、gdb编译、调试C程序。

二、实验环境Windows XP + VMWare + RedHat Enterprise Linux(RHEL) 4三、实验原理及内容1、熟悉LINUX的常用基本命令。

如ls、mkdir、grep等,学会使用man、help等其它命令,掌握vi编辑器的使用。

(1)显示目录文件 ls例:ls -al 显示当前目录下的所有文件(2)建新目录 mkdir例:mkdir test 新建一个test目录(3)删除目录rmdir(4)改变工作目录位置 cd例:cd test 更改工作目录至test目录下(5)显示当前所在目录pwd(6)查看目录大小du(7)文件属性的设置 chmod(8)命令在线帮助 man2、设计一个实现文件拷贝功能的shell程序。

(1)在文本编辑器里输入shell程序:#!/bin/shecho “please enter source file:”read soucecho please enter destination file:”read destcp $souc $destls $dest将程序保存在主目录下,命名为shell.(2)打开终端,输入ls -l,显示目录下所有文件的许可权、拥有者、文件大小、修改时间及名称。

输入 ./shell,运行shell程序。

输入源文件hello.c,目标文件B13011206.c。

南邮管理信息系统实验报告.doc

南邮管理信息系统实验报告.doc

南邮管理信息系统实验报告1 课内实验报告课程名:管理信息系统A任课教师:吴振宇专业:软件工程学号:B13051734姓名:风水师成绩:2016/2017学年第1学期南京邮电大学管理学院用友ERP软件实验报告1.实验过程描述通过学习用友ERP软件中供应链模块的使用方法,了解企业管理信息系统的总体功能结构,掌握软件的操作方法,熟悉企业运作的基本流程。

本次实验主要分为三个部分,采购模块(了解企业采购业务的标准化处理流程学习使用采购模块的操作方法,包括建立基础档案、录入期初数据、填写请购单、采购单、到货单、入库单),销售模块(了解企业库存管理业务的标准化处理流程学习使用库存模块的操作方法,包括建立基础档案、录入期初数据、填写入库单、出库单),以及库存模块(了解企业销售业务的标准化处理流程学习使用销售模块的操作方法,包括建立基础档案、录入期初数据、填写销售订单、发货单、发票)。

采购模块,销售模块,以及库存模块.主要就有以下几步流程:建账工作-->初始化设置-->日常业务-->期末工作-->账簿查询2.业务流程分析(1)采购模块:主要注意的就是在初始化数据是的操作.1、基础档案设置(左下角)——基础档案(1)部门及职员档案(基础档案——机构人员)部门档案-增加-01采购部-保存-02-保存-03-保存-退出人员档案-增加-填0101,蓝色字体必填,单击放大镜,双击内容-保存-增加-填0201-保存-增加-填0301-保存-退出再次退出人员档案(2)客户档案、供应商档案(基础档案——客商信息-供应商档案)增加-填01-保存-……保存-退出客户信息为何无法录入?因为没有启用销售模块,不提供客户管理功能。

如何启用销售模块?基本信息-系统启用-销售管理-当月首日。

现在录入客户信息,选择客商信息-客户档案(3)存货信息(基础档案——存货)计量单位(分组-增加-填写编号、名称、类别-退出,然后选择单位-增加-填写01到04-保存-最后退出A.存货分类:先增加,然后填写,然后保存-最后退出C、存货档案-最后退出(5)仓库档案:(基础档案——业务)-最后退出(6)收发类别:(基础档案——业务)输入1和2时要指定收发标志,输入101 102…时无需指定,因为收发类别已经确定了(101不可能代表出库)收发发发发发发2、期初数据系统启用时如果已经发生下列业务:上月末从南京钢铁厂(供货单位)购进原煤200吨,入1号仓库,入库类别为101采购入库,暂估单价6000。

南邮操作系统实验报告

南邮操作系统实验报告

操作系统课程实验报告实验题目:Linux进程信号通信、进程消息通信专业软件工程学生姓名班级学号教师陈兴国指导单位计算机学院日期 2016-9-30一、实验目的1.了解Linux的信号,熟悉Linux系统中进程之间软中断通信的基本原理2.学习如何利用消息缓冲队列进行进程间的通信,并加深对消息通信机制的理解。

二、实验指导1.kill(),signal(),lockf()系统调用kill()系统调用系统调用格式:int kill(pid,sig)参数定义: int pid,sid;pid是一个或一组进程的标识符,sig是要发送的软中断信号。

pid>0时,核心将信号发送给进程pid;pid=0时,核心将信号发送给与发送进程同组的所有进程;pid<0时,核心将信号发送给搜有用户标识符真正等于发送进程的有效用户标识号的进程。

signal()系统调用预置对信号的处理方式,允许调用进程控制软中断信号。

系统调用格式:signal (sig,function)参数定义:Signal (sig,function)int sig;void (*func)();sig用于指定信号的类型,sig为0则没有收到任何信号。

function:在该进程中的一个函数地址,在核心态返回用户态时,它以软中断信号的序号作为参数调用该函数,对除了信号SIGNAL,SIGTRAP和SIGPWR以外的信号,核心自动地重新设置软中断信号处理程序的值为SIG_DFL,一个进程不能捕获SIGKILL信号。

lockf()系统调用用作锁定文件的某些段或者整个文件。

系统调用格式:lockf(files,function,size)参数定义:int lockf(files,function,size)int files,function;long size;2.消息的创建,发送和接收使用系统调用msgget(),msgsnd,msgrec,及msgctl()函数编写消息的发送和接收程序三、实验过程描述与结果分析1.Linux进程信号通信#include <stdio.h>#include <signal.h>#include<unistd.h>#include <stdlib.h>void waiting(),stop();int wait_mark;/*用来避免锁的竞争,保证p1,p2无法在同一时刻获得文件的锁,即lockf(stdout,1,0)*/main(){int p1,p2,stdout;signal(SIGINT,stop);/*if press the ^c or ^break ,jump to stop function*/ while((p1=fork())==-1) ;/* create child process p1*/if(p1>0){while( ( p2=fork() ) ==-1);/* create child process p2*/if(p2>0){wait_mark=1;sleep(5);/* 接收到^c信号,转stop函数*/waiting();kill(p1,16); /*向子进程p1发送软中断信号16*/kill(p2,17);/*向子进程p2发送软中断信号17*/wait(0);/*wait()系统方法,父进程会一直等待,直到子进程因暂停或者终止发来软中断信号为止*/wait(0);printf("Parent process is killed!\n");exit(0);}else{//p2被杀死的逻辑,响应kill(p1,17);wait_mark=1;signal(17,stop);/*接收到父进程发来的软中断信号,然后执行stop函数*、*/waiting();lockf(stdout,1,0);/*锁定输出,使得下面的语句可以正常输出打印*/printf("Child process 2 is killed by parent!\n");lockf(stdout,0,0);/*解锁输出*/exit(0);/*正常终止子进程p2,使得父进程跳出wait(0),得以继续执行*/ }}else{//p1被杀死的逻辑,响应kill(p2,16);wait_mark=1;signal(16,stop);waiting();lockf(stdout,1,0);printf("Child process 1 is killed by parent!\n");lockf(stdout,0,0);exit(0);}}void waiting(){while(wait_mark!=0);}void stop(){wait_mark=0;}按住Ctrl+c,可见执行结果2.Linux进程消息通信1.server.c#include <sys/types.h>#include <sys/ipc.h>#include <sys/msg.h>#include <stdio.h>#define MSGKEY 75struct msgform{long mtype;char mtext[256];};int main(int argc, char const *argv[]) {struct msgform msg;int msgqid;int j,pid,*pint;msgqid=msgget(MSGKEY,0777|IPC_CREAT);for(;;){msgrcv(msgqid,&msg,256,1,0);pint=(int*)msg.mtext;pid=*pint;printf("server:receive from pid %d\n",pid);msg.mtype=pid;*pint=getpid();msgsnd(msgqid,&msg,sizeof(int),0);}return 0;}2.client.c#include <sys/types.h>#include <sys/ipc.h>#include <sys/msg.h>#include <stdio.h>#define MSGKEY 75struct msgform{long mtype;char mtext[256];};int main(int argc, char const *argv[]){struct msgform msg;int msgqid,pid,*pint;msgqid=msgget(MSGKEY,0777);pid=getpid();pint=(int*)msg.mtext;*pint=pid;msg.mtype=1;msgsnd(msgqid,&msg,sizeof(int),0);msgrcv(msgqid,&msg,256,pid,0);printf("client:receive from pid%d\n",*pint);return 0;}运行结果:四、自我评析与总结1.你认为你完成的实验那些地方做得比较好或比较出色做的相对比较快,一些命令比较熟悉一点2.差距与局限,什么地方做得不太好,或什么地方可以做得更好程序的编写,C语言遗忘的很严重,还是得常用3.从本实验得到的收获。

《嵌入式系统》实验报告指导书(含答案).

《嵌入式系统》实验报告指导书(含答案).

实验一熟悉嵌入式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. 实习前的准备工作在实习开始前,我们参加了为期一周的嵌入式系统基础知识培训,学习了嵌入式系统的基本概念、硬件组成、软件结构以及开发工具等。

通过培训,我们对嵌入式系统有了初步的认识,为实习打下了基础。

2. 实习过程实习过程中,我们分为若干小组,每组选定一个项目进行嵌入式系统开发。

我所在的小组选定了基于STM32微控制器的温湿度监控系统项目。

实习过程主要包括以下几个环节:(1)需求分析:根据实际应用场景,确定监控系统需要实现的功能,如温度、湿度测量、数据存储、实时显示等。

(2)硬件选型:根据需求分析,选择合适的微控制器、传感器、存储器等硬件组件。

(3)硬件调试:搭建硬件平台,对各个组件进行调试,确保硬件系统正常工作。

(4)软件设计:编写嵌入式软件,实现对硬件的控制和数据处理。

(5)系统集成与测试:将硬件和软件整合在一起,进行系统测试,确保系统稳定可靠。

3. 实习成果通过实习,我们完成了基于STM32微控制器的温湿度监控系统开发,实现了以下功能:(1)温度、湿度测量:采用DS18B20温度传感器和DHT11湿度传感器,实现实时测量温度和湿度。

(2)数据存储:将测量数据存储在SD卡中,以便后续分析。

(3)实时显示:通过LCD显示屏实时显示温度和湿度数据。

(4)报警功能:当温度或湿度超过设定阈值时,系统发出报警提示。

三、实习收获与反思通过本次实习,我收获颇丰,具体表现在以下几个方面:1. 知识与技能:掌握了嵌入式系统的基本原理,学会了使用嵌入式开发工具,提高了实际动手能力。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
start
CMP r0, r1
SUBLT r1, r1, r0
SUBGT r0, r0, r1
BNE start
MOVr3, r0
stop
B stop
END
2、寄存器R0、R1和R2中有三个正整数,求出其中最大的数,并将其保存在R3中。
代码1:使用纯汇编语言
AREA examp,CODE,READONLY
//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
MOV PC, LR
END
PROGC.c
#include <stdio.h>
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);
3、学习和掌握汇编语言及C语言的混合编程方法。
二、实验内容
1、编写和调试汇编语言程序;
2、编写和调试C语言程序;
3、编写和调试汇编语言及C语言的混合程序;
三、实验过程与结果
1、寄存器R0和R1中有两个正整数,求这两个数的最大公约数,结果保存在R3中。
代码1:使用C内嵌汇编
#include<stdio.h>
挂载命令:
执行目录下的hello程序,显示如图:
五、实验小结
实验四多线程程序设计
一、实验目的
1、了解多线程程序设计的基本原理
2、学习Linux多任务管理程序的开发
3、学习pthread常用库函数的使用
二、实验内容
1、编写多线程程序和Makefile文件
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
3. 开发工具软件的安装
(1)安装gcc
打开Linux后,打开终端窗口,在共享的目录下找到install.sh并运行,命令如下:
ls
. / install.sh
安装程序将自动建立/arm2410s目录,并将所有的开发软件包安装到/arm2410s 目录下,同时自动配置编译环境,建立合适的符号链接。安装完成后在目录/opt/host/armv4l/bin/下应该能看到主编译器。
for_r3(a);
printf("max:%d\r\n",a);
return 0;
}
3、编程实现将从地址source开始的30个字节数据复制到地址为dest的地方。
代码:
NUM EQU30
AREA Init, CODE, READONLY
CODE32
ENTRY
START
LDR R0, =SOURCE
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
二、实验内容
1、熟悉嵌入式教学实验箱的使用
2、编写C程序和Makefile文件
3、编译程序产生可执行程序
4、完成主机的挂载和程序的执行
三、实验原理
在嵌入式Linux环境下的程序设计方法有一下几个步骤:
1.编写源程序
2.编写Makefile文件
3.编译程序
4.运行和调试程序
5.将生产的可执行文件加入文件系统。
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);
1. 宿主机的环境搭建
下载并运行VMWare,根据向导创建一台新虚拟机并选择Linux作为客户操作系统,再根据向导安装RedHat Linux 9.0。
2. 虚拟机中启动Linux操作系统
使用root登陆,用户名为root,密码为123456。之后对共享文件设置进行调整:打开settings界面,打开shared folders功能,同时将路径设置到有课前下载的软件的目录下。
嵌入式系统是专用的计算机系统,它对系统的功能、可靠性、成本、体积、功耗等有严格的要求。大部分嵌入式系统没有大容量存储设备,一般不能安装大型开发软件,系统的开发需要采用交叉开发模式。
四、实验过程与结果
实验用的是UP-NetARM2410-S试验箱,里面配有三星的芯片S3c2410X。
打开电脑上VMWare软件,在Windows系统下启动虚拟机里的Linux系统。接着需要
代码:
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, #1CMP R2, R3
BNE LOOP
NOP
NOP
南京邮电大学通信学院
实验报告
实验名称:基于ADS开发环境的程序设计
嵌入式Linux交叉开发环境的建立
嵌入式Linux环境下的程序设计
多线程程序设计
课程名称嵌入式系统B
班级学号
姓名
开课学期2016/2017学年第2学期
实验一基于ADS开发环境的程序设计
一、实验目的
1、学习ADS开发环境的使用;
2、学习和掌握ADS环境下的汇编语言及C语言程序设计;
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”。
(1)配置IP地址
(2)关闭防火墙
(3)配置NFS。
单击“Red”菜单→“系统设置”→“服务器设置”→“服务”,在“服务配置”窗口中勾选nfs,单击“开始”
(4)NFS设置
单击“Red”菜单→“系统设置”→“服务器设置”→“NFS服务器”,打开“NFS服务器配置”窗口,设置NFS共享。
然后在NFS服务器中增加主机IP地址的链接许可和目录。完成配置。
#include <stdio.h>
intfind_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
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内嵌汇编语言
[/mnt/yaffs]
在超级终端上执行挂载命令:
[/mnt] mount –t nfs 192.168.0.121:/arm2410s /mnt/nfs
挂载成功后可执行程序。
五、实验小结
实验三嵌入式Linux环境下的程序设计
相关文档
最新文档