嵌入式系统实验指导书

嵌入式系统实验指导书
嵌入式系统实验指导书

《嵌入式系统原理》实验指导书

目录

《嵌入式系统原理》实验指导书 (1)

目录 (1)

实验报告要求: ....................................................................................... 错误!未定义书签。

实验一Linux的初步使用 (2)

实验二linux驱动程序 (5)

实验三交叉编译程序 (11)

实验四编译内核与下载 (15)

实验一Linux的初步使用

实验目的:

熟练掌握linux命令的使用,linux程序的编译与调试

实验学时:

3学时

实验内容:

1.掌握虚拟机VMWARE的基本应用;

2. 掌握虚拟机中RED hat linux 的安装;

3. 掌握基本linux命令的使用;

4. 掌握linux程序编译与调试。

实验设备:

装有VMWARE的PC机一台,RED HAT安装光盘(或ISO映像文件)。

实验步骤:

1.创建一虚拟机MYLINUX

1)从桌面上单击“VMWARE WORKSTAION”启动虚拟机软件,单击新建虚拟

机,指定保存路径“D:\MYLINUX”,选择虚拟机操作系统类型:linux,然后

完成虚拟机的创建;

2)双击虚拟机中CDROM,选择将虚拟机光驱连接修改为:使用ISO映像,并指

定映像文件为共享磁盘:I:\redhat-disk-1.iso。

3)单击虚拟机中启动虚拟机,开始从光盘上启动系统并安装linux。

2.安装linux

注意:

在虚拟机和主机之间进行切换方法:鼠标单击虚拟机,可以进入;要回到主机,请用CTRL+ALT

1)输入回车,进入图形化安装;也可以linux text进入文本界面安装;

2)选择Skip(跳过CD检查),回车

3)点击NEXT(下一步)

4)安装语言,选择简体中文;或选择English

5)安装类型,选择定制:Custom

6)分区选择:自动分区

7)网络配置:选择为自动获取IP,无防火墙;

8)设置根(root)用户密码:123456

9)安装包选择:至少要选择:开发工具、编辑工具、内核开发工具。如果实在不

知选什么,可以选择:所有(everything),但这样安装时间较长。

10)安装过程中提示插入第2张磁盘时,请用鼠标右击虚拟机的标题栏,找到可移

动设备中的CDROM,然后指定RED-HAT-disk-2.iso作为光盘映像

文件。

3.练习linux命令的使用:

启动linux后,在登录框中输入用户名:root,密码:123456(不显示),直到进入提示符状态#:

执行如下命令,掌握基本命令的使用

1)mkdir /mydir //建立文件夹

2)cp /proc/version /mydir/ //复制文件

3)cd /mydir //进入文件夹

4)mv version myfile //重命名文件

5)ls //显示目录

6)cat myfile //显示文件内容

7)vi myfile (按:q退出) //编辑文件

下面是光驱的装载

1)cd /mnt

2)ls

若没有CDROM,执行mkdir cdrom创建CDROM

1)mount cdrom //装载光驱

2)cd cdrom

3)ls

4)cd ..

5)umount cdrom //卸载光驱

4.vi 编辑器的使用

用VI编辑一个文件:vi helloworld.c

按i键进入插入模式,输入如下内容:

#include

#inlcude

int main()

{

printf(“hello world!\n”);

return 0 ;

}

按ESC键退出插入模式.

按:w保存文件

按:q退出文件编辑.

5.使用gcc命令编译该文件:

gcc –o helloworld helloworld.c

若有错,根据提示的行号修改错误,直到编译没有错误.

执行:

./helloworld

查看是否能正确输出:hello world!.

6 .用GDB调试test1.c

带调试信息的编译:

gcc –g –o test1 test1.c

启动调试器:

gdb test1

在提示符下执行如下命令进行调试:

1)list

2)用回车继续执行上述命令,找到第2个函数的入口点行号

3)break n //n为第2个函数的入口点行号(第19行)

4)run

5)step

6)next

7)用watch i,string2[i]来观察变量的变化

反复执行next,直到循环退出.

7.参考test2.c修改test1.c ,重新编译并运行,看是否能正确得到反转的结果. 实验小结:

小结实验过程中遇到了哪些问题,是如何解决的?

实验二linux驱动程序

实验目的:

1)熟悉驱动程序的结构;

2)掌握驱动程序各函数的作用

3)熟悉驱动程序的编译与运行

实验学时:

3学时

实验设备:

装有VMWARE的PC机一台,RED HAT安装光盘(或ISO映像文件)。

实验步骤:

1.参照附录中的参考代码,使用VI完成skeleton.c与skeleton_test.c的编写.

2.执行如下命令编译程序:

export PATH=/opt/host/armv4l/bin:$PATH

armv4l-unkown-linux-gcc -D__KERNEL__ _DMODULE -I/s3c2410/kernel/include -o skeleton.o skeleton.c

armv4l-unkonw-linux-gcc -o skeleton_test skeleton_test.c

3.使用驱动程序

插入模块:Insmod skeleton.o

查看设备文件:

/dev/skeleton

执行测试程序

./skeleton_test

卸载模块:rmmod skeleton.o

实验小结:

参考代码:

1. 驱动程序skeleton.c

/* driver/char/skeleton.c

* this is a skeleton char device driver

*/

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define IOWRITE 0xf021

#define IOCLEAR 0xf022

#define SKELETON_MAJOR 220

#define STRLEN 100

char skeleton_drvinfo[100];

devfs_handle_t devfs_skeleton;

int skeleton_open(struct inode *,struct file *);

int skeleton_release(struct inode *,struct file *);

int skeleton_ioctl(struct inode *,struct file *,unsigned int ,unsigned long); ssize_t skeleton_read(struct file *,char * ,size_t,loff_t *);

ssize_t skeleton_write(struct file *,const char * ,size_t,loff_t *);

static struct file_operations skeleton_fops={

ioctl: skeleton_ioctl,

open: skeleton_open,

read: skeleton_read,

write: skeleton_write,

release: skeleton_release,

};

int skeleton_open(struct inode *inode,struct file *filp)

{

printk("open ok\n");

return 0;

}

ssize_t skeleton_read(struct file *filp,char *buf,size_t size,loff_t *offp) {

char * _buf;

_buf=skeleton_drvinfo;

copy_to_user(buf,_buf,sizeof(skeleton_drvinfo);

return 0;

}

ssize_t skeleton_write(struct file *filp,char *buf,size_t size,loff_t *offp) {

char * _buf;

_buf=skeleton_drvinfo;

copy_from_user(_buf,buf,sizeof(skeleton_drvinfo);

return 0;

}

int skeleton_release(struct inode *inode,struct file *filp)

{

printk("release ok\n");

return 0;

}

int skeleton_ioctl(struct inode *inode,struct file *filp,unsigned int command,unsigned arg) {

int err=0;

switch(command)

{

case IOWRITE:

printk("write ok\n");

return 0;

case IOCLEAR:

printk("clear ok\n");

return 0;

default:

err=-EINV AL;

}

return err;

}

int __init skeleton_init(void)

{

devfs_skeleton=

devfs_register(NULL,"skeleton",DEVFS_FL_DEFAULT,

SKELETON_MAJOR,0,

S_IFCHR|S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP,

&skeleton_fops,NULL);

return 0;

}

void __exit skeleton_exit (void)

{

devfs_unregister(devfs_skeleton);

}

module_init(skeleton_init);

module_exit(skeleton_exit);

2.测试程序skeleton_test.c

#include

#include

#include

char *device="/dev/skeleton";

int skeleton_fd;

char cBuffer[100];

char readchar[100];

int main( int argc,char *argv[])

{

int i,count;

char *constchar;

constchar="This is a skeleton device driver\n";

sprintf(cBuffer,constchar);

printf("driver info is %s\n",cBuffer);

fflush(stdout);

skeleton_fd=open(device,O_RDWR);

if (skeleton_fd==-1)

{

printf("Unable to open skeleton device");

exit(0);

}

count=write(skeleton_fd,cBuffer,100);

count=read(skeleton_fd,readchar ,100);

printf("driver info is :%s\n",readchar );

fflush(stdout);

close(skeleton_fd);

}

实验三交叉编译程序

实验目的:

第一次正面接触嵌入式Linux 的开发,第一次编写嵌入式系统的应用程序,亲身实践一下开发的步骤。

实验内容:

参照本教程给出的步骤,一步一步地完成实验,编写、编译并运行HelloWorld 程序。

实验设备:

GX-ARM9-2410EP 实验仪,预装REDHAT 9 PC 机一台,正确配置开发环境。

实验步骤:

开发时使用宿主机上的交叉编译、汇编及连接工具形成可执行的二进制代码,(这种可执行代码并不能在宿主机上执行,而只能在目标板上执行。)然后把可执行文件下载到目标机上运行。调试时的方法很多,可以使用串口,以太网口等,具体使用哪种调试方法可以根据目标机处理器所提供的支持作出选择。宿主机和目标板的处理器一般都不相同,宿主机为Intel 处理器,而目标板为SAMSUNG S3C2410。GNU 编译器提供这样的功能,在编译编译器时,可以选择开发所需的宿主机和目标机从而建立开发环境。所以在进行嵌入式开发前第一步的工作就是要安装一台装有指定操作系统的PC 机作宿主开发机。

对于嵌入式Linux,宿主机上的操作系统一般要求为Redhat Linux,在此,我们推荐使用Redhat9.0 作为宿主机(开发主机)的操作系统。需要宿主机器在硬件上具有标准串口,并口,网口;软件上具有目标板的linux 内核、ramdisk 文件系统映像以及bootloader。软件的更新通常使用串口或网口,最初的bootloader 烧写是通过并口进行的。

1.交叉编译工具链的安装

在宿主机上我们要建立交叉编译调试的开发环境。环境的建立需要许多的软件模块协同工作,这将是一个比较繁杂的工作,但现在已完全由光盘上的安装脚本自动完成了。

将光盘插入CDROM ,执行下列命令:

mount /dev/cdrom /mnt/cdrom /*挂载光盘*/

cd /mnt/cdrom /*进入光盘*/

./install /*执行开发环境自动安装脚本*/

当开发环境安装完毕后,会在根目录下生成两个目录:/S3C2410_linux :嵌入式系统开发工作目录/opt :交叉编译环境目录目标板

2 配置minicomminicom

很像Windows 下面的超级终端,我们利用minicom 作为被开发目标板的终端,开发前需要正确的配置minicom。

在宿主机Linux 终端中输入:minicom -s对minicom 进行设置。

选择Serial port setup,将串口配置为:波特率115200,8 位数据位,1 位停止位,没有流控,选择Save setup as dfl并将其设置存为默认值。

然后选择Exit 退回到minicom 界面。

正确连接串口线,PC 机端使用在MINICOM 中被配置的串口,ttyS0 或tt yS1。目标板请使用最左边的串口0

3 配置TFTP

TFTP 的全称是Trivial File Transfer Protocol,即简单文件传输协议。使用此服务传送文件时没有数据校验、密码验证,非常适合小型文件的传输。在通过TFTP 传送文件时,需要服务端和客户端,对于我们嵌入式系统来讲,服务端就是我们的宿主机。

首先检查宿主机端的TFTP 服务是否已经开通。在宿主机上执行:setup选择System services,将tftp 一项选中(出现[*]表示选中),并去掉ipchains 和iptables两项服务(即去掉它们前面的*号)。然后还要选择Firewall configuration,选中No firewall。最后,退出setup。

执行如下命令以启动TFTP 服务:service xinetd restart

简单测试一下TFTP 服务器是否可用,即自己tftp 自己。例如在宿主机上执行:

cp /s3c2410_linux/Image/zImage /tftpboot/ /*在本地准备一个文件*/

tftp 192.168.2.199 /*用tftp 服务登陆本机*/

tftp> get zImaget /*使用tftp服务得到文件zImage*/

ftp>q /*退出tftp服务*/

若出现信息“Received 741512 bytes in 0.7 seconds”就表示TFTP 服务器配置成功了。若弹出信息“Timed out”,则表明未成功。此时可用如下命令确认tftp 服务是否开通netstat -a|grep tftp若TFTP 服务器没有配置成功,需要按照上述步骤重新检查一遍。

4 配置NFS 服务

NFS(N twork File System)指网络文件系统,是Linux 系统中经常使用的一种服务,NFS 是一个RPC service,很像windows 中的文件共享服务。它的设计是为了在不同的系统间使用, 所以它的通讯协议设计与主机及作业系统无关。当使用者想用远端档案时只要用"mount"就可把remote 档案系统挂接在自己的档案系统之下,使得远端的档案在使用上和local 的档案没

两样。在NFS 服务中,主机(Servers)是被挂载(mount)端,为了远端客户机(Clients)可以访问主机的文件。

主机配置两方面内容:

打开NFS 服务,允许“指定用户”使用。打开主机的NFS 服务可以使用命令:setup选择System services,将nfs 一项选中(出现[*]表示选中),并去掉ipchains 和iptables两项服务(即去掉它们前面的*号)。然后退出。

“指定用户”是通过编辑文件“exports”:

vi /etc/exports

在exports 文件中加入:

/nfs 192.168.2.122(rw,insecure,no_root_squash,no_all_squash)然后按 再输入: 再输入wq 然后回车,存储退出。其中“/nfs”是一个可以被IP 地址是“192.168.0.122”计算机读写的文件夹。

重新启动服务,使我们的设置生效:/etc/rc.d/init.d/nfs restart现在NFS 就可以使用了。

5 交叉编译与运行简单程序

1.打开实验仪电源,按实验箱Reset 键,在minicom 中应该会出现启动画面,按回车键进

入提示符状态

2.输入:ifconfig eth0 192.168.2.122 设置网卡IP地址

3.mount -t nfs –o nolock 192.168.2.120:/nfs /mnt(等待重新连接,请出现提示符后,再输入)

如果此处出现问题,请检查主机NFS 服务配置,和网络的使用100M 网络的接口。

4.执行:

cd /mnt

ls

5.宿主机上打开另外一个终端输入如下命令,进入/nfs 目录

cd /nfs

9.交叉编译HelloWorld.c

/opt/host/armv4l/bin/armv4l-unknown-linux-gcc –o HelloWorld HelloWorld.c

等到再次出现提示符,代表程序已经正确编译。如果此步出现错误信息,请查看错误信息,并且重新编辑原来的 C 文件修改错误。直到正确编译。此条命令的含义是,调用交叉编译器armv4l-unknown-linux-gcc 编译HelloWorld.c 文件,编译后生成HelloWorld 文件,此时生成的HelloWorld 文件不能在PC 上运行,只能在ARM 上运行。

10.回到开有minicom 的终端上输入ls此时会看到刚才编译的文件。

输入./HelloWorld程序运行输出结果

实验小结:

根据编译一个应用程序,并且在嵌入式系统上运行和调试它。通过这个实验,可以对嵌入式开发有一个更为直观的认识。

实验四编译内核与下载

实验目的:

了解编译ARM 系统Bootloader 的过程

实验内容:

分别为开发板编译Bootloader、内核配置与裁剪并烧写到目标板上。

实验设备:

GX-ARM9-2410EP 实验仪,预装REDHAT 9 PC 机一台,正确配置开发环境。

实验步骤:

1.首先我们编译PPCboot、Linux 内核。

打开Linux 下的一个终端,并且输入:

cd /s3c2410_linux/ppcboot-2.0.0 进入ppcboot 的目录

make clean 这是清理掉以前的编译结果

make 编译

当见到正常结束后就表示已经可以正确的编译完成PPCboot。在/ppcboot-2.0.0/下面会看到新生成的ppcboot.bin,这个文件就是可以烧写到实验仪上的文件,可以用ll ppcboot.bin查看当前文件生成的时间,是否是最新的。可以将新生成的ppcboot.bin 文件复制到文件夹/tftpboot 下面备用。

2.编译Linux内核

cd /s3c2410_linux/kernel /进入Linux 内核文件所在的目录

ls /查看内核文件结构.

make clean /*推荐使用*/

make menuconfig 这条命令是用来调用菜单式的配制内核界面,相应的还有命令行式的配制方法make config

Code maturity level options这个选项的作用域是整个编译配置空间,如果这里选中相应的级别,不符合此条件的选项就不会在后面出现。这个选项是代码的成熟程度的选择,意思是如果你需要一个非常成熟稳定的系统,那么有些新功能就不能使用,一个包含有新功能的系统就可能存在相应的风险。可以根据你自己的需求选择。Loadable module support核对内核模块的支持选项,包括是否支持和支持的一些配置等,选择此这个选项是你的内项会使内核文件变大。

System Type统的支持,如什么样的ARM 内核,什么样的配置平台等,实验仪提供的内核是使用不同的处理器其系统或是不同的内核时此处的选项可能不同。选择对系给S3C2410 提供的,如果General Setup这里是内核本身的一些属性的配置,包括压缩方式,网络支持等很多属性。

Parallel port support这个选项顾名思义就是选择内核对并口的支持情况,当选中对并口支持后会出现新的选项来配置支持不同类型不同模式的并口。Memory Technology Devices (MTD)对MTD 设备的支持选项,这个选项对嵌入式系统比较重要,内核对各种Flash 的支持都在这里配置,包括种类,分区等。

Plug and Play configuration内核对即插即用的支持选项,这个选项在嵌入式系统中极少使用。Block devices内核对块设备的支持选项,各种磁盘系统的支持

Multi-device support多设备的支持,主要是RAID 和LVM 的支持,这个在嵌入式系统中极少使用Networking options内核的网络支持选项,Linux 对网络的支持是内核级的,在这里配置对不同网络协议的支持情况。

Network device support支持在这里选择,也是常用的选项,例如系统配置对网络设备的支持选项,通常对网卡的不同的网卡时就要在这里选中不同的选项。Amateur Radio support业余无线电支持,嵌入式中极少应用。

Irda (infrared) supportIrDA 支持,就是红外线通信口的支持E备,包括CDROM HARDDISK TAP 等ATA/ID /MFM/RLL supportIDE 口的支持,这里选择支持不同的IDE 设SCSI supportSCSI 设备的支持选项,也比较少使用I2O device support智能IO 结构支持,嵌入式也比较少使用

ISDN supportISDN 的支持选项Input core support输入设备核支持,通常当需要支持USAB 的HID 设备时选中

Character devices字符型设备的支持,这个选项是嵌入式系统经常使用的选项,嵌入式系统中大量的设备都属于Char 型的设备s持Multimedia device多媒体设备的支----- 88 ----- File systems内核对不同文件系统的支持选项,在这里选择需要支持的文件系统的选择,这里主要选择是否把Console 定位到VGA 上面,和对Frame-Buffer的支Console drivers控制台持

Soun对声d音设备的支持选项Mutimedia Capabilities Port drivers多媒体设备的支持选项USB support各种USB 设备的支持Bluetooth support蓝牙设备的支持----- 91 -----

Kernel hacking内核DeBug 用的一些选项,用于报告各种信息LoadLoad and Alternate Configration File不同的配置文件

Save Configration to an Alternate File保存配置文件

make dep 检查文件依赖关系

make bzImage 生成内核

make modules 编译模块文件

3烧写各部分到目标板

这里用户可在minicom 中按下CTRL+C,然后回车即可进入命令提示符。

正常启动后会x 是S3C2410 处理器上的Linu实验在实验仪的LCD 屏幕上看到,MIZI 的图案,MIZIlinux 移植版。

实验小结:

本次实验,我们进行了Linux 各个部分烧写,组成了一个可以使用的完整的系统,在后面的实验都是基于我们的这个系统进行的。

基于STM32F103嵌入式实验指导书

实验一、STM32的开发环境与简单工程 一、实验目的 1、熟悉STM32开发板的开发环境; 2、熟悉MDK创建和配置STM32工程项目的基本流程; 3、熟悉STM32官方库的应用; 4、规范编程格式。 二、实验内容 本次实验配置MDK集成开发环境,新建一个简单的工程文件,添加STM32官方库并配置工程,编译运行这个工程文件。下载已经编译好的文件到开发板中运行。学会在程序中设置断点,观察系统内存和变量,为调试应用程序打下基础。 三、预备知识 基本单片机硬件知识、单片机软件编程语言、程序创建和调试的基本方法。 四、实验设备及工具 硬件:STM32开发平台 软件:STM32官方库;PC机操作系统Windows 98、Windows 2000或Windows XP;KEIL MDK 集成开发环境;串口转usb驱动。 五、实验步骤 1、在准备存放工程文件的目录下创建一新文件夹,命名为Proj_GPIO;在Proj_GPIO 文件夹里面分别再创建四个文件夹:CMSIS、USER、LIB、OBJ。如图1。 其中CMSIS(Cortex Microcontroller Software Interface Standard)用于存放Cortex-M 处理器系列的与供应商无关的软件抽象层和启动相关的代码文件; USER用于存放我们自己编写的代码文件(含自己移植的底层驱动),还有MDK工程; LIB存放所有的官方底层驱动库文件; OBJ用于工程输出的过程文件和最终的二进制文件。 图1

2、将官方库STM32F10x_StdPeriph_Lib_V3.5.0.rar解压。 1)把STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport下的所有文件和STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x 下的所有文件都到第一步所创建的CMSIS文件夹中; 2)把STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver目录下的文件(目录inc和scr)复制到第一步创建的LIB文件夹中; 3)把STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template目录下的stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h三个文件复制到USER文件夹中。 3、打开MDK软件,新建一个工程Proj_GPIO保存到Proj_GPIO/USER中。CPU选择STM32F103ZE,如图2; 图2 4、新建一个空文档main.c保存到USER中,然后根 据绝对路径将文件对应添加到工程中,如右图。 5、配置工程属性,右键点击工程文件中的Target 1选择Options for Target ‘Target 1’打开工程选项对话框。做如下修改: 1)Output选项勾选Create HEX File,然后点击Select Folder for Objects按钮定位输出文件保存目录到工程的OBJ文件; 2)Listing选项,同样点击Select Folder for Listings定位输出文件保存目录到工程的OBJ 文件; 3)C/C++选项,Define中填入 STM32F10X_HD, USE_STDPERIPH_DRIVER系统的两个基 本宏定义;配置Include Paths属性,加入工 程中包含头文件的目录;如右图

嵌入式系统综合实验一

嵌入式系统综合实验一

学号: 装 订 线 实验报告 课程名称: 嵌入式系统设计 指导老师:马永昌 成绩:________________ 实验名称:综合实验一dht11和人体感应传感器 实验类型:验证型 同组学生姓名:孙凡原 三、主要仪器设备(必填) 四、操作方法和实验步骤 五、实验数据记录和处理 六、实验结果与分析(必填) 七、讨论、心得 一、实验目的和要求 1.掌握字符设备驱动程序的基本结构和开发方法 2.掌握用户空间调用设备驱动的方法 3.掌握用户和内核的交互 二、实验内容和原理 专业:测控技术与仪器 姓名:颜睿

装订 线1.编写温湿度传感器DHT11驱动,传输打印温湿度信息 2.编写人体感应传感器驱动,控制LED灯亮灭 原理: 温湿度传感器DHT11: 1.引脚图 实际使用传感器没有NC引脚 2.数据采集 a.数据总时序 用户主机发送一次开始信号后,DHT11 从低功耗模式转换到高速模式,待主机开始信号结束后,DHT11 发送响应信号,送出40bit 的数据,幵触发一次信采集。

b.主机发送起始信号 连接DHT11的DATA引脚的I/O口输出低电平,且低 电平保持时间不能小于18ms,然后等待DHT11 作出 应答信号。 装 线 订 c.检测从机应答信号 DHT11 的DATA 引脚检测到外部信号有低电平时, 等待外部信号低电平结束,延迟后DHT11 的DATA 引脚处于输出状态,输出80 微秒的低电平作为应答信 号,紧接着输出80 微秒的高电平通知外设准备接收数 据。

装 订线 d.接收数据 (1)数据判定规则 位数据“0”的格式为:50 微秒的低电平和26-28 微秒的高电平,位数据“1”的格式为:50 微秒的低电平加70微秒的高电平。 接收数据时可以先等待低电平过去,即等待数据线拉高,再延时60us,因为60us大于28us且小于70us,再检测此时数据线是否为高,如果为高,则数据判定为1,否则为0。 (2)数据格式 一次传送40 位数据,高位先出 8bit 湿度整数数据+ 8bit 湿度小数数据+8bit 温度整

嵌入式ADS实验指导书

实验一嵌入式微处理器系统的开发环境 一、实验环境 PC机一台 软件: ADS 1.2集成开发环境一套 二、实验目的 1.了解嵌入式系统及其特点; 2.熟悉嵌入式系统的开发环境和基本配置并能编写简单的汇编程序 三、实验容 1.嵌入式系统的开发环境、基本配置 2.使用汇编指令完成简单的加法实验 四、实验步骤 (1)在D:\新建一个目录,目录名为experiment。 (2)点击 WINDOWS 操作系统的“开始|程序|ARM Developer Suite v1.2 |Code Warrior for ARM Developer Suite”启动Metrowerks Code Warrior,或双击“ADS 1.2”快捷方式启动。启动ADS 1.2 如图1-1所示: 图1-1启动ADS1.2 (3) 在CodeWarrior 中新建一个工程的方法有两种,可以在工具栏中单击“New”按钮, 也可以在“File”菜单中选择“New…”菜单。这样就会打开一个如图1-2 所示的对话框。选择【File】->【New…】,使用ARM Executable Image工程模板建立一个工程,名称为ADS,目录为D:\experiment。 图1-2 新建文件 在这个对话框中为用户提供了7 种可选择的工程类型:

1)ARM Executabl Image:用于由ARM 指令的代码生成一个ELF 格式的可执行映像文件;2)ARM Object Library:用于由ARM 指令的代码生成一个armar 格式的目标文件库; 3)Empty Project:用于创建一个不包含任何库或源文件的工程; 4)Makefile Importer Wizard:用于将Visual C 的nmake 或GNU make 文件转入到CodeWarrior IDE 工程文件; 5)Thumb ARM Executable Image:用于由ARM 指令和Thumb 指令的混和代码生成一个可执行的ELF 格式的映像文件; 6)Thumb Executable image:用于由Thumb 指令创建一个可执行的ELF 格式的映像文件;7)Thumb Object Library:用于由Thumb 指令的代码生成一个armar 格式的目标文件库。(4)选择【File】->【New…】建立一个新的文件TEST1.S,设置直接添加到项目中。输入如程序代码,并保存,此时在工程窗口中可以看到TEST1.S文件。 图1-3 新建test1.s (5) 选择【Edit】->【Perferences…】,在Font选项设置字体是Fixedsys,Script是CHINESE_GB2312。 图1-4 设置字体 (6) 选择【Edit】->【DebugRel Settings…】,在DebugRel Settings对话框的左边选择ARM Linker项,设置地址。 点击“DebugRel Settings…”图标按钮,即可进行工程的地址设置、输出文件设置、编

2013嵌入式系统课程设计任务书

嵌入式系统 课程设计任务书 辽宁工程技术大学软件学院 嵌入式软件系

一、课程设计目的和任务 《嵌入式系统课程设计》是软件工程专业(嵌入式软件方向)学生的专业实践课程,是学习《嵌入式系统》课程后必要的实践教学环节。课程设计是检验学生是否掌握相关专业课程知识的重要手段,以学生为主体,充分调动学生的积极性和创造性,重视学生实际动手能力的培养。 通过本课程设计使学生加深理解、巩固课堂教学和平时实验内容,使学生初步具备基于Android、Linux、C和ARM汇编应用开发的系统分析、系统设计、系统实现与测试的实际能力,强化学生的知识实践意识、提高动手能力,发挥学生的想象力和创新能力,从而培养工程应用型人才。 二、课程设计基本要求 1、学习态度:要有勤于思考、刻苦钻研的学习精神和严肃认真、一丝不苟、有错必改、精益求精的工作态度,积极查阅整理分析相关参考文献,精心设计、认真编码、确保质量。对弄虚作假者,课程设计成绩一律按不及格记。 2、学习纪律:要严格遵守学习纪律,遵守作息时间,不得迟到、早退和旷课。特殊情况不能上课者,必须请假,凡未请假或未获准假擅自不上课者,均按旷课论处。 3、课程目标:掌握Linux和WinCE应用开发的基本理论知识和基本方法技能,概念清楚准确,系统分析、系统设计、系统实现、系统测试符合软件工程相关规范,结构合理,程序运行良好,课程设计报告撰写规范,答辩中回答问题正确。 4、课程设计报告:按照《课程设计报告规范》和《嵌入式系统课程设计任务书》的要求,认真设计、撰写好课程设计报告,总结课程设计的收获和心得体会,及时提交电子和纸质材料。 三、课程设计内容 1.以下学号学生完成题目1:1、11、9 题目1:基于嵌入式技术的烟气检测监控系统的设计(ARM体系结构与编程)设计要求:设计以嵌入式技术为核心的的烟气检测监控系统,完成系统的硬件组成和软件控制的设计,检测监控烟气排放是否符合烟气污染排放标

嵌入式微控制器技术实验任务书(附程序和仿真图)

“嵌入式微控制器技术”实验任务书(电气、自动化) 一、实验目的与要求: 1、熟练掌握基于SST89E554RC微控制器的Keil C51集成开发工具的操 作及调试程序的方法(包括:仿真调试与脱机运行间的切换方法);掌握 其他相关微控制器集成开发工具的使用及调试方法; 2、熟练掌握基于SST89E554RC单片机核心板及I/O扩展实验系统的电 路结构原理、设计与应用;掌握其他相关微控制器最小系统设计与应用; 3、熟练掌握在Keil C51与Proteus仿真软件虚拟联机环境下的基于51 单片机控制器数字接口电路的硬件、软件设计方法与功能调试; 4、完成本实验课程所要求的全部实验容,并写出实验报告。 二、微机原理与接口技术综合实验室资源简介 实验室为以下实验活动提供条件: 1、基于唐都实验系统的微机原理与接口技术实验(包括汇编语言、C 语言/C++语言软件编程实验和16位/32位微机接口电路应用实验); 2、基于SST89E554RC微控制器技术软/硬件实验(提供支持汇编语言、 C语言编程的Keil C51集成开发工具、最小核心板+唐都实验系统箱); 3、基于DSP2407、DSP2812、DSP28335微控制器技术软件/硬件实验(提 供支持C语言编程的TI公司的CCS集成开发工具、DSP系列学习开发板、直流电机、步进电机、液晶); 4、基于Freescale的16位MC9S12XS128微控制器技术应用实验(提 供支持C语言编程的CodeWarrier 5.0 For S12集成开发工具、 HF-MC9S12XS128EVB-A 核心板); 5、基于ARM的16/32位ARM7LPC2103TDMI-S微控制器技术基础实验(提供 支持C、C++语言编程的ARM公司推出的ARM微控制器ADS 1.2集成开发工具、EasyARM2103开发板); 6、基于ARM Cortex?-M3先进核的LM3S1138微控制器技术基础实验(提

嵌入式系统实验报告

实验报告 课程名称:嵌入式系统 学院:信息工程 专业:电子信息工程 班级: 学生姓名: 学号: 指导教师: 开课时间:学年第一学期

实验名称:IO接口(跑马灯) 实验时间:11.16 实验成绩: 一、实验目的 1.掌握 STM32F4 基本IO口的使用。 2.使用STM32F4 IO口的推挽输出功能,利用GPIO_Set函数来设置完成对 IO 口的配置。 3.控制STM32F4的IO口输出,实现控制ALIENTEK 探索者STM32F4开发板上的两个LED实现一个类似跑马灯的效果。 二、实验原理 本次实验的关键在于如何控制STM32F4的IO口输出。IO主要由:MODER、OTYPER、OSPEEDR、PUPDR、ODR、IDR、AFRH和AFRL等8个寄存器的控制,并且本次实验主要用到IO口的推挽输出功能,利用GPIO_Set函数来设置,即可完成对IO口的配置。所以可以通过了开发板上的两个LED灯来实现一个类似跑马灯的效果。 三、实验资源 实验器材: 探索者STM32F4开发板 硬件资源: 1.DS0(连接在PF9) 2.DS1(连接在PF10) 四、实验内容及步骤 1.硬件设计 2.软件设计 (1)新建TEST工程,在该工程文件夹下面新建一个 HARDWARE文件夹,用来存储以后与硬件相关的代码。然后在 HARDWARE 文件夹下新建一个LED文件夹,用来存放与LED相关的代码。 (2)打开USER文件夹下的test.uvproj工程,新建一个文件,然后保存在 LED 文件夹下面,保存为 led.c,在led.c中输入相应的代码。

(3)采用 GPIO_Set 函数实现IO配置。LED_Init 调用 GPIO_Set 函数完成对 PF9 和 PF10 ALIENTEK 探索者 STM32F407 开发板教程 119 STM32F4 开发指南(寄存器版) 的模式配置,控制 LED0 和 LED1 输出 1(LED 灭),使两个 LED 的初始化。 (4)新建一个led.h文件,保存在 LED 文件夹下,在led.h中输入相应的代码。 3.下载验证 使用 flymcu 下载(也可以通过JLINK等仿真器下载),如图 1.2所示: 图1.2 运行结果如图1.3所示:

嵌入式系统实验指导书

《嵌入式系统原理》实验指导书 目录 《嵌入式系统原理》实验指导书 (1) 目录 (1) 实验报告要求: ....................................................................................... 错误!未定义书签。 实验一Linux的初步使用 (2) 实验二linux驱动程序 (5) 实验三交叉编译程序 (11) 实验四编译内核与下载 (15)

实验一Linux的初步使用 实验目的: 熟练掌握linux命令的使用,linux程序的编译与调试 实验学时: 3学时 实验内容: 1.掌握虚拟机VMWARE的基本应用; 2. 掌握虚拟机中RED hat linux 的安装; 3. 掌握基本linux命令的使用; 4. 掌握linux程序编译与调试。 实验设备: 装有VMWARE的PC机一台,RED HAT安装光盘(或ISO映像文件)。 实验步骤: 1.创建一虚拟机MYLINUX 1)从桌面上单击“VMWARE WORKSTAION”启动虚拟机软件,单击新建虚拟 机,指定保存路径“D:\MYLINUX”,选择虚拟机操作系统类型:linux,然后 完成虚拟机的创建; 2)双击虚拟机中CDROM,选择将虚拟机光驱连接修改为:使用ISO映像,并指 定映像文件为共享磁盘:I:\redhat-disk-1.iso。 3)单击虚拟机中启动虚拟机,开始从光盘上启动系统并安装linux。 2.安装linux 注意: 在虚拟机和主机之间进行切换方法:鼠标单击虚拟机,可以进入;要回到主机,请用CTRL+ALT 1)输入回车,进入图形化安装;也可以linux text进入文本界面安装; 2)选择Skip(跳过CD检查),回车 3)点击NEXT(下一步) 4)安装语言,选择简体中文;或选择English 5)安装类型,选择定制:Custom 6)分区选择:自动分区

嵌入式课程设计

嵌入式课程设计 学院:计算机与通信工程学院专业:物联网工程班级:物联1501 姓名:王强学号:41501602 实验日期:2017年12月25日 实验名称: 嵌入式课程设计 实验目的: 以STC89开发板为硬件平台,开发温度采集、动态数码管显示、按键响应、与PC串口通讯的综合程序,实现以下功能: 1)PC上的串口调试助手通过串口给STC89开发板发送“GetTemp”命令。 2)STC89开发板从串口接收到“GetTemp”命令后启动温度传感器DS18B20的测温程序获取当前温度,测试完成时将所测得温度数据显示在动态数码管上。(动态数码管在温度获取之前应该显示“FFFFFFFF”,只有在获取温度后才显示温度值) 3)动态数码管显示出温度数据后,请通过按键触发STC89开发板通过串口回送步骤2所测的温度数据给PC上串口调试助手,同时恢复动态数码管显示为“FFFFFFFF”。为保证每个同学的实验都独立完成,要求回送的数据包含自己的学号,即如果你的学号是20150809,当前温度值是19.6摄氏度,那么在PC上的串口调试助手应该显示:20150809 : 19.6°C。硬件电路说明: 1)STC89处理器管脚和晶振电路

2)独立按键 独立按键一共5个,分别连接在单片机的P3.0到P3.4口。去抖动的方式,我们采用软件延时的方法。过程如下: 先设置IO口为高电平(一般上电默认就为高),读取IO口电平确认是否有按键按下,如有IO电平为低电平后,延时几个ms,再读取该IO电平,如果任然为低电平,说明对应按键按下,执行相应按键的程序。 3)DS18B20温度传感器部分 DS18B20内部的低温度系数振荡器是一个振荡频率随温度变化很小的振荡器,为计数器1提供一频率稳定的计数脉冲。 高温度系数振荡器是一个振荡频率对温度很敏感的振荡器,为计数器2提供一个频率随温度变化的计数脉冲。 初始时,温度寄存器被预置成-55℃,每当计数器1从预置数开始减计数到0时,温度寄存器中寄存的温度值就增加1℃,这个过程重复进行,直到计数器2计数到0时便停止。 初始时,计数器1预置的是与-55℃相对应的一个预置值。以后计数器1每一个循环的预置数都由斜率累加器提供。为了补偿振荡器温度特性的非线性性,斜率累加器提供的预置数也随温度相应变化。计数器1的预置数也就是在给定温度处使温度寄存器寄存值增加1℃计数器所需要的计数个数。 DS18B20内部的比较器以四舍五入的量化方式确定温度寄存器的最低有效位。在计数器2停止计数后,比较器将计数器1中的计数剩余值转换为温度值后与0.25℃进行比较,若低于0.25℃,温度寄存器的最低位就置0;若高于0.25℃,最低位就置1;若高于0.75℃时,温度寄存器的最低位就进位然后置0。这样,经过比较后所得的温度寄存器的值就是最终读

嵌入式系统综合实验一

实验名称: 姓名: 学号: 装 订 线 P.1 实验报告 课程名称: 嵌入式系统设计 指导老师:马永昌 成绩:________________ 实验名称:综合实验一dht11和人体感应传感器 实验类型:验证型 同组学生姓名:孙凡原 一、实验目的和要求(必填) 二、实验内容和原理(必填) 三、主要仪器设备(必填) 四、操作方法和实验步骤 五、实验数据记录和处理 六、实验结果与分析(必填) 七、讨论、心得 一、实验目的和要求 1.掌握字符设备驱动程序的基本结构和开发方法 2.掌握用户空间调用设备驱动的方法 3.掌握用户和内核的交互 二、实验内容和原理 1.编写温湿度传感器DHT11驱动,传输打印温湿度信息 2.编写人体感应传感器驱动,控制LED 灯亮灭 原理: 温湿度传感器DHT11: 1.引脚图 实际使用传感器没有NC 引脚 2.数据采集 a.数据总时序 用户主机发送一次开始信号后,DHT11 从低功耗模式转换到高速模式,待主机开始信号结束后,DHT11 发 专业:测控技术与仪器 姓名:颜睿 学号:3130103850 日期:2018.4.28 地点:创客空间

装订线送响应信号,送出40bit 的数据,幵触发一次信采集。 b.主机发送起始信号 连接DHT11的DATA引脚的I/O口输出低电平,且低电平保持时间不能小于18ms,然后等待DHT11 作出应答信号。 c.检测从机应答信号 DHT11 的DATA 引脚检测到外部信号有低电平时,等待外部信号低电平结束,延迟后DHT11 的DATA引脚处于输出状态,输出80 微秒的低电平作为应答信号,紧接着输出80 微秒的高电平通知外设准备接收数据。 d.接收数据 (1)数据判定规则 位数据“0”的格式为:50 微秒的低电平和26-28 微秒的高电平,位数据“1”的格式为:50 微秒的低电平加70微秒的高电平。 接收数据时可以先等待低电平过去,即等待数据线拉高,再延时60us,因为60us大于28us且小于70us,再检测此时数据线是否为高,如果为高,则数据判定为1,否则为0。

《嵌入式系统开发实训》实训指导书V1.0

《嵌入式系统开发实训》指导书 一、实训的目的和作用 实训是培养和锻炼学生在学习完《嵌入式系统开发》后综合应用所学理论知识解决实际工程设计和应用问题的能力、进行工程实训的重要教学环节,它具有动手、动脑,理论联系实际的特点,是培养在校工科大学生理论联系实际、敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题能力的一种较好方法。 《嵌入式系统开发》是一门应用性、综合性、实践性较强的课程,没有实际的有针对性设计环节,学生就不能很好的理解和掌握所学的技术知识,更缺乏解决实际问题的能力。所以通过有针对性的实训,使学生学会系统地综合运用所学的技术理论知识,提高学生在嵌入式应用方面的开发与设计本领,系统的掌握嵌入式系统设计方法。 本实训是配合课堂教学的一个重要的实践教学环节,不仅要培养学生的实际动手能力,检验学生对本课程学习的情况,更要培养学生在实际的工程设计中查阅专业资料、工具书或参考书,掌握工程设计手段和软件工具,并能以图纸和说明书表达设计思想和结果的能力。培养学生事实求是和严肃认真的工作态度。 通过本实训使学生深入了解嵌入式系统开发的步骤与方法,掌握嵌入式系统的软硬件协同开发要点及使用方法。掌握能够根据实际问题综合应用嵌入式软件、硬件的基本技能,编写相应的程序。巩固和强化理论教学内容,综合课程教学中的实验环节,培养和锻炼学生的工程实践能力,具备嵌入式系统软硬件协同开发应用程序的能力。 二、实训主要内容与要求 要求每个学生(或小组)都要自己动手独立设计完成一个典型的嵌入式应用小系统。设计题目可以在给出的参考题目中选,也可以自己选设计题目,但难度不应小于参考题目,需经指导教师审查后方可确定是否采纳或修改设计题目。 一般以1~2人为一个小组,分工协作,可以进行充分的讨论和互助。完成所选课题的硬件和软件的设计与调试。独立解决设计和调试过程中遇到的基本问题。总结整个实践过程,写出实训报告(包括方案选择比较、总体思路、理论分析、系统设计,软件流程图,加注释的源程序,调试过程中遇到的问题及解决办法,总结与体会,参考文献)。 实训是在教师指导下,各组可以集体讨论,但实训报告由学生独立完成,不得互相抄袭。教师的主导作用主要在于指明设计思路,启发学生独立设计的思路,解答疑难问题和按设计进度进行阶段审查。学生必须发挥自身学习的主动性和能动性,主动思考问题、分析问题和解决问题,而不应处处被动地依赖指导老师查资料、给数据、定答案。同组同学要发扬团队协作精神,积极主动的提出问题、解决问题、讨论问题,互相帮助和启发。 实训报告每个学生一份,由课代表收齐后统一交给指导教师。实训成绩评定由3部分组成:验收答辩情况30%,实训作品质量40%,实训报告书30%。

嵌入式系统课程设计

《嵌入式系统设计与应用》课程设计 题目嵌入式系统的实践教学探讨 1.嵌入式系统设计与应用课程的内容概述 1.1 内容概述 本课程适用于计算机类专业,是一门重要的专业课程。它的任务是掌握嵌入式系统的基本概念;掌握嵌入式处理器 ARM 体系结构,包括ARM总体结构、存储器组织、系统控制模块和I/O外围控制模块;掌握ARM指令集和Thumb指令集;掌握ARM汇编语言和C语言编程方法;了解基于ARM 的开发调试方法。它的目的是了解和掌握嵌入式处理器的原理及其应用方法。 1)介绍嵌入式系统开发的基础知识,从嵌入式计算机的历史由来、嵌入式系统的定义、嵌入式系统的基本特点、嵌入式系统的分类及应 用、嵌入式系统软硬件各部分组成、嵌入式系统的开发流程、嵌入 式技术的发展趋势等方面进行了介绍,涉及到嵌入式系统开发的基 本内容,使学生系统地建立起的嵌入式系统整体概念。 2)对ARM技术进行全面论述,使学生对ARM技术有个全面的了解和掌握,建立起以ARM技术为基础的嵌入式系统应用和以ARM核为基础 的嵌入式芯片设计的技术基础。 3)ARM指令系统特点,ARM 指令系统,Thumb 指令系统,ARM 宏汇编,ARM 汇编语言程序设计,嵌入式 C 语言程序设计。 1.2实践教学探讨 在IEEE 计算机协会2004年6月发布的Computing Curricula Computer Engineering Report, Ironman Draf t 报告中把嵌入式系统课程列为计算机工程学科的领域之一,把软硬件协同设计列为高层次的选修课程。美国科罗拉多州立大学“嵌入式系统认证”课程目录包括实时嵌入式系统导论、嵌入式系统设计和嵌入式系统工程训练课程。美国华盛顿大学嵌入式系统课程名称是嵌入式系统

嵌入式实验指导书 (修改6)20161025

嵌入式系统技术及应用 实验指导书 (第3版) 郑普亮编写 西安建筑科技大学信控学院 智能建筑与楼宇自动化实验室 2014年5月

目录 1课程简介、实验项目及学时安排 (1) 1.1课程简介 (1) 1.2实验项目及学时安排 (1) 2实验仪器仪表设备简介 (2) 2.1嵌入式系统实验箱 (2) 2.2其它实验设备 (2) 3嵌入式系统技术及应用课程实验 (3) 3.1实验1系统认识实验 (3) 3.2实验2定时器实验 (10) 3.3实验3PWM发生器实验 (14) 3.4实验416*16LED点阵显示汉字实验 (16)

1课程简介、实验项目及学时安排 1.1课程简介 嵌入式系统广泛应用于仪器仪表、工业控制、汽车电子等多个领域,是一个综合性的快速发展的技术方向。课程以ARM Cortex-M3系列处理器为主,着重介绍了嵌入式系统设计的基本概念、基于ARM处理器的体系结构、ARM微处理器的编程模型与指令系统、嵌入式操作系统及相关的接口技术。 通过对本课程的学习,能够使学生深刻了解ARM处理器的工作原理,熟练掌握ARM 微处理器的指令系统,以及嵌入式系统软硬件设计基本方法,进而加强学生独立设计能力和创新能力的培养。 1.2实验项目及学时安排 本课程的实验目的是使学生掌握ARM指令系统及基于C语言和驱动程序库的程序设计方法,掌握ARM微处理器各组成部分工作原理及应用,培养学生对ARM微处理器的应用程序与硬件电路的设计能力,提高学生分析和解决实际问题的能力,从而为学生今后走向工作岗位、从事相关专业领域的科学研究和技术开发打下扎实的基础。所以安排了验证性、设计性和综合性不同属性的实验项目。 序号实验项目学时 实验性质 验证综合设计 1系统认识实验2√ 2定时器实验2√ 3PWM发生器实验2√416*16LED点阵显示汉字实验2√ 注:实验项目根据实验教学安排选取。

嵌入式系统实验实验报告

嵌入式系统实验实验报告 一、实验目的 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 #INCLUDE #INCLUDE #INCLUDE #INCLUDE #INCLUDE #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);

嵌入式系统实验指导指导书完整版

嵌入式系统实验指导王艳春英一劲松

实验一嵌入式微处理器系统的开发环境 一、实验环境 PC机一台 软件: ADS 1.2集成开发环境一套 二、实验目的 1.了解嵌入式系统及其特点; 2.熟悉嵌入式系统的开发环境和基本配置并能编写简单的汇编程序 三、实验容 1.嵌入式系统的开发环境、基本配置 2.使用汇编指令完成简单的加法实验 四、实验步骤 (1)在D:\新建一个目录,目录名为experiment。 (2)点击 WINDOWS 操作系统的“开始|程序|ARM Developer Suite v1.2 |Code Warrior for ARM Developer Suite”启动Metrowerks Code Warrior,或双击“ADS 1.2”快捷方式启动。启动ADS 1.2 如图1-1所示: 图1-1启动ADS1.2 (3) 在CodeWarrior 中新建一个工程的方法有两种,可以在工具栏中单击“New”按钮, 也可以在“File”菜单中选择“New…”菜单。这样就会打开一个如图1-2 所示的对话框。选择【File】->【New…】,使用ARM Executable Image工程模板建立一个工程,名称为ADS,目录为D:\experiment。 图1-2 新建文件 在这个对话框中为用户提供了7 种可选择的工程类型:

1)ARM Executabl Image:用于由ARM 指令的代码生成一个ELF 格式的可执行映像文件;2)ARM Object Library:用于由ARM 指令的代码生成一个armar 格式的目标文件库; 3)Empty Project:用于创建一个不包含任何库或源文件的工程; 4)Makefile Importer Wizard:用于将Visual C 的nmake 或GNU make 文件转入到CodeWarrior IDE 工程文件; 5)Thumb ARM Executable Image:用于由ARM 指令和Thumb 指令的混和代码生成一个可执行的ELF 格式的映像文件; 6)Thumb Executable image:用于由Thumb 指令创建一个可执行的ELF 格式的映像文件;7)Thumb Object Library:用于由Thumb 指令的代码生成一个armar 格式的目标文件库。(4)选择【File】->【New…】建立一个新的文件TEST1.S,设置直接添加到项目中。输入如程序代码,并保存,此时在工程窗口中可以看到TEST1.S文件。 图1-3 新建test1.s (5) 选择【Edit】->【Perferences…】,在Font选项设置字体是Fixedsys,Script是CHINESE_GB2312。 图1-4 设置字体 (6) 选择【Edit】->【DebugRel Settings…】,在DebugRel Settings对话框的左边选择ARM Linker项,设置地址。 点击“DebugRel Settings…”图标按钮,即可进行工程的地址设置、输出文件设置、编

嵌入式linux实验指导书

嵌入式linux实验指导书 实验一:arm裸机实验 实验条件: pc ADS开发环境FL2440开发套件SecureCRT串口超级终端 实验目的: 熟悉arm裸机开发基本步骤,掌握ADS集成开发环境的使用,能够编写简单的裸机程序并下载到开发板运行测试。 实验原理: ADS 全称为ARM Developer Suite ,是ARM 公司推出的新一代ARM 集成开发工具。ADS 由命令行开发工具、ARM 实时库、GUI 开发环境(Code Warrior 和AXD) 、实用程序和支持软件组成。有了这些部件,用户就可以为ARM 系列的RISC 处理器编写和调试自己开发的应用程序了。本次实验利用ADS集成开发环境建立基于arm9 S3C2440的实验工程,完成工程搭建、代码编写和编译,生成可执行文件并下载到开发板进行运行测试。 实验步骤: 1、首先打开ADS软件CodeWarrior,点击File 菜单下的New 来创建新工程。Project 对话框中选择ARM Executable Image 。在Project name 中输入工程名,例:2440_led,点击“Location:”文本框的“Set...”按钮,选择要将工程保存的路径,然后点击确定即可建立一个新的工程。工程建立之后会出现一个24 40_led.mcp 窗口。 2、创建源文件,点击File 菜单下的New,选择标签页File,在File name 中输入要建立的文件名,如:Init.s (.s 文件为arm 中的汇编文件),若此时选上了Add to Project,创建的文件会自动添加到工程中,选择target方式为DebugRel,点击确定关闭窗口,文件创建完成后编写代码。(可将arm_linux文件夹下的裸机例程代码复制到工程中进行修改,如:复制裸机程序中的led程序init.s led.c 到建立的工程文件目录中,点击Project 菜单下的Add Fils 将源文件添加到工程中)

嵌入式应用开发实验指导书 (1)

实验一基本接口实验(一) [实验设备] 1.JXARM9-2410教学实验箱 2.ADT1000仿真器和ADT IDE集成开发环境 3.串口、并口连接线 [实验目的] 1.掌握ARM的串行口工作原理,编程实现ARM的UART通讯; 2.掌握嵌入式系统中断的处理流程和ARM中断编程; 3.在ADT环境下如何建立工程,对工程进行正确的设置。添加相应文件(汇编、脚本、.c 源文件等) [实验内容一] 实现查询方式串口的收发功能。接收来自串口(通过超级终端)的字符并将接收到的字符发送到超级终端。 [预备知识] 1.了解ADT集成开发环境的基本功能 2.学习串口通讯的基本知识 3. 熟悉S3C2410串口有关的寄存器 [基础知识] 串行通信接口电路组成 1.可编程的串行接口芯片 2.波特率发生器 3.EIA与TTL电平转换器 4.地址译码电路 通信协议: 1.异步协议 2.同步协议 异步串行通讯 异步串行方式是将传输数据的每个字符一位接一位(例如先低位、后高位)地传送。 数据的各不同位可以分时使用同一传输通道,因此串行I/O 可以减少信号连线,最少用一对线即可进行。 接收方对于同一根线上一连串的数字信号,首先要分割成位,再按位组成字符。为了恢复发送的信息,双方必须协调工作。 在微型计算机中大量使用异步串行I/O 方式,双方使用各自的时钟信号,而且允许时钟频率有一定误差,因此实现较容易。但是由于每个字符都要独立确定起始和结束(即每个字符都要重新同步),字符和字符间还可能有长度不定的空闲时间,因此效率较低。 异步串行通信中的字符传送格式

开始前,线路处于空闲状态,送出连续“1”。传送开始时首先发一个“0” 作为起始位,然后出现在通信线上的是字符的二进制编码数据。 每个字符的数据位长可以约定为5位、6位、7位或8位,一般采用ASCII编码。后面是奇偶校验位,根据约定,用奇偶校验位将所传字符中为“1”的位数凑成奇数个或偶数个。也可以约定不要奇偶校验,这样就取消奇偶校验位。 最后是表示停止位的“1”信号,这个停止位可以约定持续1 位、1.5 位或2 位的时间宽度。 至此一个字符传送完毕,线路又进入空闲,持续为“1”。经过一段随机的时间后,下一个字符开始传送才又发出起始位。 每一个数据位的宽度等于传送波特率的倒数。微机异步串行通信中,常用的波特率为110,150,300,600,1200,2400,4800,9600 等。 DB-25 DB-9引脚定义 DB-25 DB-9引脚说明

嵌入式linux实验指导书

目录 实验一 linux常用指令练习 (3) 1、在线帮助指令 (3) 2、linux开关机及注销指令。 (3) 重启指令: (3) 1)、reboot命令 (3) 2)、init 6命令 (3) 关机指令: (3) 1)、halt命令 (3) 2)、poweroff命令 (4) 3)、init 0命令 (4) 4)、shutdown命令 (4) 注销指令: (4) 3、用户管理命令 (4) 1)、用户切换su命令 (4) 2)、添加用户命令adduser/useradd (5) 3)、删除用户及更改用户属性 (5) 4)、设置用户密码 (6) 5)、查看用户信息 (6) 4、文件目录操作指令 (7) 1)、改变当前工作目录命令(cd) (7) 2)、显示当前路径pwd (7) 3)、查看当前目录下的文件命令ls (7) 4)、新建目录指令mkdir (8) 5)、删除目录命令rmdir (8) 6)、新建文件命令touch (8) 7)、删除文件指令rm (8) 8)、文件和目录的复制命令cp (8) 9)、文件和目录的移动命令mv (9) 10)、更改文件或目录的使用权限chmod (9) 11)、查看文件的命令cat (9) 12)、文件链接命令ln (9) 13)、文件压缩解压命令 (10) 5、网络相关命令 (11) 6、磁盘管理命令 (11) 7、挂载文件命令mount (12) 8、其他系统命令 (12) 练习1: (13) 练习2: (15) 练习3: (16) 练习4: (21) 实验二 VI文本编辑器的使用 (24) 1、练习使用VI指令 (24) 2、利用VI编写一个hello.c文件 (24)

嵌入式Linux开发课程设计指导书

嵌入式Linux开发课程设计指导书 课程编码: 适应专业:计算机专业、电子信息工程专业 学时:3周(计算机专业),2周(电子信息工程专业) 学分: 3(计算机专业),2(电子信息工程专业)时间安排:分散 先修课程:高级语言程序设计、计算机组成原理、接口技术,嵌入式系统,操作系统指导书名称: 一、目的与任务: 课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际应用问题进行有机结合,锻炼学生分析、解决实际问题的能力。 本课程设计采用理论指导与实践相结合的方式,系统地学习并实践嵌入式Linux程序开发技术。通过课程设计,学生可以熟练掌握Linux的基本操作,系统管理,并具备Linux 下文件、进程、网络、GUI的开发方法,为实际应用开发打下坚实的基础。 二、目标 通过本次课程设计要求学生达到以下目标: 1)熟悉Linux操作系统具体操作(安装、基本命令、系统管理、FTP服务器搭建) 2)熟悉Linux下C程序开发调试的基本过程。 3)熟悉嵌入式Linux进程及进程间通信 4)能够熟练编写Linux应用程序,包括文件、网络、图形等 三、内容 任务1、基础知识,完成以下任务: Linux操作系统的安装、基本命令的使用,网络的配置,FTP服务器搭建,VI编辑器的使用,文件压缩方法。 任务2、Linux系统C程序设计的基本知识,完成以下任务 1)GCC编译器的使用,Linux系统C程序设计编译、调试方法。 2)分别用if和switch判断一个数的奇偶性并输出结果。 3)用for语句编写程序,计算100到200之间所有奇数的和。 4)用while语句编写程序,计算1000到2000之间所有能被16整除的数的和。

嵌入式系统实验报告

嵌入式系统实验报告文件排版存档编号:[UYTR-OUPT28-KBNTL98-UYNN208]

大连理工大学 本科实验报告 课程名称:嵌入式系统实验 学院(系):电子信息与电气工程学部 专业:自动化 班级: 0804 学号: 学生姓名:何韬 2011年 11月 18日 大连理工大学实验报告 学院(系):电信专业:自动化班级: 0804 姓名:何韬学号:组: ___ 实验时间: 2011-11-12 实验室: d108 实验台: 指导教师签字:成绩: 实验二ARM的串行口实验 一、实验目的和要求 见预习报告 二、实验原理和内容 见预习报告 三、主要仪器设备

硬件:ARM嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC机Pentium100 以上、串口线。 软件:PC 机操作系统win98、Win2000 或WinXP 、ARM SDT 或集成开发环境、仿真器驱动程序、超级终端通讯程序。 四、实验步骤 见预习报告 五、核心代码 在主函数中实现将从串口0接收到的数据发送到串口0() int main(void) { char c1[1]; char err; ARMTargetInit(); 通过调用OSTaskCreate()或OSTaskCreateExt()创建至少一个任务; . OSStart(); /ucos-ii/" /* uC/OS interface */ #include "../ucos-ii/add/" #include "../inc/" #include "../inc/sys/" #include "../src/gui/" #include <> #include <>

相关文档
最新文档