您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 嵌入式系统技术实验报告
南京理工大学嵌入式系统实验报告指导老师:实验日期:2016年1月姓名:学号:学院(系):班级:实验一:熟悉Linux开发环境一、实验目的熟悉Linux开发环境,学会基于S3C2410的Linux开发环境的配置和使用。使用Linux的armv4l-unknown-linux-gcc编译,使用基于NFS方式的下载调试,了解嵌入式开发的基本过程。二、实验仪器硬件:UP-NETARM2410-S嵌入式实验平台、PC机。软件:PC机操作系统REDHATLINUX9.0+MINICOM+ARM-LINUX开发环境三、实验内容本次实验使用RedhatLinux9.0操作系统环境,安装ARM-Linux的开发库及编译器。创建一个新目录,并在其中编写hello文件。学习在Linux下的编程和编译过程,以及ARM开发板的使用和开发环境的设置。下载已经编译好的文件到目标开发板上运行。四、实验步骤1、建立工作目录[root@zxtsmile]#mkdirhello[root@zxtsmile]#cdhello2、编写程序源代码实际的hello.c源代码较简单,如下:#includestdio.hvoidmain(void){printf(“helloworld\n”);}用下面的命令来编写“hello.c”的源代码,进入hello目录使用vi命令来编辑代码:[root@zxthello]#vihello.c按“i”或者“a”进入编辑模式,录入上面的代码,完成后按Esc键进入命令状态,再用命令“:wq”,保存并退出。这样在当前目录下建立了一个名为“hello.c”的文件。3、编译链接要使上面的“hello.c”程序能够运行,将其经过编译和连接,生成可执行文件。输入gcchello.c-ohello进行编译,再输入./hello运行程序,观察结果1。4、在之前的基础上,进入hello文件,输入armv4l-unknown-linux-gcchello.c-ohello和cphello/arm2410s进行交叉编译,输入ifconfigeth0192.168.0.121设置IP;输入telnet192.168.0.115登入开发板,输入root开始进行挂载:mount-onolock192.168.0.121:/arm2410s/mnt;再通过cdmnt找到hello文件,最后输入./hello运行程序,观察结果2。五、实验结果观察实验结果1,屏幕上显示helloworld截图如图1所示:图1运行程序观察结果的输出六、思考题1.请简述Makefile的作用,分析其工作机理与流程?makefile关系到了整个工程的编译规则。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率2.试简述如何编写和编译可以在目标板上运行的可执行程序?嵌入式开发是在windows下装虚拟机,虚拟机里装Linux,然后再与板子连,可以利用SMB在linux下创建文件,在windows下编辑,然后再在虚拟机里用交叉编译器编译代码生成可执行文件,可执行文件可以通过NFS方式运行,也可以做文件系统烧到板子上3实验二:多线程应用程序设计一、实验目的了解多线程程序设计的基本原理以及学习pthread库函数的使用。二、实验仪器硬件:UP-NETARM2410-S嵌入式实验平台,PC机。软件:PC机操作系统REDHATLINUX9.0+MINICOM+ARM-LINUX开发环境。三、实验内容熟悉几个重要的PTHREAD库函数的使用,掌握共享锁和信号量的使用方法。进入/arm2410s/exp/basic/02_pthread目录,运行make产生pthread程序,使用NFS方式连接开发主机进行运行实验。四、实验步骤1、编写并编译简单的多线程示例程序2、阅读源代及编译应用程序进入exp/basic/02_pthread目录,使用vi编辑器或其他编辑器阅读理解源代码。运行make产生pthread可执行文件。3、下载和调试切换到minicom终端窗口,使用NFSmount开发主机的/arm2410s到/host目录。进入/host/exp/basic/pthread目录,运行pthread,观察运行结果的正确性。五、实验结果实验结果如图2.1所示4图2.1多线程实验结果截图实验四:A/D接口实验一、实验目的了解在linux环境下对S3C2410芯片的8通道10位A/D的操作与控制。二、实验设备及工具UP-NETARM2410-S嵌入式实验平台、PC机Pentium500以上,硬盘10G以上。PC机操作系统REDHATLINUX9.0+MINICOM+ARM-LINUX开发环境三、实验内容学习A/D接口原理,了解实现A/D系统对于系统的软件和硬件要求。阅读ARM芯片文档,掌握ARM的A/D相关寄存器的功能,熟悉ARM系统硬件的A/D相关接口。利用外部模拟信号编程实现ARM循环采集全部前4路通道,并且在超级终端上显示。四、实验步骤1、阅读理解源码进入/arm2410s/exp/basic/04_ad目录,使用vi编辑器或其他编辑器阅读理解源代码。2、编译应用程序运行make产生ad可执行文件[root@zxt/]#cd/arm2410s/exp/basic/04_ad/5[root@zxt04_ad]#make[root@zxt04_ad]#lsadhardware.hmain.oMakefile.baks3c2410-adc.hbinmain.cMakefilereadme.txtsrc3、下载调试换到minicom终端窗口,使用NFSmount开发主机的/arm2410s到/host目录。telnet192.168.0.115root[/mnt/yaffs]mount-tnfs-onolock192.168.0.56:/arm2410s/host[/mnt/yaffs]cdad[/mnt/yaffs/ad]insmods3c2410-adc.o[/mnt/yaffs]cd/host/exp/basic/04_ad/[/host/exp/basic/04_ad]./ad本实验运行结果如下图4.1所示图2.1A/D接口实验运行结果六、思考题1.ARM的A/D功能的相关寄存器有哪几个,对应的地址是什么?62.如何启动ARM开始转换A/D,有几种方式?转化开始时ARM是如何知道转换哪些通道的?如何判断转换结束?7答:方式一:软件启动1)定义与A/D转换相关的寄存器2)定义与A/D转换相关的寄存器初始化3)RADCCON=OX1方式二:硬件启动1)复位A/D转换器2)外界用高电平触发ADCCON[0]转换开始时知道转换哪通道的方式,通过对ADCCON[5:3]的为赋值来选择通道。实验五:D/A接口实验一、实验目的掌握MAX504D/A转换芯片的使用方法掌握不带有D/A的CPU扩展D/A功能的主要方法了解D/A驱动程序加入内核的方法二、实验仪器硬件:UP-NETARM2410-S嵌入式实验平台、PC机。软件:PC机操作系统REDHATLINUX9.0+MINICOM+ARM-LINUX开发环境三、实验内容了解实现D/A系统对于系统的软件和硬件要求。阅读MAX504芯片文档,掌握其使用方法。四、实验步骤1.阅读理解源码进入/arm2410s/exp/basic/05_da目录,使用vi编辑器阅读理解源代码。2.编译应用程序运行make产生da可执行文件da_main[root@zxt/]#cd/arm2410s/exp/basic/05_da/[root@zxt05_da]#make[root@zxt05_da]#lsda_mainda_main.cda_main.odocdriversMakefiles3c44b0-spi.h3.下载调试切换到minicom终端窗口,使用NFSmount开发主机的/arm2410s到/host目录,然后进入/host/exp/05_da/drivers目录,用insmodexio.o命令插入D/A驱动,并用lsmod命令查看是否已经插入。[/mnt/yaffs]cd/host/exp/basic/05_da/[/host/exp/basic/05_da]cddrivers/[/host/exp/basic/05_da/drivers]insmodexio.oUsingexio.o[/host/exp/basic/05_da/drivers]lsmodModuleSizeUsedbyNottaintedexio23840(unused)8i2c-tops2141040(unused)进入/host/exp/basic/05_da目录,运行./da_main,观察运行结果的正确性。[/host/exp/basic/05_da]./da_main01五、实验结果通过ls查看da_main用insmodexio.o命令插入D/A驱动,并用lsmod命令查看是否已经插入。进入/host/exp/basic/05_da目录,运行./da_main,观察运行结果如下图5.1所示,电压为1v:图5.1运行da_main输出结果六、思考题1.D/A转换器的分类。D/A转换器的内部电路构成无太大差异,一般按输出是电流还是电压、能否作乘法运算等进行分类。大多数D/A转换器由电阻阵列和n个电流开关(或电压开关)构成。按数字输入值切换开关,产生比例于输入的电流(或电压)。电压输出型(如TLC5620)电压输出型D/A转换器虽有直接从电阻阵列输出电压的,但一般采用内置输出放大器以低阻抗输出。直接输出电压的器件仅用于高阻抗负载,由于无输出放大器部分的延迟,故常作为高速D/A转换器使用。9电流输出型(如THS5661A)电流输出型D/A转换器很少直接利用电流输出,大多外接电流—电压转换电路得到电压输出,后者有两种方法:一是只在输出引脚上接负载电阻而进行电流—电压转换,二是外接运算放大器。用负载电阻进行电流—电压转换的方法,虽可在电流输出引脚上出现电压,但必须在规定的输出电压范围内使用,而且由于输出阻抗高,所以一般外接运算放大器使用。此外,大部分CMOSDA转换器当输出电压不为零时不能正确动作,所以必须外接运算放大器。当外接运算放大器进行电流电压转换时,则电路构成基本上与内置放大器的电压输出型相同,这时由于在D/A转换器的电流建立时间上加入了运算放入器的延迟,使响应变慢。此外,这种电路中运算放大器因输出引脚的内部电容而容易起振,有时必须作相位补偿。乘算型(如AD7533)D/A转换器中有使用恒定基准电压的,也有在基准电压输入上加交流信号的,后者由于能得到数字输入和基准电压输入相乘的结果而输出,因而称为乘算型D/A转换器。乘算型D/A转换器一般不仅可以进行乘法运算,而且可以作为使输入信号数字化地衰减的衰减器及对输入信号进行调制的调制器使用。一位D/A转换器一位D/A转换器与前述转换方式全然不同,它将数字值转换为脉冲宽度调制或频率调制的输出,然后用数字滤波器作平均化而得到一般的电压输出(又称位流方式),用于音频等场合。2.D/A转换器的主要技术指标。1)分辩率(Resolution)指最小模拟输出量(对应数字量仅最低位为‘1’)与最大量(对应数字量所有有效位为‘1’)之比。2)建立时间(SettingTime)是将一个数字量转换为稳定模拟信号所需的时间,也可以以为是转换时间。DA中常用建立时间来描述其速度,而不是AD中常用的转换速率。一般地,电流输出DA建立时间较短,电压输出DA则较长。其他指标还有线性度(Linearity),转换
本文标题:嵌入式系统技术实验报告
链接地址:https://www.777doc.com/doc-7377056 .html