1 / 24
文档名称:

南邮嵌入式系统B实验报告.pdf

格式:pdf   大小:1,904KB   页数:24页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

南邮嵌入式系统B实验报告.pdf

上传人:1781111**** 2024/5/11 文件大小:1.86 MB

下载得到文件列表

南邮嵌入式系统B实验报告.pdf

相关文档

文档介绍

文档介绍:该【南邮嵌入式系统B实验报告 】是由【1781111****】上传分享,文档一共【24】页,该文档可以免费在线阅读,需要了解更多关于【南邮嵌入式系统B实验报告 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:..精品--南京邮电大学通信学院实验报告实验名称:基于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<>intfind_gcd(intx,inty){intgcdnum;__asm{MOVr0,xMOVr1,yLOOP:CMPr0,r1SUBLTr1,r1,r0SUBGTr0,r0,r1BNELOOP----精品:..精品--MOVr3,r0MOVgcdnum,r3//stop//Bstop//END}returngcdnum;}intmain(){inta;a=find_gcd(18,9);return0;}代码2:使用纯汇编语言AREAexample1,CODE,readonlyENTRYMOVr0,#4MOVr1,#9startCMPr0,r1SUBLTr1,r1,r0SUBGTr0,r0,r1BNEstartMOVr3,r0stopBstopEND2、寄存器R0、R1和R2中有三个正整数,求出其中最大的数,并将其保存在R3中。代码1:使用纯汇编语言AREAexamp,CODE,READONLYENTRYMOVR0,#10MOVR1,#30MOVR2,#20Start----精品:..精品--CMPR0,R1BLElbl_aCMPR0,R2MOVGTR3,R0MOVLER3,R2Blbl_blbl_aCMPR1,R2MOVGTR3,R1MOVLER3,:使用C内嵌汇编语言#include<>intfind_maxnum(inta,intb,intc){intx;__asm{MOVr0,aMOVr1,bMOVr2,cCMPr0,r1BLElbl_a//相等跳转CMPr0,r2MOVGTx,r0MOVLEx,r2//MOVr3,xBlbl_blbl_a:CMPr1,r2MOVGTx,r1MOVLEx,r2//MOVr3,xlbl_b:}returnx;}intfor_r3(intt){//intt;__asm----精品:..精品--{MOVr3,t}return0;}intmain(){inta;a=find_maxnum(130,50,70);for_r3(a);return0;}3、编程实现将从地址source开始的30个字节数据复制到地址为dest的地方。代码:NUMEQU30AREAInit,CODE,READONLYCODE32ENTRYSTARTLDRR0,=SOURCELDRR1,=DESTMOVR2,#NUMMOVSP,#0X400BLKCOPYMOVR3,R2,LSR#3BEQCOPYWORDSSTMFDSP!,{R4-R11}OCTCOPYLDMIAR0!,{R4-R11}STMIAR1!,{R4-R11}SUBSR3,R3,#1BNEOCTCOPYLDMFDSP!,{R4-R11}COPYWORDSANDSR2,R2,#7BEQSTOPWORDCOPYLDRR3,[R0],#4STRR3,[R1],#4----精品:..精品--SUBSR2,R2,#1BNEWORDCOPYSTOPBSTOPSOURCEDCD1,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,6DESTDCD0,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,0END4、用汇编语言设计实现10!。代码:使用纯汇编语言AREAFctrl,CODE,READONLYENTRYCODE32STARTMOVR8,#10MOVR9,#0SUBR0,R8,#1LoopMOVR1,R9UMULLR8,R9,R0,R8MLAR9,R1,R0,R9SUBSR0,R0,#1BNELoopStopBStopEND5、实现字符串的逆序复制TEXT1=”HELLO”=>TEXT2=”OLLEH”。代码:使用纯汇编语言AREAinvstring,CODE,READONLYENTRYATARTADRR1,TEXT1ADRR2,TEXT2MOVR3,#0LOOPLDRBR0,[R1],#1ADDR3,R3,#1CMPR0,#0BNELOOPSUBR1,R1,#2LOOP1----精品:..精品--LDRBR0,[R1],#-1STRBR0,[R2],#1SUBR3,R3,#1CMPR3,#1BNELOOP1MOVR5,#&55NOPALIGNEND6、用调用子程序的方法实现1!+2!+3!+…….+10!代码:,CODE,READONLYEXPORTJCPENTRYJCPADDR3,R0,#1MOVR2,#1MOVR1,#1LOOPMULR0,R1,R2MOVR1,R0ADDR2,R2,#1CMPR2,R3BNELOOPNOPNOPMOVPC,#include<>ExternintJCP(intN)intmain(){intres=0;intm=10;inti;for(i=1;i<=m;i++)res=res+JCP(i);----精品:..精品--printf(“Theresult=%dn”,res);return0;}四、实验小结----精品:..精品--实验二嵌入式Linux交叉开发环境的建立一、实验目的1、掌握嵌入式Linux交叉开发环境的建立方法2、学****和掌握Linux常用命令3、学****和掌握vi编辑器的使用二、实验内容1、搭建嵌入式Linux交叉开发环境2、熟悉Linux的常用命令3、熟悉vi编辑器的常用命令三、实验原理Linux系统是UNIX系统的分支,是UNIX的微机版。Linux具有异常丰富的驱动程序资源,支持各种主流的硬件设备与技术。Linux包含了现代的UNIX操作系统的所有功能特性,这些功能包括多任务、虚拟内存、虚拟文件系统、进程间通信、对称所处理器、多用户支持等。Vi编辑器是所有UNIX和Linux下的标准编辑器。它包含3种工作模式。嵌入式系统是专用的计算机系统,它对系统的功能、可靠性、成本、体积、功耗等有严格的要求。大部分嵌入式系统没有大容量存储设备,一般不能安装大型开发软件,系统的开发需要采用交叉开发模式。四、实验过程与结果ARM2410-S试验箱,里面配有三星的芯片S3c2410X。----精品:..--VMWare软件,在Windows系统下启动虚拟机里的Linux系统。,根据向导创建一台新虚拟机并选择Linux作为客户操作系统,。,用户名为root,密码为123456。之后对共享文件设置进行调整:打开settings界面,打开sharedfolders功能,同时将路径设置到有课前下载的软件的目录下。(1)打开Linux后,打开终端窗口,,命令如下:ls./,并将所有的开发软件包安装到/arm2410s目录下,同时自动配置编译环境,建立合适的符号链接。安装完成后在目录/opt/host/armv4l/bin/下应该能看到主编译器。----精品:..--2)=$PATH:$HOME/bin:/opt/host/armv41/bin/;-unknown-linux-(1)配置IP地址----精品:..------精品:..--2)关闭防火墙----精品:..--3)配置NFS。单击“Red”菜单→“系统设置”→“服务器设置”→“服务”,在“服务配置”窗口中勾选nfs,单击“开始”(4)NFS设置单击“Red”菜单→“系统设置”→“服务器设置”→“NFS服务器”,打开“NFS服务器配置”窗口,设置NFS共享。然后在NFS服务器中增加主机IP地址的链接许可和目录。完成配置。,“开始”→“所有程序”→“附件”→“通讯”→“超级终端”,新建一个通信终端。区号、电话号码随意输入。设置每秒位数为“115200”,数据位为“8”,无奇偶校验,停止位为“1”,无数据流控制。单击“确定”。----精品:..--程序的运行打开超级终端,启动Linux,屏幕显示:[/mnt/yaffs]在超级终端上执行挂载命令:[/mnt]mount–:/arm2410s/mnt/nfs挂载成功后可执行程序。五、实验小结----精品:..精品--实验三嵌入式Linux环境下的程序设计一、实验目的1、掌握嵌入式Linux环境下的程序设计方法2、学会编写Makefile文件二、实验内容1、熟悉嵌入式教学实验箱的使用2、编写C程序和Makefile文件3、编译程序产生可执行程序4、完成主机的挂载和程序的执行三、实验原理在嵌入式Linux环境下的程序设计方法有一下几个步骤:。前三个步骤在宿主机上完成,后面的步骤在目标机上完成。四、----精品:..精品--:#include<>main(){printf(“helloB14011221”);//学号}:CC=armv4l-unknown-linux-gccEXEC=helloOBJS=+=LDFLAGS+=-staticall:$(EXEC)$(EXEC):(OBJS)$(CC)$(LDFLAGS)–o$@$(OBJS)clean:----精品:..精品---rm–f$(EXEC)*.elf*.gdb*.“make”来编译程序。makecleanmake编译成功后,。,并将/arms2410s设置为共享目录。接下来启动超级终端,建立通讯,挂载。挂载命令:执行目录下的hello程序,显示如图:----精品:..精品--五、实验小结----精品:..精品--实验四多线程程序设计一、实验目的1、了解多线程程序设计的基本原理2、学****Linux多任务管理程序的开发3、学****pthread常用库函数的使用二、实验内容1、编写多线程程序和Makefile文件2、编译程序产生可执行程序3、完成主机的挂载和程序的执行三、实验原理(1)pthread_create:创建线程函数头文件:#include<>函数原型:intpthread_create(pthread_t*thread,pthread_attr_t*attr,void*(*start_routine)(void*),void*arg);获得父进程ID:pthread_self头文件:#include<>函数原型:pthread_tpthread_self(void);测试两个线程号是否相同:pthread_equal头文件:#include<>----精品:..精品--函数原型:intpthread_equal(pthread_tthread1,pthread_tthread2);(2)pthread_join:使一个线程等待另一个线程结束头文件:#include<>函数定义:intpthread_join(pthread_tthread,void**retval);描述:pthread_join()函数,以阻塞的方式等待thread指定的线程结束。当函数返回时,被等待线程的资源被收回。如果线程已经结束,那么该函数会立即返回。并且thread指定的线程必须是joinable的。参数:thread:线程标识符,即线程ID,标识唯一线程。retval:用户定义的指针,用来存储被等待线程的返回值。返回值:0代表成功。失败,返回的则是错误号。(3)线程创建函数:pthread_t:线程句柄类型定义:typedefunsignedlongintpthread_t;用途:pthread_t用于声明线程ID。sizeof(pthread_t)=8pthread_t,在使用printf打印时,应转换为u类型。四、实验过程与关键代码分析实验代码:#include<>#include<>#include<>----精品:..精品--/*-Thread1-------------------------------------*/voidthread1(){inti=0;while(1){if(i>3)pthread_exit(0);i++;sleep(1);}}/*--Thread2-----------------------------*/voidthread2(){inti=0;while(1){if(i>5)pthread_exit(0);i++;sleep(1);}----精品:..精品--}/*--------------------------------------------------------*/intmain(void){pthread_tt1,t2;pthread_create(&t1,NULL,(void*)thread1,NULL);pthread_create(&t2,NULL,(void*)thread2,NULL);pthread_join(t1,NULL);pthread_join(t2,NULL);return0;}实验结果:----精品:..精品--实验问题:一开始编译的时候出错,提示pthread_create未定义。网上查询原因以后得知:pthread库不是linux系统默认的库,,因此在编译时要加–lpthread参数,问题解决。五、实验小结----精品

最近更新

江苏省镇江市事业单位招聘考试(职业能力倾向.. 148页

江西省吉安市事业单位招聘考试(职业能力倾向.. 149页

对倒卖车票罪的理解 5页

江西省新余市事业单位招聘考试(职业能力倾向.. 147页

江西省萍乡市事业单位招聘考试(职业能力倾向.. 147页

江西省赣州市事业单位招聘考试(职业能力倾向.. 148页

河北邯郸馆陶县选调事业单位工作人员3人历年高.. 58页

河南省人力资源和社会保障厅直属院校2024年招.. 59页

浙江2024水利河口研究院及下属事业单位招聘5人.. 62页

浙江省2024年性选拔干部工作历年高频难、易点.. 60页

导游回扣现象 毕业论文 11页

浙江省绍兴市事业单位招聘考试(职业能力倾向.. 148页

浙江省舟山市事业单位招聘考试(职业能力倾向.. 148页

浙江龙泉市2024第三次面向社会公开招聘35名工.. 59页

湖北黄冈2024年市直事业单位公开招聘工作人员.. 59页

湖南省益阳市文化广电新闻出版局直属事业单位.. 60页

玉林市统计计算站2024年公开招聘工作人员历年.. 59页

甘肃省天水市选调生考试(行政职业能力测验).. 146页

甘肃省陇南地区选调生考试(行政职业能力测验.. 149页

福建古田县2024下半年事业单位招聘157人历年高.. 59页

福建省三明市事业单位招聘考试(职业能力倾向.. 148页

福建省厦门市事业单位招聘考试(职业能力倾向.. 148页

福建省福州市事业单位招聘考试(职业能力倾向.. 149页

绵阳市2024年下半年科创区事业单位公开招聘工.. 58页

西安市新城区2024年公开选拔副处级领导干部历.. 57页

贵州铜仁2024市直事业单位招聘拟聘历年高频难.. 58页

辽宁省丹东市事业单位招聘考试(职业能力倾向.. 148页

辽宁省大连市事业单位招聘考试(职业能力倾向.. 148页

基于STC89C52单片机的数字温度计(附源代码,完.. 16页

2024年安徽省普通高中学业水平测试卷 5页