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

上传人:re****.1 文档编号:497807600 上传时间:2022-12-30 格式:DOC 页数:17 大小:614.52KB
返回 下载 相关 举报
南邮嵌入式系统B实验报告_第1页
第1页 / 共17页
南邮嵌入式系统B实验报告_第2页
第2页 / 共17页
南邮嵌入式系统B实验报告_第3页
第3页 / 共17页
南邮嵌入式系统B实验报告_第4页
第4页 / 共17页
南邮嵌入式系统B实验报告_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《南邮嵌入式系统B实验报告》由会员分享,可在线阅读,更多相关《南邮嵌入式系统B实验报告(17页珍藏版)》请在金锄头文库上搜索。

1、南京邮电大学通信学院实 验 报 告实验名称:基于ADS开发环境的程序设计 嵌入式Linux交叉开发环境的建立 嵌入式Linux环境下的程序设计 多线程程序设计 课程名称 嵌入式系统B 班级学号 姓 名 开课学期 2016/2017学年 第2学期 实验一 基于ADS开发环境的程序设计一、实验目的1、学习ADS开发环境的使用;2、学习和掌握ADS环境下的汇编语言及C语言程序设计;3、学习和掌握汇编语言及C语言的混合编程方法。二、实验内容1、编写和调试汇编语言程序;2、编写和调试C语言程序;3、编写和调试汇编语言及C语言的混合程序;三、实验过程与结果1、寄存器R0和R1中有两个正整数,求这两个数的最

2、大公约数,结果保存在R3中。代码1:使用C内嵌汇编#includeint find_gcd(int x,int y)intgcdnum;_asmMOV r0, xMOV r1, yLOOP:CMP r0, r1SUBLT r1, r1, r0SUBGT r0, r0, r1BNE LOOPMOVr3, r0MOV gcdnum,r3/stop/B stop/ENDreturn gcdnum;int main()int a;a=find_gcd(18,9);printf(gcdnum:%dn,a);return 0;代码2:使用纯汇编语言AREA example1,CODE,readonlyEN

3、TRYMOV r0, #4MOV r1, #9startCMP r0, r1SUBLT r1, r1, r0SUBGT r0, r0, r1BNE startMOVr3, r0stopB stopEND2、寄存器R0 、R1和R2中有三个正整数,求出其中最大的数,并将其保存在R3中。代码1:使用纯汇编语言AREA examp,CODE,READONLYENTRYMOV R0,#10MOV R1,#30MOV R2,#20StartCMP R0,R1BLE lbl_aCMP R0,R2MOVGT R3,R0MOVLE R3,R2B lbl_blbl_aCMP R1,R2MOVGT R3,R1MO

4、VLE R3,R2lbl_bB .END代码2:使用C内嵌汇编语言#include intfind_maxnum(int a,int b,int c)int x;_asmMOV r0,aMOV r1,bMOV r2,cCMP r0,r1BLE lbl_a/相等跳转CMP r0,r2MOVGT x,r0MOVLE x,r2/MOV r3,xB lbl_blbl_a:CMP r1,r2MOVGT x,r1MOVLE x,r2/MOV r3,x lbl_b:return x;int for_r3(int t) /int t;_asmMOV r3,treturn 0;int main()int a;a

5、 = find_maxnum(130,50,70);for_r3(a); printf(max:%drn,a);return 0;3、编程实现将从地址source开始的30个字节数据复制到地址为dest的地方。代码:NUM EQU 30 AREA Init, CODE, READONLY CODE32 ENTRY STARTLDR R0, =SOURCE LDR R1, =DEST MOV R2, #NUM MOV SP, #0X400 BLKCOPY MOV R3, R2, LSR #3 BEQ COPYWORDS STMFD SP!, R4-R11 OCTCOPYLDMIA R0!, R4

6、-R11 STMIA R1!, R4-R11 SUBS R3, R3, #1 BNE OCTCOPY LDMFD SP!, R4-R11 COPYWORDSANDS R2,R2, #7 BEQ STOP WORDCOPYLDR R3, R0, #4 STR R3, R1, #4 SUBS R2, R2, #1 BNE WORDCOPY STOPB STOPLTORG 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,6DEST DCD 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

7、0,0,0,0,0,0,0,0,0,0,0,0END4、用汇编语言设计实现10!。代码:使用纯汇编语言AREA Fctrl,CODE,READONLY ENTRYCODE32STARTMOV R8 , #10MOV R9 , #0 SUB R0,R8,#1 LoopMOV R1 , R9 UMULL R8 , R9 , R0 , R8MLA R9 , R1 , R0 , R9SUBS R0 , R0 , #1 BNE Loop Stop B StopEND5、实现字符串的逆序复制TEXT1=”HELLO”= TEXT2=”OLLEH”。代码:使用纯汇编语言AREA invstring, COD

8、E, READONLY ENTRYATART ADR R1, TEXT1ADR 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,0ALIGN TEXT2 = OELLH END6、用调用子程序的方法实现1!+2!+3!+.+10!代码:asmp.s AR

9、EA JC, CODE, READONLYEXPORT JCPENTRY JCPADD R3, R0, #1MOV R2, #1MOV R1, #1LOOP MUL R0, R1, R2MOV R1, R0ADD R2, R2, #1CMP R2, R3BNE LOOPNOPNOPMOV PC, LRENDPROGC.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 =%dn”,res);return 0; 四、

10、实验小结实验二 嵌入式Linux交叉开发环境的建立一、实验目的1、掌握嵌入式Linux交叉开发环境的建立方法2、学习和掌握Linux常用命令3、学习和掌握vi编辑器的使用二、实验内容1、搭建嵌入式Linux交叉开发环境2、熟悉Linux的常用命令3、熟悉vi编辑器的常用命令三、实验原理Linux系统是UNIX系统的分支,是UNIX的微机版。Linux具有异常丰富的驱动程序资源,支持各种主流的硬件设备与技术。Linux包含了现代的UNIX操作系统的所有功能特性,这些功能包括多任务、虚拟内存、虚拟文件系统、进程间通信、对称所处理器、多用户支持等。Vi编辑器是所有UNIX和Linux下的标准编辑器。

11、它包含3种工作模式。嵌入式系统是专用的计算机系统,它对系统的功能、可靠性、成本、体积、功耗等有严格的要求。大部分嵌入式系统没有大容量存储设备,一般不能安装大型开发软件,系统的开发需要采用交叉开发模式。四、实验过程与结果实验用的是UP-NetARM2410-S试验箱,里面配有三星的芯片S3c2410X。打开电脑上VMWare软件,在Windows系统下启动虚拟机里的Linux系统。接着需要1. 宿主机的环境搭建 下载并运行VMWare,根据向导创建一台新虚拟机并选择Linux作为客户操作系统,再根据向导安装RedHat Linux 9.0。2. 虚拟机中启动Linux操作系统 使用root登陆,用户名为root,密码为123456。之后对共享文件设置进行调整:打开settings界面,打开shared folders功能,同时将路径设置到有课前下载的软件的目录下。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > 总结/计划/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号