嵌入式实验一

实验一嵌入式环境搭建

实验目的

1、学会Putty的配置和使用,远程登录Linux。

2、开发板网络配置

实验内容

一、远程登录Linux

实验要求:

配置Putty,使用putty登录安装在VMware虚拟中的REHL5系统、

实验步骤:

1、打开putty,在Host Name(or IP address)一栏中输入REHL5配置的

IP地址,在“Saved Sessions”栏中输入相应的IP点击“Save”保存该连接

2、点击“Open”,远程登录RHEL5

3、这样就到了REHL5的命令行登录界面,输入相应的账号或密码即可登录系统

4、设置窗口界面

(1)、在窗口的标题栏右击,在出现的菜单中选择“Change Setting”就会出现如下界面

(2)、设备背景色:选择“Colours”,勾选“Use system colours”

(2)、设置字体:选择“Appearance”,点击“Change”按钮选择字体

(4)、设置字符编码:选择“Translation”,UTF-8编码

(5)、保存设置:“Session”,选择“192.168.2.2”,点击”Save”保存

(6)点击“Applay”应用设置

二、开发板网络配置

实验要求

1、配置好宿主PC机和开发板的网络连接

2、从宿主PC机telnet登录开发板

3、实现RHEL5与开发板NFS网络共享

实验步骤

1、使用网线将开发板网口和宿主PC机网口连接起来

2、检查宿主PC机IP地址

3、将开发板IP配置到宿主PC机同一网段(1)、putty串口连接到开发板

(2)、修改IP地址配置文件

(3)、将IP地址设置到0网段

(4)、执行IP地址设置脚本,使配置生效

(6)、确认新IP地址设置成功

(7)从开发板ping PC机IP地址,确认网络联通

(8)、开发putty,使用telnet连接方式登录开发板

(9)、使用root用户登录

4、实现RHEL5与开发板NFS共享

(1)在RHEL5上配置NFS共享服务

点击K菜单—>系统—>NFS出现如下界面:

点击“添加”:

选“读/写(W)”选择“用户访问(U)”

勾选“将远程目录用户视为本地根目录用户(r)”,点击确认。

重启NFS服务

点击K菜单—>系统—>服务,出现如下界面:

勾选“nfs”,然后点击重启。

也可以在字符终端通过配置文件配置NFS共享服务:

NFS共享的配置文件为:/etc/exports

重启NFS服务:

(2)在开发板上挂载RHEL5上的NFS共享文件夹:

/home/xnf: NFS共享目录

/mnt/nfs: 开发板挂载点

(3)挂载好后通过开发板目录/mnt/nfs即可读写访问RHEL5/home/nfs目

录,实现NFS共享

嵌入式操作系统实验指导书1

嵌入式操作系统实验 实验一 Linux常用命令 一.实验目的 1. 熟悉VMware Workstation虚拟机的使用。 2. 熟悉ubuntu操作系统。 3. 掌握常用的Linux命令。 二.实验设备 硬件:PC机。 软件:VMware Workstation虚拟机、ubuntu操作系统。 三.实验内容 1.基于虚拟机的Linux操作系统的使用。 2.文件与目录相关命令的使用。 3.磁盘管理与维护命令的使用。 4.系统管理与设置命令的使用。 5.网络相关命令的使用。 6.压缩备份命令的使用。 四.实验步骤 1.基于虚拟机的Linux操作系统的使用 (1)启动VMware Workstation应用程序,启动windows以后,点击开始→程序→VMware→VMware Workstation,出现如图1所示界面。

图1 启动VMware Workstation (2)点击菜单File Open选择安装好的Linux虚拟机文件,或者直接点击Start this virtual machine启动Linux操作系统。 (3)启动系统后需要输入用户名和密码,如图2所示,这里用户名为root,密码为“123456”。 图2输入用户名和密码 (3)启动终端,成功进入系统后,选择应用程序->系统工具->终端,如图3所示。 图3 启动终端 (4)在终端中执行Linux命令,终端运行以后,就可以在这里输入Linux命令,并按回车键执行,如图4所示。

图4运行Linux命令 2.文件与目录相关命令的使用 理解12个常用的文件与目录相关命令的使用,完成如下练习。 (1)查询/bin目录,看一看有哪些常用的命令文件在该目录下:ll /bin (2)进入/tmp目录下,新建目录myshare: cd /tmp mkdir myshare ls -ld myshare/ (3)用pwd命令查看当前所在的目录 pwd (4)新建testfile文件 touch testfile ls -l (5)设置该文件的权限模式 chmod 755 testfile ls -l testfile (6)把该文件备份到/tmp/myshare目录下,并改名为testfile.bak。 cp testfile myshare/testfile.bak ls -l myshare/ (7)在/root目录下为该文件创建1个符号连接。 ln -s /tmp/testfile /root/testfile.ln ls -l /root/testfile.ln (8)搜索inittab文件中含有initdefault字符串的行。 cat /etc/inittab | grep initdefault 3.磁盘管理与维护命令的使用 理解2个磁盘管理与维护命令,完成如下练习。 (1)Linux下使用光盘步骤: ?确认光驱对应的设备文件:ll /dev/cdrom ?挂载光盘:mount -t iso9660 /dev/cdrom testdir ?查询挂载后的目录:ll /media/cdrom ?卸载光盘(umount testdir)umount /dev/cdrom (2)Linux下USB设备的使用 ?挂载U盘,看看系统认出的盘(或者使用#fdisk -l)。cat /proc/partitions

实验1(嵌入式开发环境实验)

实验1:嵌入式Linux开发环境 一、实验目的 熟悉Linux开发环境,学会基于S3C2410的Linux开发环境的配置和使用。使用Linux的armv4l-unknown-linux-gcc编译,使用基于NFS方式的下载调试,了解嵌入式开发的基本过程。 二、实验内容 1、在linux系统下,利用C语言来编写应用程序,并进行交叉编译,生成可在目标实验台上运行的目标文件。 2、建立宿主机与目标实验台仿真终端连接,为目标实验台建立Linux系统终端窗口。 3、建立宿主机与目标实验台的共享连接,以便下载和运行最终可执行文件。 三、预备知识 C语言的基础知识、程序调试的基础知识和方法,Linux的基本操作。 四、实验设备及工具(包括软件调试工具) 硬件:UP-NETARM2410-S嵌入式实验平台、PC机Pentium 500以上, 硬盘10G以上。 软件:PC机操作系统REDHAT LINUX 9.0+MINICOM+ARM-LINUX开发环境 五、主要实验步骤: 1、打开PC宿主机电源,选择进入Linux系统。在PC宿主机的/arm2410s/exp/Basic目录中创建用户个人工作目录,例如“cao”。 2、单击鼠标右键选择“新建终端”,建立宿主机Linux命令终端窗口,在[root@localhost root]#命令提示符下进入个人工作目录“cao”中。 即:[root@localhost root]#cd /arm2410s/exp/basic/cao 3、利用“vi”编辑hello应用程序,并保存为hello.c文件。 即:#cd /arm2401s/exp/Basic/cao #vi hello.c 进入vi编辑窗口,编辑hello.c文件…… 4、利用“gcc –o”命令对hello.c文件进行编译,生成可在PC宿主机上执行的目标文件hello.pc。 即:#gcc –o hello.pc hello.c, 为了验证结果正确性,可在PC宿主机上执行hello.pc文件。 即:#./hello.pc 5、为了在实验台上下载运行hello文件,需要对hello源文件进行交叉编译,以便生成能够在实验台上运行的目标文件。利用“armv4l-unknown–Linux-gcc –o命令”进行交叉编译,生存目标文件hello.o。 即:# armv4l-unknown-Linux-gcc -o hello.o hello.c (注意:这里的“armv4l-unknown–Linux-gcc –o”交叉编译命令输入方法是使用键盘输

嵌入式实验一

仲恺农业工程学院实验报告纸 实验一MDK嵌入式开发环境的创建及介绍 一、实验目的: 1、熟悉MDK嵌入式开发环境及EL-ARM-830实验箱; 2、掌握点亮LED灯的编程方法。 二、实验内容: 1、学习如何使用MDK开发ARM实验程序; 2、编写程序驱动开发板上的LED灯。 三、实验设备: 1、EL-ARM-830实验箱; 2、PC机以及Jlink线。 四、实验步骤: 1.编写实验程序: PRESERVE8 AREA RESET, CODE, READONLY EXPORT _start _start ENTRY LDR R0,=0x56000060 MOV R1,#0x00010000 STR R1,[R0] LDR R0,=0x56000064 MOV R1,#0x00000000 STR R1,[R0] MAIN_LOOP B MAIN_LOOP END

2.实验环境配置步骤: (1). 打开MDK,新建一个工程,选择保存路径和工程名称,选择芯片型号为三星S3C2410A。 (2).修改课本P81页led_on.S程序: 修改GPDCON为0x56000060; 修改GPGDAT为0x56000064; ●修改led灯的GPG8,设置[19:18]=01;故R1的值为0x00040000。 (3).添加文件led.s到Source Group中; (4).配置各项参数,进行相关的设置: (5).编译,烧写程序,并且验证实验结果 (6).点击load,观察实验结果,结果成功点亮了第二盏led灯。 五、实验总结 本次实验是嵌入式的第一次实验课,通过本次实验熟悉MDK嵌入式开发环境及EL-ARM-830实验箱并掌握点亮LED灯的编程方法。由于是第一次实验,实验的关键和难度在于学会配置程序编辑和开发板配置的环境,通过简单修改课本上的源程序,将程序烧写到开发板上,使点亮LED灯的程序能在开发板上顺利运行,并使第一盏LED灯点亮,达到实验的目的。

嵌入式系统——实验1

《嵌入式系统设计(实验课)》内容安排 《嵌入式系统设计(实验课)》是《嵌入式系统设计》课程的一个重要环节。通过实验,学生可以对嵌入式系统的设计与开发过程有更深地体会。实验课共八次,每次2学时,实验内容结合课程内容,介绍一般的实验开发流程和软件硬件开发环境,并辅之以典型的嵌入式程序设计实例,使学生掌握基本的嵌入式软件开发技能。大量的具有实际应用背景的实验,更将理论与实践结合起来,使实验内容更加生动。 实验报告要求 一、实验名称: 说明:本次实验的名称 二、实验目的: 说明:本次实验的主要目的,参考每次的实验指导书 三、实验环境: 说明:实验用到的硬件软件环境。 四、实验内容与步骤: 说明:实现实验目的而进行的实验内容,如果有步骤要求则简要列出步骤 五、实验报告总结: 说明:对本次实验的总结, 1.画出主函数的程序流程图, 2.重写主程序.或者:自拟一个新的应用,参照本次实验的主程序,重新设计主程序并给出详尽注释。 3.其他,本次实验得到了什么?收获是什么?有些什么别的想法? 六、建议与意见: 说明:对于此次实验内容或在实验过程中有任何问题或建议,以及对于改善实验效果有什么建议,均可提出。 在书写实验报告的过程中,主要是帮助自己回顾和总结实验。重点放在第五部分,前四项可以十分简要地列写,第六项有则提出,无则不写。

实验一嵌入式微处理器系统的开发环境 一、实验环境 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

1、请使用STM32完成流水灯程序 代码: bsp_led.c文件 #include "bsp_led.h" void LED_GPIO_Config() { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(LED0_GPIO_CLK|LED1_GPIO_CLK,ENABLE); GPIO_InitStructure.GPIO_Pin=LED0_GPIO_PIN; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(LED0_GPIO_PORT,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin=LED1_GPIO_PIN; GPIO_Init(LED1_GPIO_PORT,&GPIO_InitStructure); LED0_OFF; LED1_OFF; } bsp_led.h文件 #include "stm32f10x.h" #define LED0_GPIO_PORT GPIOB #define LED0_GPIO_CLK RCC_APB2Periph_GPIOB #define LED0_GPIO_PIN GPIO_Pin_5 #define LED0_ON GPIO_ResetBits(LED0_GPIO_PORT,LED0_GPIO_PIN) #define LED0_OFF GPIO_SetBits(LED0_GPIO_PORT,LED0_GPIO_PIN) #define LED1_GPIO_PORT GPIOE #define LED1_GPIO_CLK RCC_APB2Periph_GPIOE #define LED1_GPIO_PIN GPIO_Pin_5 #define LED1_ON GPIO_ResetBits(LED1_GPIO_PORT,LED1_GPIO_PIN) #define LED1_OFF GPIO_SetBits(LED1_GPIO_PORT,LED1_GPIO_PIN) void LED_GPIO_Config(); main.c文件 #include "stm32f10x.h" #include "bsp_led.h"

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

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

实验一嵌入式微处理器系统的开发环境 一、实验环境 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…”图标按钮,即可进行工程的地址设置、输出文件设置、编

嵌入式实验

嵌入式实验报告 专业:计算机科学与技术专业班级:计科1班 学号:1245713131 姓名:

目录 实验一shell脚本命令 (2) 实验二熟悉make工具 (6) 实验三主机交叉开发环境的配置 (9) 实验四嵌入式web服务器 (11) 总结 (15)

实验一shell脚本命令 一、实验目的: 1.练习shell脚本的使用方法,能利用shell语言编写简单的shell脚本。 二、实验内容: 1.写一个shell脚本,完成如下功能:提示用户输入一个文件路径,并判断是否是“/etc”,如果是则显示“YES”。 运行结果: 2.使用touch命令建立一个新文件,测试其内容是否为空,向文件中写入内容后,再次进行测试,并打印输出相应结果。 1)用touch命令建立一个新文件zy,并通过gedit 命令查看该文件内是否有内

容。 2)通过gedit命令查看到结果:zy文件中没有内容。 3)编写测试程序。 4)执行测试程序,并再次查看zy文件。 5)查看结果。 3.由用户从键盘输入一个大于1的整数(如50),并计算从1到该数之间各整数的和。

运行结果: 4.由用户从键盘输入一个字符,并判断该字符是否为字母、数字或者其他字符,并输出相应的提示信息。 运行结果:

5.在脚本中定义一个加法函数,用于计算两个数的和,并调用该函数分别计算12+34、56+78的和。 运行结果: 实验一总结: 1.Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁。 2.shell提供变量来设置环境参数和保存shell信息。 i.变量命名规则: 一般由字母和下划线构成,并且变量名第一个字符不能为数字。 shell变量可以保存诸如路径名、文件名或者一个数字。对shell来讲,所有变量的取值都是一个字符串。 注意:变量是弱类型的,声明变量不用声明类型。 3.Shell变量的定义和引用: i.定义自己的变量:

嵌入式系统实验报告一

2008221104210068 陈见08计科2班 嵌入式系统实验报告一 一.实验目的: 1.了解嵌入式开发中的硬件(e.g.EELIOD)与软件(e.g.bootloader) 2.了解嵌入式系统的开发环境,内核的下载和启动过程 3.了解Linux内核配置和编译过程 •了解Linux内核源代码的目录结构以及各目录的相关内容 •了解Linux内核一些基本配置选项内容和作用 •掌握Linux内核的编译过程 4.了解嵌入式文件系统的构建过程 •了解嵌入式操作系统种文件系统的类型和作用 •掌握利用BusyBox 软件制作嵌入式文件系统的方法 •掌握嵌入式Linux 文件系统的的挂载过程 二.实验内容: <1>嵌入式系统开发 1、bootloader 嵌入式系统中通常并没有像BIOS那样的固件程序,因此整个系统的加载启动任务完全由bootloader来完成。其主要作用是:初始化硬件设备;建立内存空间的映射图;完成内核的加载,为内核设置启动参数。bootloader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。 2、串口设置(minicom) 多数嵌入式系统都通过异步串行接口(UART)进行初级引导。这种通信方式是将字符一位一位地传送,一般是先低位、后高位。因此,采用串行方式,双方最

少可以只用一对连线便可实现全双工通信。字符与字符之间的同步靠每个字框的起始位协调,而不需要双方的时钟频率严格一致,因此实现比较容易。 启动minicom ▪主机运行minicom,该程序通过串口(RS232)和目标机连接。 ▪ minicom-s表示对串口进行设置,普通用户不需要这一步。 ▪串口设置/dev/ttys0 bps=115200,8位数据,无检验,无流控制。 ▪bootloader提示符下面可设定本机IP,宿主机IP,将要下载的内核文件名,文件系统名及其它参数。 Boot必要设置 ▪配置IP,配置目标机IP,tftp服务机IP ▪主机和目标机相互ping ▪ tftp服务 上机实验 打开终端,输入minicom。接通开发板电源,进入界面,在delay(一般设为2s)时间内按任意键进入bootloader界面的信息和命令提示符及菜单: 功能“0”是命令行方式,出现提示符“51Board>”,进入命令设置子菜单。“set”命令可以帮助你修改和观察当前bootloader的默认设置。(开发板IP最好设为主机IP+100) Set myipaddr 192.168.208.34(修改主机IP) Set destupaddr 192.168.208.134(修改开发板IP) 3、tftp tftp是基于UDP协议的简单文件传输协议。目标板作为客户机,bootloader默认采用tftp协议。主机安装tftp-server,作为tftp服务器。Linux系统的tftp服务由超级服务器xinetd管理。 Tftp服务的主目录是/tftpboot,因此只有在这个目录下的文件才可以通过tftp进

西北农林科技大学嵌入式实验一

信息工程学院 嵌入式系统实验报告 实验一2410经典Linux系统烧写 班级:计算机XXX班 学号:XXXXXXXX 姓名:XXXXXX 指导老师:李长悦

一、实验目的 windows xp下进行Linux系统烧写即恢复到出厂状态时,需要的文件在光盘中的Linux\img 目录和flashvivi目录下提供。烧写2410-CL linux操作系统包vivi,kernel,root三个步骤,除此我们还要烧写应用程序,这四个文件分别为: vivi ----linux操作系统启动的bootloader; zImage ----linux操作系统内核; root.cramfs ----根文件系统; yaffs.tar.bz2 ----应用程序压缩包。 二、实验内容 1.烧写vivi 1.1把并口线插到pc机的并口,并把并口的另一端与实验箱上端的UP-LINK相连,打开2410-CL电源(12V)。 1.2把整个GIVEIO目录(在光盘的img/flashvivi目录下)拷贝到c:/windows下,并把该目录下的giveio.sys文件拷贝到c:/windows/system32/drivers下。 1.3在我的电脑里打开控制面板,选添加硬件,点击“下一步”,如下图所示:

选择“是,我已经连接了此硬件”然后点击“下一步”,如下图所示: 选中“添加新的硬件设备”然后点击“下一步”,如下图所示: 选中“安装我手动从列表选择的硬件”后点击“下一步”,如下图所示:

选择“显示所有设备”然后点击“下一步”,如下图所示: 选择“从磁盘安装”然后点击“下一步”,如下图所示:

嵌入式系统实验报告

嵌入式系统实验报告 学号: 姓名: 班级:13电子信息工程 指导老师:

苏州大学电子信息学院 2016年12月 实验一:一个灯的闪烁 1、实验要求 实现PF6-10端口所连接的任意一个LED灯点亮 2、电路原理图 图1 LED灯硬件连接图 3、软件分析 RCC_Configuration(); /* 配置系统时钟*/ GPIO_Configuration(); /* 配置GPIO IO口初始化*/ for(;;)

{ GPIOF->ODR = 0xfcff; /* PF8=0 --> 点亮D3 */ Delay(1000000); GPIOF->ODR = 0xffff; /* PF8=1 --> 熄灭D3 */ Delay(1000000); 4、实验现象 通过对GPIOF8的操作,可以使LED3闪烁 5、实验总结 这是第一次使用STM32开发板,主要内容是对IO端口进行配置,点亮与IO端口相连接的LED灯,闪烁周期为2S。通过本实验对STM32开发板的硬件原理有了初步了解。 实验二:流水灯 1、实验要求 实现PF6-10端口所连接的5个LED灯顺次亮灭 2、电路原理图

图1 流水灯硬件连接图3、软件分析 int main(void) { RCC_Configuration();/* 配置系统时钟*/ GPIO_Configuration();/* 配置GPIO IO 口初始化*/ for(;;) { GPIOF->ODR = 0xffbf; /* PF6=0 --> 点亮LED1 */ Delay(5000000); GPIOF->ODR = 0xff7f; /* PF7=0 --> 点亮LED2 */ Delay(5000000); GPIOF->ODR = 0xfeff; /* PF8=0 --> 点亮LED3 */ Delay(5000000); GPIOF->ODR = 0xfdff; /* PF9=0 --> 点亮LED4 */ Delay(5000000); GPIOF->ODR = 0xfbff; /* PF10=0 --> 点亮LED5 */ } } 4、实验现象 LED1~LED5依次点亮,亮灭的时间间隔都为1S。 5、实验总结 本次实验对STM32开发板的GPIO端口进行进一步学习,通过程序可以实现流水灯的闪烁。 实验三:单级外部中断

嵌入式UART串行数据通信实验1(查询方式)c语言代码

UART串行数据通信实验1(查询方式) 实验内容 通过串口0接收上位机发送的字符串,如“Hello EasyARM2131!”,然后返回上位机显示。 实验步骤 ①启动ADS 1.2,使用ARM Executable Image for lpc2131工程模板建立一个工程DataRet_C。 ②在user 组中的main.c 中编写主程序代码,在项目中的config.h 文件中加入#include 。 ③选用DebugInRam生成目标,然后编译连接工程。 ④将EasyARM2131开发板上的JP6跳线分别选择TxD0和RxD0端时,方可进行UART0通信实验。 ⑤使用串口延长线把LPC2131教学实验开发平台的CZ2(UART0)与PC机的COM1 连接。PC 机运行EasyARM 软件,设置串口为COM1,波特率为115200,然后选择【设置】->【发送数据】,在弹出的发送数据窗口中点击“高级”即可打开接收窗口。 ⑥选择【Project】->【Debug】,启动AXD进行JTAG仿真调试。 ⑦全速运行程序,在PC 机上的EasyARM软件发送如“Hello EasyARM2131!”字样的字符串,EasyARM2131开发板接收到数据后,并将接收到的数据回发给PC机。 实验参考程序 程序清单错误!文档中没有指定样式的文字。-1 UART查询实验参考程序#include “config.h” #define UART_BPS 115200 //串口通信波特率 /**************************************************************************** * 名称:DelayNS() * 功能:长软件延时 * 入口参数:dly 延时参数,值越大,延时越久 * 出口参数:无 ****************************************************************************/ void DelayNS(uint32 dly) { uint32 i; for(; dly>0; dly--) for(i=0; i<5000; i++); } /********************************************************************************* **函数名称:UART0_Init() **函数功能:串口初始化,设置为8位数据位,1位停止位,无奇偶校验,波特率为115200 **入口参数:无 **出口参数:无 *********************************************************************************/ void UART0_Init(void)

嵌入式实验报告1

学生实验报告 实验课程名称:嵌入式实验 实验项目名称:多线程应用程序设计 实验时间:2016 年12 月05 日 班级:1404 座号: 姓名:

电子信息工程学院编制 2016年12月 一、实验目的: ? 了解多线程程序设计的基本原理。 ? 学习pthread 库函数的使用。 二、所用实验仪器设备、耗材及数量 硬件:UP-TECH S2410/P270 DVP 嵌入式实验平台,PC 机Pentium 500 以上, 硬盘40G 以上,内存大于128M。 软件:PC 机操作系统REDHAT LINUX 9.0 +MINICOM +ARM-LINUX 发环境。 三、实验原理(实验电路图及原理说明) 1.多线程程序的优缺点 多线程程序作为一种多任务、并发的工作方式,有以下的优点: 1) 提高应用程序响应。这对图形界面的程序尤其有意义,当一个操作耗时很长时,整个系统都会等待这个操作,此时程序不会响应键盘、鼠标、菜单的操作,而使用多线程技术,将耗时长的操作(time consuming)置于一个新的线程,可以避免这种尴尬的情况。2) 使多CPU 系统更加有效。操作系统会保证当线程数不大于CPU 数目时,不同的线程运行于不同的CPU 上。 3) 改善程序结构。一个既长又复杂的进程可以考虑分为多个线程,成为几个独立或半独立的运行部分,这样的程序会利于理解和修改。LIBC 中的pthread 库提供了大量的API 函数,为用户编写应用程序提供支持。 2.实验源代码与结构流程图 本实验为著名的生产者-消费者问题模型的实现,主程序中分别启动生产者线程和消费者线程。生产者线程不断顺序地将0 到1000 的数字写入共享的循环缓冲区,同时消费者线程不断地从共享的循环缓冲区读取数据。 四、实验步骤(详细说明实验的操作过程及注意事项) 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引脚的电平信号来控制电机。 总结 在这个嵌入式系统的实验中,我们学习了许多关于嵌入式系统 的知识和技能。通过完成这些实验,我们掌握了常见的GPIO控制、串口通信、Pi camera模块控制和蓝牙控制等技能。这些技能不仅 仅能够在嵌入式系统中发挥作用,也是非常重要的计算机技能, 将在我们的未来工作和生活中发挥重要的作用。我们深深意识到,掌握计算机技能并不是一个短期的过程,需要长时间的学习和实践。我们将继续努力,深入学习计算机知识和技能,在未来的学 习和工作中应用所学知识,实现自己的梦想。

嵌入式实验报告

实验一 ARM汇编语言程序设计 一、实验目的 1.了解IAR Embedded Workbench 集成开发环境 2.掌握ARM汇编指令程序的设计及调试 二、实验设备 1.PC操作系统WIN98或WIN2000或WINXP,ADSI.2集成开发环境,仿真 驱动程序 三、实验内容 1.熟悉IAR Embedded Workbench 集成开发环境 2.理解下列程序,新建工程,加入下面的程序,并观察实验结果,解释程 序实现的功能 分析:该程序实现的功能是程序功能:Y = A*B+C*D+E*F 程序代码: AREA Examl, CODE,READONLY ;定义一个代码段 ENTRY ;程序入口 MOV R0,#0;设置R0寄存器的值为0 MOV R8,#0;设置R8寄存器的值为0 ADR R2,N;将R2寄存器的值设为数据域N的地址 LDR R1,[R2];将以R2的值为地址的数据读入R1 MOV R2,#0;设置R2的值为0 ADR R3,C; 将R3寄存器的值设为数据域C的地址 ADR R5,X; 将R5寄存器的值设为数据域X的地址 LOOP LDR R4,[R3,R8];将R3+R8的数据读入R4 LDR R6,[R5,R8];将R5+R8的数据读入R6 MUL R9,R4,R6;R9 = R4*R6 ADD R2,R2,R9;R2 = R2+R9 ADD R8,R8,#4;R8 = R8+4 ADD R0,R0,#1;R0 = R0+1

CMP R0,R1;比较R0和R1的值 BLT LOOP;R0

嵌入式硬件 实验一 串口通讯实验

实验一串口通讯实验 一.实验目的: 1,掌握ARM的串行口工作原理 2,学习编程实现ARM的UART通讯 3,掌握S3C2410寄存器配置方法 二.实验设备: Up-tNETARM2410-S教学实验箱 JLink仿真器 IAR Embedded Workbench集成开发环境 串口连接线 三.实验内容: 1,了解ADS集成开发环境的基本功能 2,学习串口通讯的基本知识 3,熟悉S3C2410串口有关的寄存器 4,实现查询方式串口的收发功能。接受来自串口(通过超级终端)的字符并将接收到的字符发送到超级终端 四.实验思考: 1, 232串行通讯的数据格式是什么? 答案: 开始前,线路处于空闲状态,送出连续“1”。传送开始时首先发一个“0”作为起始位,然后出现在通信线上的是字符的二进制编码数据。每个字符的数据位长可以约定为5 位、6 位、7 位或8 位,一般采用ASCII 编码。后面是奇偶校验位,根据约定,用奇偶校验位将所传字符中为“1”的位数凑成奇数个或偶数个。也可以约定不要奇偶校验,这样就取消奇偶校验位。最后是表示停止位的“1”信号,这个停止位可以约定持续1 位、1.5 位或2 位的时间宽度。至此一个字符传送完毕,线路又进入空闲,持续为“1”。经过一段随机的时间后,下一个字符开始传送才又发出起始位。每一个数据位的宽度等于传送波特率的倒数。微机异步串行通信中,常用的波特率为50,95,110,150,300,600,1200,2400,4800,9600 等。 2,串行通讯最少需要几根线,分别如何连接? 答案:三根线。 TXD/RXD 是一对数据线,TXD 称发送数据输出,RXD 称接收数据输入。当两台微机以全双工方式直接通信(无MODEM 方式)时,双方的这两根线应交叉联接(扭接)。 输出端五号口(SG)接输入端五号口(SG) 输出端二号口(RXD)接输入端三号口(TXD) 输出端三号口(TXD)接输入端二号口(RXD) 3, ARM的串行口有几个,相应的寄存器是什么? 答案: ARM 自带三个UART 端口,每个UART 通道都有16 字节的FIFO(先入先出寄存器)用于接受和发送。用系统时钟最大波特率可达230.4K,如果用外部时钟(UCLK)UART 可以以更高的波特率运行。 UART线控制寄存器包括ULCON0,ULCON1和ULCON2,主要用来选择每帧数据位数、停止位数,

嵌入式系统与应用实验

嵌 入 式 系 统 与 应 用 实 验 报 告 班级:网络111 姓名:石长江 学号:201100824123

实验一汇编指令试验 一、实验目的 掌握ARM7TMDI 汇编指令的用法,并能编写简单的汇编程序; 学习ARM 微控制器的16 位Thumb 汇编指令的使用方法 掌握指令的条件执行 二、实验设备 硬件:嵌入式实验平台一套、仿真器一个、PC 机一台。 软件:Windows 98/2000/NT/XP 操作系统、仿真器驱动程序、ADS 开发软件一套。 三、实验内容 分别使用ARM、Thumb 指令ADD,MOV,CMP,B 计算1+2+3+…+N 的值。 四、实验原理 ARM 处理器共有两种工作状态: ARM 32 位,这种状态下执行字对准的ARM 指令。 Thumb 16 位,这种状态下执行半字对准的Thumb 指令。 注意:ARM 和Thumb 之间状态的切换不影响处理器的模式或寄存器的内容。 ARM 处理器在两种工作状态之间可以切换。 (1) 进入Thumb 状态。当操作数寄存器的状态位0 为1 时,执行BX 指令进入Thumb 状 态。如果处理器在Thumb 状态进入异常,则当从异常出来(IRQ、FIQ、Undef、Abort、SWI)返回时,自动切换到Thumb 状态。 (2)进入ARM 状态。当操作数寄存器的状态位0 为0 时,执行BX 指令进入ARM 状态。处 理器进行异常处理(IRQ、FIQ、Undef、Abort、SWI)。在此情况下,把PC 放入异常模 式链接寄存器中。从异常向量地址开始执行也可以进入ARM 状态。 Thumb 状态下的寄存器集是ARM 状态下寄存器集的子集。程序员可以直接访问8 个通用 寄存器(R0-R7)、PC、SP、LR 和CPSP。每一种特权模式都有一组SP、LR 和SPSR。 Thumb 状态的R0-R7 与ARM 状态的R0-R7 一致。 Thumb 状态的CPSR 和SPSR 与ARM 状态下的CPSR 和SPSR 一致。 Thumb 状态的SP 映射到ARM 状态的R13。 Thumb 状态的LR 映射到ARM 状态的R14。 Thumb 状态的PC 映射到ARM 状态的PC(R15)。 本程序使用R0 保存结果,所以一开始就要初始化为0;循环执行R0=R0+R1,R1 为循环计 数器,从1 开始计数,每一次循环R1 加1;当循环计数器R1 的值到达N 时,运算结束。五、实验操作步骤 1.启动ADS1.2,使用ARM Execuatable Image 工程模板建立一个工程ASM_Project。 2.建立源文件test2.s,编写实验程序,然后添加到工程中(ARM 指令和Thumb 指令实验 的test2.s 程序源码分别见下清单) 。 3.设置工程链接地址RO Base 为0x0C000000

嵌入式系统实验一 存储器实验

嵌入式系统实验一存储器实验 嵌入式系统实验一-存储器实验 2022春季嵌入式系统课程实验报告 《嵌入式系统》课程实验报告 学生姓名:班级:讲师: 记分及评价: 项目满分:5分 一、实验名称 记忆实验 二、实验目的 了解S3C2410X处理器的内部存储空间分配;掌握存储区域配置方法; 掌握对存储区进行读写访问的方法。 三、实验内容 熟练使用命令脚本文件对arm存储控制器进行正确配置。使用c语言编程,实现对ram的读写访问。 四、实验原理 s3c2410a的存储器控制器提供访问外部存储器所需要的存储器控制信号,具有以下特性:●支持小/大端(通过软件选择)。●地址空间:每个bank有128mb(总共有8个bank,共1gb)。●除bank0只能是16/32位宽之外,其他bank都具有可编程的访问位宽(8/16/32位)。●总共有8个存储器bank(bank0~bank7):一其中6个用于rom,sram等;一剩下2个用于rom,sram,sdram等。●7个固定的存储器bank(bank0~bank6)起始地址。●最后一个bank(bank7)的起始地址是可调整的。●最后两个bank (bank6和bank7)的大小是可编程的。 ● 所有内存库的访问周期都是可编程的。● 可以通过插入外部等待来延长总线访问周期。● 支持SDRAM的自刷新和断电模式。 《嵌入式系统》课程实验报告2021年春季 五、实验结果

超级终端上显示一下信息: 六、练习 编写程序对sram进行字节的读写访问。 #包括\ voidmemory_test(void){ 因蒂; uint16tdata;intmemerror=0;uint16t*pt; 2022春季嵌入式系统课程实验报告 uart_printf(\0x00e00000,_ram_startaddress+0x00f00000); pt=(uint16t*)(_ram_startaddress+0x00e0000);//记忆书写 while((uint32t)pt<(_ram_startaddress+0x00f00000)){ *pt=(uint16t)pt;pt++;} //memoryread uart_uuuprintf(\memorytest(%xh-%xh):rd\\n\uuu内存_uuuu起始地址+0x00e00000,uuu内存_uuu起始地址+0x00f00000); pt=(uint16t*)(_ram_startaddress+0x00e00000); 而((uint32t)pt<(_ram_startaddress+0x00f00000)){ data=*pt; 如果(数据!=(uint16t)pt){ memerror=1; uart_uPrintf(\break;} pt++;} if(memerror==0) uart_printf(\}

相关文档
最新文档