嵌入式系统开发环境实验

合集下载

嵌入式系统软硬件开发环境实验

嵌入式系统软硬件开发环境实验
通过Proteus ISIS软件的VSM(虚拟仿真技术),用户可以对模拟电路、数字电路、模数混合电路,以及基于微控制器的系统连同所有外围接口电子元器件一起仿真。
实验电路
程序及
主要模块流程图
#include<reg51.h>
sbit S1=P1^0;
sbit S2=P1^1;
sbit LED1=P0^0;
sbit LED2=P0^1;
voidmain()
{
while(1)
{LED1=S1;LED2=S2;}
}
实验数据或结果
心得体会
通过本次实验对keil软件以及proteus软件有了初步的认识,通过设计控制灯泡开关的实验对这两个软件进行了简单的应用。
评语及成绩
教师(签署)
Keil uVision2+ Proteus7.8 + PC机一台
实验内容
Keil C51软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM语言和C语言的程序设计。掌握Keil C51软件的使用方法。本实验就是学会PROTEUS仿真软件与KEIL编译环境的使用,让学生提高分析问题和解决问题的能力。
实验报告
课程名称:嵌入式系统原理与应用
实验名称:嵌入式系统软硬件开发环境实验
专业:
学号:
姓名:
实验地点:
实验日期:




1、熟悉Keil软件界面及使用方法
2、利用Keil编辑、编译、仿真、调试运行程序
3、熟悉Proteus软件界面及使用方法
4、Proteus软件画单片机仿真图,进行单片机仿真


பைடு நூலகம்环境

实验三 搭建嵌入式系统开发环境

实验三  搭建嵌入式系统开发环境

实验三搭建嵌入式系统开发环境一、实验目的:1.掌握嵌入式开发环境的配置;2.掌握开发工具链的安装与配置;3.掌握嵌入式系统内核和根文件系统的烧写的过程。

二、实验内容:1)安装配置嵌入式开发环境;2)安装与配置工具链;3)内核和根文件系统的烧写三、实验设备及工具:硬件:UP-NETARM2410-S嵌入式实验仪、PC机pentumn500以上、硬盘40G以上、内存大于256M。

软件:PC机操作系统Red Hat Enterprise Linux 4、MINICOM 、AMRLINUX开发环境。

四、实验步骤:1.共享windows下内核文件至linux环境下,并将文件复制至个人开发目录中2.进入目录,输入make menuconfig,对内核进行裁剪配置3.编译内核之前输入make clean清理编译环境4.输入make dep 编译相关依赖文件5.输入make zImage 输出最终编译后的镜像文件6.将镜像文件共享至windows环境下7.在windows打开超级终端,进入vivi,将镜像文件烧录至实验箱开发板中五、实验总结:通过本次实验,熟悉了Linux 开发环境,学会了如何进行linux内核的烧写。

在实验过程中了解到Linux内核模块的组成结构,通过本次实验,初步了解嵌入式开发的基本过程。

实验四嵌入式驱动程序设计一、实验目的:1.学习在LINUX 下进行驱动设计的原理2.掌握使用模块方式进行驱动开发调试的过程二、实验内容:在PC 机上编写简单的虚拟硬件驱动程序并进调试,实验驱动的各个接口函数的实现,分析并理解驱动与应用程序的交互过程。

三、实验设备及工具:硬件:UP-NETARM2410-S嵌入式实验仪、PC机pentumn500以上、硬盘40G以上、内存大于256M。

软件:PC机操作系统Red Hat Enterprise Linux 4、MINICOM 、AMRLINUX开发环境。

四、预备知识:1.有 C 语言基础。

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

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

嵌入式系统实验指导王艳春李英一张劲松实验一嵌入式微处理器系统的开发环境一、实验环境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 格式的目标文件库。

嵌入式系统试验报告

嵌入式系统试验报告

嵌入式系统实验报告学院:计算机科学与工程姓名:___________学号:_______________专业:_______________指导老师:______________完成日期:______________实验一:流水灯案例、8位数码管动态扫描案例一、实验目的1.1 进一步熟悉Keil C51集成开发环境调试功能的使用;1.2 学会自己编写程序,进行编译和仿真测试;1.3 利用开发板下载hex 文件后验证功能。

二、实验原理2.1 :实验原理图030B 〜I ।卜RSI I ™Hi 」 口 UICDR Hr hJJK RR 18q U I. 海水灯电浒周LhE U_EEM^Li > > 第 X > k >n - » =白 L a £0EBS2.2:工作原理2.2.1:流水灯电路中有LO,1,L2,L3,4,L5,L6,L7共八个发光二极管,当引脚LED_ SEL输入为1,对于A、B、C、D、E、F、G、H引脚,只要输入为1,则点亮相连接的发光二极管。

A〜H引脚连接STM32F108VB芯片的PE8〜PE15,程序初始化时,对其进行初始设置。

引脚LED_SEL为1时,发光二极管才工作,否则右边的数码管工作。

注意,LED SEL 连接于PB3,该引脚具有复用功能,在默认状态下,该引脚的I0不可用,需对AFIO_ MAPR寄存器进行设置,设置其为10可用。

2.2.2: 8位数码管数码管中的A~G、DP段分别连接到电路图中的A~G、H线上,当某段上有一-定的电压差值时,便会点亮该段。

当£3输入为1,也就是LED_ 5£1输入为0时,根据SELO〜SEL2的值确定选中的数码管,即位选,再根据A~H引脚的高低电平,点亮对应段,即段选。

三、实验结果3.1:流水灯对于给出的流水灯案例,下载HEX文件后,在开发板上可观察到L0-L7从左至右依次点亮,间隔300ms。

嵌入式开发环境搭建实验

嵌入式开发环境搭建实验

嵌入式开发环境搭建实验————————————————————————————————作者:————————————————————————————————日期:ﻩ合肥学院嵌入式系统设计实验报告(2013 -2014第2学期)专业:实验项目:嵌入式开发环境搭建实验实验时间:2014 年 4 月28 日实验成员:____________________________________________________________________ 指导老师:电子信息与电气工程系2014年4月制一、实验目的1、了解嵌入式开发的软件工具2、虚拟机VM的安装3、ubuntu操作系统的安装4、Linux下配置TFTP5、配置NFS服务6、实现简单应用程序开发二、实验内容首先安装VMware虚拟机,一步一步,比较简单,接着安装ubuntu-10.04.4操作系统环境,搭建嵌入式交叉编译环境,配置TFTP服务和NFS服务,最后编写简单应用程序,并且会使用Makefile进行简化,尤其其对于大程序的优越性。

三、实验设备硬件:1、pc机软件:1、虚拟机(VMware)2、ARM的操作系统(ubuntu-10.04.4)四、实验过程1、虚拟机的安装下载虚拟机软件一步一步安装:我们选择了自定义安装,对一些设置进行了自定义:同意我们也设置了密码,有利于安全:ﻫ以上使我们的操作系统配置,由于不会有很多的内存需要,我们还是多设置了一些。

系统配置过程中:Ubuntu 已经安装成功。

2、搭建嵌入式交叉编译环境:3、Linux下配置TFTP:4、配置NFS服务:5、实现简单应用程序开发:五、实验小结本次实验主要是软件的安装与验证性的实验,自己搭建嵌入式开发环境,在实验中,我们初次体会了Linux下的操作环境,以前知识听过,却没有用过,而且我们也学会了虚拟机的安装,我不仅安装了ubuntu而且还装了windows xp,对于一些32位软件的安装还是比较好的。

嵌入式系统实验内容(全)

嵌入式系统实验内容(全)

实验一熟悉Linux开发环境一、实验目的1.熟悉Linux开发环境,学习Linux开发环境的配置和使用,掌握Minicom串口终端的使用。

2.学习使用Vi编辑器设计C程序,学习Makefile文件的编写和armv4l-unkonown-linux-gcc编译器的使用,以及NFS方式的下载调试方法。

3.了解UP-NETARM2410-S嵌入式实验平台的资源布局与使用方法。

4.初步掌握嵌入式Linux开发的基本过程。

二、实验内容本次实验使用Redhat Linux 9.0操作系统环境,安装ARM-Linux的开发库及编译器。

创建一个新目录,并在其中编写hello.c和Makefile文件。

学习在Linux 下的编程和编译过程,以及ARM开发板的使用和开发环境的设置。

下载已经编译好的文件到目标开发板上运行。

三、预备知识C语言的基础知识、程序调试的基础知识和方法,Linux的基本操作。

四、实验设备及工具(包括软件调试工具)硬件:UP-NETARM2410-S嵌入式实验平台、PC机Pentium 500以上, 硬盘10G以上。

软件:PC机操作系统REDHAT LINUX 9.0+MINICOM+ARM-LINUX开发环境五、实验步骤1、建立工作目录[root@zxt smile]# mkdir hello[root@zxt smile]# cd hello2、编写程序源代码在Linux下的文本编辑器有许多,常用的是vim和Xwindow界面下的gedit等,我们在开发过程中推荐使用vim,用户需要学习vim的操作方法,请参考相关书籍中的关于vim的操作指南。

Kdevelope、anjuta软件的界面与vc6.0 类似,使用它们对于熟悉windows环境下开发的用户更容易上手。

实际的hello.c源代码较简单,如下:#include <stdio.h>main(){printf(“hello world \n”);}我们可以是用下面的命令来编写hello.c的源代码,进入hello目录使用vi命令来编辑代码:[root@zxt hello]# vi hello.c按“i”或者“a”进入编辑模式,将上面的代码录入进去,完成后按Esc键进入命令状态,再用命令“:wq”保存并退出。

嵌入式开发环境搭建实验报告

嵌入式开发环境搭建实验报告

嵌入式开发环境搭建实验报告实验报告:嵌入式开发环境搭建实验目的:本实验旨在通过搭建嵌入式开发环境,使学生对嵌入式系统的开发流程和环境有更深入的了解,并能够进行简单的嵌入式开发实践。

实验材料:1. 一台支持嵌入式开发的电脑2. 开发板(如Arduino、Raspberry Pi等)3. USB数据线4. 开发软件(如Arduino IDE、Raspbian等)5. 软件安装包(如果需要单独安装)实验步骤:1. 准备开发环境软件:根据使用的开发板选择相应的开发软件,并从官方网站下载安装包。

将安装包保存到电脑上指定的路径。

2. 安装开发软件:运行安装包,按照安装向导的提示进行软件的安装。

完成安装后,打开软件,检查是否安装成功。

3. 连接开发板:使用USB数据线将开发板连接到电脑上,并确保连接良好。

4. 配置开发环境:打开开发软件,进入设置或配置界面。

根据使用的开发板,选择正确的开发板型号,并设置串行端口。

保存设置。

5. 编写并调试代码:使用开发软件创建一个新的代码文件或打开一个现有的示例代码文件。

编写嵌入式程序代码,并进行调试与测试。

根据需要,可以使用调试器、仿真器等进行代码调试。

6. 上传程序到开发板:完成代码编写和调试后,将程序通过USB数据线上传(烧录)到开发板上。

等待上传过程完成。

7. 运行程序:断开USB数据线,将开发板与目标设备(如传感器、电机等)连接。

开启目标设备的电源,观察目标设备的动作与反应。

8. 实验结果分析:根据实验结果,对比设计预期和实际观测,分析代码的执行情况,查找问题并提出解决方案。

实验总结:通过本实验,我们成功搭建了嵌入式开发环境,并进行了基本的嵌入式开发实践。

通过编写代码、调试和运行程序,我们能够控制目标设备进行特定的操作。

在实验过程中,我们对嵌入式系统的开发流程和环境有了更深入的了解,并具备了一定的嵌入式开发能力。

需要注意的是,在实际的嵌入式开发中,可能还需要考虑更多的因素,如硬件接口、通讯协议、资源管理等。

嵌入式系统实验交叉开发环境

嵌入式系统实验交叉开发环境
开发环境配置_NFS配置
也可以手工编写/etc/exports 文件,格式如下: 共享目录 可以连接的主机(读写权限,其他参数)例如: 表示将本机的/jx2410 目录共享给ip 地址为-的所有计算机,可以读取和写入。
第18页/共48页
minicom配置
在Linux操作系统下,使用minicom作为超级终端,因此首先必须正确配置超级终端。在宿主机端Linux下执行:1 #minicom2 Ctrl+A Z 再键入O 或者直接 ctrl+A O 也可以直接用#minicom -s
为虚拟机添加串口 1 如果你现在已经启动了Red Hat 9.0的话请先关闭系统。2 关闭后在工具栏那选择虚拟机--设置--点击ADD--选择serial port --使用物理串口--选择com1 同时选择打开电源时连接-- finish退出--ok3 启动虚拟机
第7页/共48页
为虚拟机添加串口设备
第5页/共48页
实验步骤-2
5.Linux开发工具安装arm-linux交叉编译工具修改配置文件设置PATH变量,使得在任何路径下都可以使用arm-linux-gcc工具6.重新启动使设置生效7.编写hello.c和Makefile文件8.下载已经编译好的文件到目标开发板上运行
第6页/共48页
串口设置
实验七
嵌入式LINUX开发环境的建立
实验目的 实验内容实验设备 实验步骤 实验报告要求
第1页/共48页
实验目的
了解嵌入式开发流程,了解开发流程中使用的软件和硬件的安装,了解和熟悉嵌入式的软硬件平台。了解arm-linux开发工具链的含义,学会基于S3C2410的Linux开发环境的配置和使用,熟悉Linux开发环境。使用Linux的arm-linux-gcc编译,使用基于NFS方式的下载调试,了解嵌入式开发的基本过程。

第4章 嵌入式系统开发环境实验

第4章 嵌入式系统开发环境实验

第4章嵌入式系统开发环境实验4.1 实验目的掌握MDK-ARM开发环境的基本使用方法掌握复位和时钟模块的使用方法掌握GPIO模块的使用方法掌握NVIC和EXTI模块的使用方法掌握使用标准库函数编写相关程序的方法4.2 实验内容(1)新建并配置一个基于STM32F103ZET6处理器和Jlink调试器的工程,工程内应包括全部库函数文件,新建成功后保存为工程模板。

(2)编写并调试时钟初始化程序要求HSE8MHz、SYSCLK、HCLK、PCLK2为48MHz,PCLK1为36MHz。

(3)编写并调试按键控制LED灯闪烁频率的程序,要求按键1控制启动、停止状态、状态由LED1表示,按键2循环控制LED2的闪烁频率可调闪烁周期最小为200ms,最高为2S。

4.3 实验步骤(1)新建并配置工程,配置后进行编译无误后保存为工程模板。

新建工程、选择处理器、文件管理(添加启动文件、源文件、库文件)、配置预编译符号、配置输出选项、配置Listing选项、配置debug选项、配置Jlink仿真器(2)编写并调试时钟初始化程序,记录实验结果。

分析程序功能、设计流程图、编写代码、调试代码(3)编写并调试按键控制LED灯闪烁频率程序,记录实验结果。

分析程序功能、设计流程图、确定变量功能和作用域、编写程序、调试代码、记录实验结果。

4.4 实验结果附详细流程图、程序的执行结果4.5 实验总结总结实验经验、总结中断服务程序的编写方法、分析程序中的缺陷及改进的方法。

4.6 时钟初始化例程//配置stm32f10x_conf.h文件#include "stm32f10x.h"ErrorStatus HSEStartUpStatus;int main(void){RCC_ClocksTypeDef clocks;RCC_DeInit();RCC_HSEConfig(RCC_HSE_ON);HSEStartUpStatus=RCC_WaitForHSEStartUp();if( HSEStartUpStatus==SUCCESS){//继续正常RCC操作FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);FLASH_SetLatency(FLASH_Latency_1);RCC_HCLKConfig(RCC_SYSCLK_Div1);RCC_PCLK2Config(RCC_HCLK_Div1);RCC_PCLK1Config(RCC_HCLK_Div2);RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);//8*9=72MHzRCC_PLLCmd(ENABLE);while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET);RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);while(RCC_GetSYSCLKSource()!=0x08);//等待SYSCLK为PLLCLKRCC_GetClocksFreq(&clocks);while(1);//在此设中断后可通过读取clocks变量的成员值获取当前的时钟}}4.7 按键控制LED灯闪烁频率例程状态控制按键PORTD.3、闪烁频率按键PORTA.8状态显示LED PORTF.6、闪烁LED PORTF.7采用外部中断方式获取按键信息,采用1ms基本延时(SYSTICK)配置stm32f10x_conf.h,启用相关库文件(RCC、Flash、NVIC、EXTI、GPIO)main.c源程序#include "stm32f10x.h"#define TRUE 1#define FALSE 0void GPIO_Configuration(void);void NVIC_Configuration(void);void EXTI_Configuration(void);void DelayMs(u32 delay);void Led_Flash(u32 OutputHalfPeriod);u8 KeySwitch_Press;u8 KeyAdjust_Press;u8 Output_On;u32 SystickCounter;u32 OutputHalfPeriod;int main(void){GPIO_Configuration();NVIC_Configuration();EXTI_Configuration();SysTick_Config(SystemCoreClock/1000);KeySwitch_Press=FALSE;KeyAdjust_Press=FALSE;Output_On=FALSE;OutputHalfPeriod=100;GPIO_SetBits(GPIOF,GPIO_Pin_6|GPIO_Pin_7);while(1){if(KeySwitch_Press==TRUE){Output_On=!Output_On;KeySwitch_Press=FALSE;if(Output_On==FALSE)GPIO_SetBits(GPIOF,GPIO_Pin_6|GPIO_Pin_7);else{GPIO_ResetBits(GPIOF,GPIO_Pin_6);OutputHalfPeriod=100;}}if(Output_On==TRUE){if(KeyAdjust_Press==TRUE){if(OutputHalfPeriod<1000)OutputHalfPeriod=OutputHalfPeriod+100;elseOutputHalfPeriod=100;KeyAdjust_Press=FALSE;}Led_Flash(OutputHalfPeriod);}}}void GPIO_Configuration(){GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD|RCC_ APB2Periph_GPIOF|RCC_APB2Periph_AFIO,ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;//可以以或方式添加多个引脚GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//上拉输入GPIO_InitStructure.GPIO_Speed= GPIO_Speed_2MHz;//速度GPIO_Init(GPIOD, &GPIO_InitStructure);GPIO_EXTILineConfig(GPIO_PortSourceGPIOD,GPIO_PinSource3);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;//可以以或方式添加多个引脚GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//上拉输入GPIO_InitStructure.GPIO_Speed= GPIO_Speed_2MHz;//速度GPIO_Init(GPIOA, &GPIO_InitStructure);GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource8);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//推挽输出GPIO_InitStructure.GPIO_Speed= GPIO_Speed_10MHz;GPIO_Init(GPIOF, &GPIO_InitStructure);}void NVIC_Configuration(){NVIC_InitTypeDef NVIC_InitStructure;NVIC_SetVectorTable(NVIC_V ectTab_FLASH,0x0);NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);NVIC_InitStructure.NVIC_IRQChannel=EXTI3_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;NVIC_Init(&NVIC_InitStructure);NVIC_InitStructure.NVIC_IRQChannel=EXTI9_5_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;NVIC_Init(&NVIC_InitStructure);}void EXTI_Configuration(){EXTI_InitTypeDef EXTI_InitStructure;EXTI_InitStructure.EXTI_Line=EXTI_Line3|EXTI_Line8;EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;EXTI_InitStructure.EXTI_LineCmd=ENABLE;EXTI_Init(&EXTI_InitStructure);}void Led_Flash(u32 OutputHalfPeriod){GPIO_SetBits(GPIOF,GPIO_Pin_7);DelayMs(OutputHalfPeriod);GPIO_ResetBits(GPIOF,GPIO_Pin_7);DelayMs(OutputHalfPeriod);}void DelayMs(u32 delay){SystickCounter=delay;while(SystickCounter>0);}Stm32f10x_it.h文件#ifndef __STM32F10x_IT_H#define __STM32F10x_IT_H#ifdef __cplusplusextern "C" {#endif/* Includes ------------------------------------------------------------------*/ #include "stm32f10x.h"void NMI_Handler(void);void HardFault_Handler(void);void MemManage_Handler(void);void BusFault_Handler(void);void UsageFault_Handler(void);void SVC_Handler(void);void DebugMon_Handler(void);void PendSV_Handler(void);void SysTick_Handler(void);void EXTI3_IRQHandler(void);//添加的中断处理程序void EXTI9_5_IRQHandler(void); //添加的中断处理程序#ifdef __cplusplus}#endif#endif /* __STM32F10x_IT_H */Stm32f10x_it.c文件#include "stm32f10x_it.h"extern u32 SystickCounter;extern u8 KeySwitch_Press;extern u8 KeyAdjust_Press;#define TRUE 1#define FALSE 0void NMI_Handler(void){}void HardFault_Handler(void){/* Go to infinite loop when Hard Fault exception occurs */ while (1){}}void MemManage_Handler(void){/* Go to infinite loop when Memory Manage exception occurs */ while (1){}}void BusFault_Handler(void){/* Go to infinite loop when Bus Fault exception occurs */while (1){}}void UsageFault_Handler(void){/* Go to infinite loop when Usage Fault exception occurs */ while (1){}}void SVC_Handler(void){}void DebugMon_Handler(void){}void PendSV_Handler(void){}void SysTick_Handler(void){if(SystickCounter>0)SystickCounter--;}void EXTI3_IRQHandler(void){KeySwitch_Press=TRUE;EXTI_ClearFlag(EXTI_Line3);}void EXTI9_5_IRQHandler(void){KeyAdjust_Press=TRUE;EXTI_ClearFlag(EXTI_Line8);}/*void PPP_IRQHandler(void){}*//*** @}*/。

嵌入式系统设计(实验一)

嵌入式系统设计(实验一)

工业控制
嵌入式系统被广泛应用于工业 自动化领域,如生产线控制、 机器人控制等。
医疗设备
嵌入式系统可以实现医疗设备 的自动化控制和数据采集,如 医疗监护仪、输液泵等。
其他领域
嵌入式系统还可以应用于通信、 能源、环保等领域,发挥着越 来越重要的作用。
03
硬件平台搭建与配置
硬件平台选择
ARM开发板
传感器与执行器
汇编语言
针对特定硬件平台,使用汇编语言可 以实现更高效的代码执行和更精确的 硬件控制。
软件架构设计
分层架构
将系统划分为多个层次,每个层次负责特定的功能,降低系统复 杂性并提高可维护性。
事件驱动架构
通过事件触发相应的处理函数,实现模块间的解耦和异步通信。
微内核架构
将核心功能集中在微内核中,通过插件或模块扩展系统功能,提高 灵活性和可扩展性。
嵌入式系统设计(实验一)
• 实验目的与要求 • 嵌入式系统概述 • 硬件平台搭建与配置 • 软件设计与实现 • 系统测试与验证 • 实验总结与展望
01
实验目的与要求
实验目的
掌握嵌入式系统基本概念
01
通过实验了解嵌入式系统的定义、特点、应用领域等基本概念。
熟悉嵌入式开发环境
02
学习搭建嵌入式开发环境,包括硬件平台、操作系统、开发工
THANKS
感谢观看
提交实验报告
按时提交完整的实验报告,展示实验成果和 收获。
02
嵌入式系统概述
嵌入式系统定义
01
嵌入式系统是一种专用的计算机 系统,它被设计为控制、监视或 者辅助操作机器和设备的运行。
02
与通用计算机系统不同,嵌入式 系统通常被嵌入到特定的设备中 ,执行特定的任务,并且不需要 人工干预。

嵌入式系统实验报告_2

嵌入式系统实验报告_2

嵌入式系统设计实验报告班级:学号:姓名:成绩:指导教师:1. 实验一1.1 实验名称博创UP-3000实验台基本结构及使用方法1.2 实验目的1.学习嵌入式系统开发流程。

2.熟悉UP-net3000实验平台的核心硬件电路和外设。

3.增加对各个外设的了解,为今后各个接口实验打下基础。

1.3 实验环境博创UP-NETARM3000 嵌入式开发平台1.4 实验内容及要求(1)嵌入式系统开发流程概述(2)熟悉UP-net3000实验平台的核心硬件电路和外设(3)ARM JTAG的安装与使用(4)通过操作系统自带的通讯软件超级终端,检验各个外设的工作状态(5)通过本次课程对各个外设的了解,为今后各个接口实验打下基础1.5 实验设计与实验步骤1.硬件安装2.软件安装(1)超级终端:运行Windows 系统下的超级终端(HyperTerminal)应用程序,新建一个通信终端;在接下来的对话框中选择 ARM开发平台实际连接的PC机串口;完成新建超级终端的设置以后,可以选择超级终端文件菜单中的保存,将当前设置保存为一个特定超级终端到桌面上,以备后用。

(2)JTAG 驱动程序的安装:执行armJtag目录下armJtagSetup.exe程序,选择安装目录,安装 JTAG 软件。

1.6 实验过程与分析(1)了解嵌入式系统开发流程(2)对硬件的安装(3)对软件的安装1.7 实验结果总结通过本次实验对嵌入式系统开发流程进行了了解,并且对硬件环境和软件环境进行了安装配置,通过本次实验对以后的接口实验打了基础。

1.8 心得体会通过本次实验对嵌入式实验有了初步的了解,对基本开发流程也有了初步的了解。

2. 实验二2.1 实验名称ADS1.2软件开发环境使用方法2.2 实验目的熟悉ADS1.2开发环境,学会 ARM仿真器的使用。

使用 ADS 编译、下载、调试并跟踪一段已有的程序,了解嵌入式开发的基本思想和过程。

2.3 实验环境(1)ADS1.2开发环境(2)博创UP-NETARM3000 嵌入式开发平台(3)PC(4)串口线2.4 实验内容及要求本次实验使用ADS 集成开发环境,新建一个简单的工程文件,并编译这个工程文件。

嵌入式操作系统实验报告

嵌入式操作系统实验报告

一、实验目的1. 了解嵌入式操作系统的基本概念和特点;2. 掌握嵌入式操作系统的基本开发流程和工具;3. 学习嵌入式操作系统的内核模块设计和调试方法;4. 熟悉实时操作系统(RTOS)的调度策略和同步机制。

二、实验环境1. 开发板:STM32F103C8T6;2. 开发工具:Keil uVision5;3. 操作系统:Linux;4. 实验内容:基于uc/OS-II实时操作系统进行嵌入式系统开发。

三、实验步骤1. 熟悉开发环境和工具(1)安装Keil uVision5,创建新的项目;(2)下载uc/OS-II源码,并将其添加到项目中;(3)学习Keil uVision5的基本操作,如编译、调试等。

2. 学习uc/OS-II实时操作系统(1)了解uc/OS-II的版本、特点和适用场景;(2)学习uc/OS-II的内核模块,如任务管理、内存管理、中断管理等;(3)熟悉uc/OS-II的调度策略和同步机制。

3. 设计实验任务(1)设计一个简单的嵌入式系统,实现以下功能:a. 初始化uc/OS-II实时操作系统;b. 创建多个任务,实现任务间的同步与通信;c. 实现任务调度,观察任务的执行顺序;d. 实现任务优先级管理,观察任务优先级的变化;e. 实现任务延时,观察延时效果;(2)根据实验要求,编写相应的C语言代码。

4. 编译与调试(1)使用Keil uVision5编译实验项目,生成可执行文件;(2)将可执行文件烧录到开发板上;(3)使用调试工具(如J-Link)进行调试,观察实验结果。

5. 分析与总结(1)分析实验过程中遇到的问题及解决方法;(2)总结uc/OS-II实时操作系统的特点和应用场景;(3)总结嵌入式系统开发的经验和技巧。

四、实验结果与分析1. 实验结果(1)成功初始化uc/OS-II实时操作系统;(2)创建多个任务,实现任务间的同步与通信;(3)实现任务调度,观察任务的执行顺序;(4)实现任务优先级管理,观察任务优先级的变化;(5)实现任务延时,观察延时效果。

嵌入式系统开发实验报告

嵌入式系统开发实验报告
3. 使用命令行工具管理模拟器
4. 操作Android模拟器
5. 使用运行(Run)模式运行
三、实验设备:
1. PC计算机
2. JDK安装包
3. Eclipse安装包
4. Android SDK安装包
5. ADT插件
四、实验内容
初步了解android project建立过程以及如何运行模拟器,对android的运行原理进行简单了解;
实验时间:2015.10.8指导教师:时振涛
实验二:Activity生命周期程序设计
一、实验目的和要求
使学生深入了解Android组件的生命周期中各状态的变化关系。通过程序设计,掌握Activity的三种生命周期:全生命周期、可视生命周期和活动生命周期;每种生命周期中包含的不同的事件回调函数,以及它们的作用和调用顺序,深入理解Activity的生命周期过程。
}
@Override
protected void onRestart() {
super.onRestart();
Log.d("TAG", "Main-onRestart");
}
}
2.SecondActivity.java
package com.sunwei.study;
public class SecondActivity extends AppCompatActivity {
android:theme="@style/AppTheme">
<activity
android:name="com.example.activity_demo.MainActivity"
android:label="@string/app_name">

嵌入式实验报告

嵌入式实验报告

嵌入式实验报告学院:信息工程学院专业:计算机科学与技术班级:计算机班姓名:学号:指导老师:实验目录实验一嵌入式系统开发环境实验 (2)实验二系统节拍定时器实验 (12)实验三 GPIO控制实验 (16)实验四外部中断实验 (19)实验五串口通讯实验 (23)实验一嵌入式系统开发环境实验【实验目的】1.熟悉RealView MDK集成开发环境以及使用方法。

2.熟悉嵌入式系统软件设计方法和流程。

【实验内容】1. 通过例程熟悉、掌握嵌入式系统的编辑、编译、调试、下载及运行过程。

2. 建立自己的工程文件,在开发板板上调试程序。

【实验步骤】(一)程序安装1. 建议在安装之前关闭所有的应用程序,双击安装文件,弹出如图对话框,Next2.默认选择C盘文件下安装。

3.这样就在c盘底下出现keil文件夹。

4.单击选择菜单“>"License Management" 将弹出下面一张图的界面:复制其中CID号,以便在粘贴到下一步中的破解软件。

5.复制CID6.运行破解软件,将出现下面一张图的界面,把上步复制的CID号粘贴到相应位置,其他选项如图,然后点击“Generate”按钮,然后复制产生的序列号,粘贴到上一步的下面一张图的LIC输入框中,然后点击右侧的Add LIC,即可完成破解。

7.安装文件夹中的jlink驱动。

(二)工程创建、编译使用Realview MDK创建、完成一个新的工程只需要以下几个环节:→创建工程并选择处理器→选择工具集→创建源文件→配置硬件选项→配置对应启动代码→编译链接→下载→调试。

1.创建工程并选择处理器选择Project→New Project…,输入创建的新工程的文件名,即可创建一个新的工程。

2.创建一个新工程时,需要为工程选择一款对应处理器,在NXP 列表下选择LPC1768 芯片。

然后点击OK。

接下来出现的对话框选择“是或者也可以通过单击Project→Select Device for Target…在本次课程中,我们选择3.点击上图的ok,在弹出的对话框中确定是否需要复制启动文件选择否,如果选择是,将使用keil自带的启动文件4.在工程区域单击鼠标右键,选择manage components5.在“Project Components”标签下根据需要建立目录,第一栏是工程的根目录,在这里可以修改目录名;第二栏是添加Groups,可以根据个人习惯建立不同的组来分别放置不同类型的文件;第三栏是为建立的组添加代码文件用的,点击“Add Files”添加。

嵌入式实验报告

嵌入式实验报告

实验名称:嵌入式系统开发与调试实验日期:2021年10月15日实验地点:实验室一、实验目的1. 熟悉嵌入式系统的基本组成和原理。

2. 掌握嵌入式系统开发的基本流程和工具。

3. 学习嵌入式系统调试的方法和技巧。

4. 提高实际操作能力,为以后从事嵌入式系统开发打下基础。

二、实验内容1. 嵌入式系统概述2. 嵌入式系统开发环境搭建3. 嵌入式系统编程4. 嵌入式系统调试三、实验步骤1. 嵌入式系统概述(1)了解嵌入式系统的定义、特点和应用领域。

(2)分析嵌入式系统的组成,包括硬件、软件和中间件。

(3)学习嵌入式系统的分类,如按处理器架构、操作系统和应用领域等。

2. 嵌入式系统开发环境搭建(1)安装开发工具,如Keil、IAR等。

(2)搭建硬件开发平台,如STM32、ARM等。

(3)配置开发环境,包括编译器、链接器、调试器等。

3. 嵌入式系统编程(1)学习C语言编程,掌握基本语法和数据结构。

(2)学习嵌入式系统编程技巧,如中断、定时器、串口通信等。

(3)编写示例程序,如LED控制、按键检测等。

4. 嵌入式系统调试(1)学习调试器的基本操作,如设置断点、单步执行、观察变量等。

(2)掌握调试技巧,如逻辑分析、代码优化等。

(3)调试示例程序,找出并修复程序中的错误。

四、实验结果与分析1. 嵌入式系统概述(1)掌握了嵌入式系统的定义、特点和应用领域。

(2)了解了嵌入式系统的组成,包括硬件、软件和中间件。

(3)熟悉了嵌入式系统的分类,如按处理器架构、操作系统和应用领域等。

2. 嵌入式系统开发环境搭建(1)成功搭建了Keil开发环境。

(2)完成了STM32硬件开发平台的搭建。

(3)配置了编译器、链接器、调试器等开发工具。

3. 嵌入式系统编程(1)掌握了C语言编程基本语法和数据结构。

(2)学会了嵌入式系统编程技巧,如中断、定时器、串口通信等。

(3)编写了LED控制、按键检测等示例程序,并成功运行。

4. 嵌入式系统调试(1)熟悉了调试器的基本操作,如设置断点、单步执行、观察变量等。

嵌入式系统实验报告

嵌入式系统实验报告

嵌入式系统实验报告实验题目:嵌入式系统设计与开发实验时间:2021年10月10日实验地点:实验室一号机房实验目的:通过完成嵌入式系统的设计与开发实验,掌握嵌入式系统的基本原理和开发方法。

实验设备:ARM开发板、电脑、网络连接器、编程软件、USB数据线等实验步骤:1. 配置开发环境将ARM开发板与电脑通过USB数据线连接,并安装相应的开发软件,包括编程软件和编译器。

2. 设计嵌入式系统根据实验要求和功能需求,设计嵌入式系统的硬件和软件部分。

确定所需的传感器、执行器和其他硬件模块,并设计系统的软件架构。

3. 开发嵌入式系统编写系统的底层驱动程序,包括对各个硬件模块的控制和通信。

使用C语言或汇编语言进行编程,并进行编译和调试。

4. 系统测试与调试将开发板与相应的传感器和执行器连接,并进行系统测试。

通过调试程序代码,确保系统的各个功能正常运行。

5. 性能优化与扩展根据实际的需求和性能要求,对系统进行优化和扩展。

可以优化程序的运行效率、增加系统的功能模块等。

实验结果:经过一段时间的设计、开发和调试,我成功地完成了嵌入式系统的设计与开发。

该系统具有以下功能:1. 实时监测温度和湿度,并将数据实时显示在LCD屏幕上。

2. 当温度或湿度超过设定阈值时,系统会自动发出警报并记录异常。

3. 根据用户的输入,可以手动控制执行器的开关状态。

实验总结:通过本次实验,我对嵌入式系统的设计和开发有了更深入的了解。

我学到了如何在嵌入式系统中进行硬件和软件的协同设计,以及如何使用相应的开发工具进行开发和调试。

通过不断实践和调试,我也提高了自己的问题解决能力和编程能力。

在以后的学习和工作中,我将继续学习和探索嵌入式系统的更多知识,并应用于实际项目中。

嵌入式开发环境搭建实验报告

嵌入式开发环境搭建实验报告

嵌入式开发环境搭建实验报告一、引言嵌入式系统是一种特殊的计算机系统,它通常被用于控制、监测和执行特定任务。

在嵌入式系统的开发过程中,搭建合适的开发环境是非常重要的。

本实验报告将介绍嵌入式开发环境的搭建过程,并详细描述每个步骤的操作方法和注意事项。

二、实验目标本次实验的目标是搭建一个嵌入式开发环境,包括软件和硬件两个方面。

软件方面,需要安装和配置适合嵌入式开发的集成开发环境(IDE);硬件方面,需要准备一个开发板和相应的调试工具。

三、实验步骤1. 安装IDE软件我们需要选择一款适合嵌入式开发的IDE软件。

常用的嵌入式开发IDE有Keil、IAR和Eclipse等。

根据实际需求,选择并下载合适的IDE软件。

安装过程中需要按照提示完成各项配置,并确保软件能够正常运行。

2. 配置IDE软件安装完成后,需要对IDE软件进行一些配置。

首先,我们需要添加合适的编译器和调试器。

根据开发板的型号和芯片架构,选择相应的编译器和调试器,并将其添加到IDE软件的配置中。

其次,需要配置编译器的路径和选项,确保编译器能够正确编译程序。

最后,还需要配置调试器的连接方式和参数,以便能够正确地调试程序。

3. 准备开发板和调试工具在进行实际开发之前,我们需要准备一个开发板和相应的调试工具。

开发板是嵌入式系统的核心,通常包含了处理器、外设和存储器等组件。

调试工具则用于与开发板进行通信和调试。

根据实际需求,选择合适的开发板和调试工具,并确保它们能够正常工作。

4. 连接开发板和调试工具将开发板和调试工具连接起来是进行嵌入式开发的前提。

首先,需要将开发板和调试工具通过适当的接口连接起来。

接口的选择和连接方式取决于开发板和调试工具的类型。

其次,还需要配置调试工具的连接方式和参数,确保能够正确地与开发板通信和调试。

5. 编写和调试程序完成开发环境的搭建后,就可以开始进行实际的嵌入式开发工作了。

首先,我们需要创建一个新的项目,并选择合适的目标设备和编程语言。

嵌入式实验开发环境熟悉实验

嵌入式实验开发环境熟悉实验

实验一:嵌入式实验开发环境熟悉实验一实验目的●了解本课程使用的嵌入式开发平台UP-NetARM2410-S的基本组成、配置●熟悉ADS1.2 开发环境●学会ARM 仿真器的使用●使用ADS 编译、下载、调试并跟踪一段已有的程序●了解嵌入式开发的基本思想和过程。

二实验内容本次实验要求自己配置好实验环境;然后使用ADS 集成开发环境,新建一个简单的工程文件,并编译这个工程文件。

学习ARM 仿真器的使用和开发环境的设置。

下载已经编译好的文件到嵌入式控制器中运行。

学会在程序中设置断点,观察系统内存和变量,为调试使用程序打下基础。

三实验设备及工具●硬件:ARM 嵌入式开发平台、PC 机Pentium100 以上、用于ARM920T 的JTAG 仿真器、串口线。

●软件:PC 机操作系统Win2000 或WinXP、ARM ADS1.2 集成开发环境、仿真器驱动程序、超级终端通讯程序。

四基础知识1嵌入式开发平台硬件平台是基于ARM体系结构,由北京博创兴业科技有限公司开发的UP-NetARM3000和UP-NetARM2410-S实验仪器。

UP-NetARM3000的CPU为ARM7TDMI内核的三星S3C44B0X01芯片,由于没有MMU(内存管理单元)只能运行uClinux,UP-NetARM2410-S的CPU为ARM920T 内核的三星S3c2410芯片,由于有MMU可以运行标准的ARM-LINUX内核,本实验室配备的实验开发平台就是UP-NetARM2410-S。

现对实验平台做个简要介绍,其硬件配置资源如表1所示:表1 UP-NetARM2410-S的硬件配置配置名称型号说明CPU ARM920T结构芯片三星S3c2410X 工作频率203MHzFLASH SAMSUNG K9F1208 64M NANDSDRAM HY57V561620AT-H 32M×2=64MEtherNet网卡AX88796 两片,10/100M自适应LCD LQ080V3DG01 8寸16bit TFT触摸屏SX-080-W4R-FB FM7843驱动LED ZLG7290 四个共阴极LEDUSB 接口4个HOST /1个DEVICE 由AT43301构成USB HUB UART/IrDA 2个RS232,1个RS485,1个IrDA 从处理器的UART2引出AD 由S3C2410芯片引出3个电位器控制输入AUDIO IIS总线,UDA1341芯片44.1KHz音频扩展卡插槽168Pin EXPORT 总线直接扩展GPS_GPRS扩展板SIMCOM的SIM100-E模块支持双道语音通信IDE/CF卡插座笔记本硬盘,CF卡PCMCIA和SD卡插座PCMCIA型号为DWL-650PS2 PC键盘和鼠标由ATMEGA8单片机控制IC卡座AT24CXX系列由ATMEGA8单片机控制DC/STEP电机DC由PWM控制,STEP由74HC573控制CAN BUS 由MCP2510和TJA1050构成Double DA MAX504 两个10位DAC端口调试接口JTAG 14针、20针UP-NetARM2410-S实验开发平台的外观图如图1所示:图1 UP-NetARM2410-S该实验平台的各模块功能如图2所示:和微机连接示意图:图3 UP-NetARM2410-S的连接示意图该硬件平台的基本架构如图4所示:图4 UP-NetARM2410-S的架构示意图(1)核心板●CPU: ARM920T结构芯片,工作频率202MHz ,SAMSUNG公司的S3c2410X●FLASH:64M NAND型,SAMSUNG的K9F1208●RAM:64MB SDRAM,HY57V561620AT-H200管脚精密插座图5 UP-NetARM2410-S的核心板S3c2410芯片介绍:S3c2410X芯片集成了大量的功能单元,包括:1).内部1.8V,存储器3.3V,外部IO3.3V,16KB数据CACH,16KB指令CACH,MMU;2).内置外部存储器控制器(SDRAM 控制和芯片选择逻辑);3). LCD控制器(最高4K色 STN和256K彩色TFT),一个LCD专用DMA;4). 4路带外部请求线的DMA;5).三个通用异步串行端口(IrDA1.0, 16-Byte Tx FIFO, and 16-Byte Rx FIFO),2通道SPI;6).一个多主IIC总线,一个IIS总线控制器;7). SD主接口版本1.0和多媒体卡协议版本2.11兼容;8). 2个USB HOST ,一个USB DEVICE(VER1.1);9). 4个PWM定时器和一个内部定时器;10).看门狗定时器;11).117个通用IO;12).24个外部中断;13).电源控制模式:标准、慢速、休眠、掉电;14).8通道10位ADC和触摸屏接口;15).带日历功能的实时时钟;16).芯片内置PLL;17).设计用于手持设备和通用嵌入式系统;18).16/32位RISC体系结构,使用ARM920T CPU核的强大指令集;19).ARM带MMU的先进的体系结构支持WINCE、EPOC32、LINUX;20).指令缓存(cache)、数据缓存、写缓冲和物理地址TAG RAM,减小了对主存储器带宽和性能的影响;21).ARM920T CPU 核支持 ARM 调试的体系结构;22).内部先进的位控制器总线(AMBA2.0, AHB/APB) .芯片封装如下图所示:(2)主板●USB口:包括一个USB Device接口和4个USB Host接口。

嵌入式系统开发试验

嵌入式系统开发试验

嵌入式系统开发实验121180166 赵琛一 实验目的·了解嵌入式系统的开发环境、内核的下载和启动过程·了解Linux 内核源代码的目录结构及各目录的相关内容·了解Linux 内核各配置选项内容和作用·掌握Linux 内核的编译过程·了解嵌入式操作系统中文件系统的类型和作用·了解JFFS2 文件系统的优点及其在嵌入式系统中的作用·掌握利用BusyBox 软件制作嵌入式文件系统的方法·掌握嵌入式Linux 文件系统的的挂载过程二 实验内容和要求·掌握将linux内核和文件系统下载到开发板的过程·学会linux内核的配置与编译·了解嵌入式文件系统的构建三 实验设计思想3.1硬件部分嵌入式实验系统x210v3 是基于45 nm 工艺S5PV210芯片的开发平台。

核心处理器S5PV210为Cortex–A8架构, 主频可到1GHz, 支持1GiB DDR2, 片内32KiBI/D 缓存及512KiB 二级缓存, PowerVRSGX540 图形加速引擎, 支持MPEG4、H.263、H.264 1080P@30fps编码及MPEG4 1080P@30fps解码,HDMI/TV–OUT, 引脚间距0.65mm, 17×17 mm FBGA封装。

x210v3 由核心板,底板和液晶板三大块组成,心板采用8 层板工艺设计, 底板留有丰富的外设接口,几乎具备210 所有功能的调试,液晶板采用7吋电容触摸屏。

3.2软件部分1 bootloaderBoot Loader的主要运行任务就是将内核映像从硬盘上读到RAM 中,然后跳转到内核的入口点去运行,也即开始启动操作系统。

bootloader的主要作用是:1. 初始化硬件设备;2. 建立内存空间的映射图;3. 完成内核的加载,为内核设置启动参数。

2串口设置(minicom)多数嵌入式系统都通过异步串行接口(UART)进行初级引导。

嵌入式实验报告一开发环境

嵌入式实验报告一开发环境

OSTaskCreate(MyTask, //创建任务MyTask s_M, //给任务传递参数 &MyTaskStk[TASK_STK_SIZE - 1],//设置任务堆栈栈顶指 针 0); OSStart(); //使任务MyTask的优先级别为0 //启动uCOS_II的多任务管理
} /***********************任务 MyTask*******************************************/ void MyTask (void *pdata) { // char* s_Y="Y"; //定义要显示的字符 char* s="Hello World ZhangLong 2010001419"; #if OS_CRITICAL_METHOD == 3 OS_CPU_SR cpu_sr; #endif pdata = pdata; OS_ENTER_CRITICAL(); PC_VectSet(0x08, OSTickISR); //安装uCOS_II时钟中断向 量 PC_SetTickRate(OS_TICKS_PER_SEC); //设置uCOS_II时 钟频率 OS_EXIT_CRITICAL(); OSStatInit(); //初始化uCOS_II的统计任务 for (;;) { if (x>0) { x=0; y+=2; } PC_DispStr(x, y, //显示字符的位置 s, DISP_BGND_BLACK+DISP_FGND_WHITE ); x += 1; //如果按下Esc键则退出uCOS_II

三、主要仪器设备
硬件环境:PC计算机; 软件环境:WIN98/2000/XP、BC4.5(Borland C++ 4.5)、 TASM.exe。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

嵌入式系统开发环境实验
一实验目的与要求
1.熟悉Linux系统环境。

2.了解实验板的结构组成。

3.了解嵌入式系统开发的基本知识。

4. 熟悉嵌入式Linux交叉编译环境的建立过程,并通过一个HelloWorld程序的编写、编译、下载运行及调试过程,了解嵌入式开发的基本方法和流程。

二实验设备与软件环境
1.硬件:SemitARM9200开发板,PC机PIII800MHz,256MB以上,串口线(公母)1条,网线1条,7.5V
电源1个。

2.软件:RedHat 9.0以上Linux操作系统.
三实验原理
1.宿主机开发环境
绝大多数的Linux软件开发都是以Native方式进行的,即本机(Host)开发、调试,本机运行的方式。

这种方式通常不适合于嵌入式系统的软件开发,因为嵌入式系统没有足够的资源在本机(即板子上系统)运行开发工具和调试工具。

通常的嵌入式系统的软件开发采用一种交叉编译调试的方式,交叉编译调试环境建立在宿主机(即一台PC机)上,对应的开发板叫做目标板。

如下图所示。

开发时使用宿主机上的交叉编译、汇编及链接工具形成可执行的二进制代码,(这种可执行代码不能在宿主机上执行,而只能在目标板上执行)然后把可执行文件下载到目标机上运行。

一般调试的方法包括串口调试和以太网口调试。

对于本实验板,目前可采用串口调试,操作系统经过修改可以实现以太网口调试。

宿主机和目标板的处理器一般都不相同,宿主机为Intel或AMD处理器,而目标板如本实验板的处理器为ATMEL AT91RM9200 。

GNU编译器提供这样的功能,在编译时可以选择开发所需的宿主机和目标机从而建立开发环境。

所以在进行嵌入式开发前第一步的工作就是要安装一台装有指定操作系统的PC机作宿主开发机,宿主机上的操作系统一般要求安装Linux,但Linux由多个发行版本,在此,我们推荐使用Redhat 9.0作为本实验板的宿主机PC操作系统(可以下载)。

然后要在宿主机上建立交叉编译调试的开发环境。

环境的建立需要许多的软件模块协同工作,这将是一个比较繁杂的工作,但现在只要安装我们提供的光盘,开发软件包及GNU编译工具已完全自动完成了。

当开发环境安装完毕后,会在根目录下生成两个目录:工作目录/home/arm和交叉编译环境目录/usr/local/arm。

嵌入式开发通常要求宿主机配置有网络,支持NFS(为交叉开发时mount所用),支持TFTP服务器(为下载映像文件所用)等等,这个将在后面介绍。

下面介绍安装步骤:
我们建议您完全安装的Redhat9.0 Linux操作系统(提供下载),可以使用光盘启动安装Redhat9.0 Linux时,刚开始安装不久,安装向导会弹出对话框询问您安装服务器或工作站等,请选择自定义(Custom);安装过程中可以指定PC机上网卡的IP地址,由于本实验板在烧写时默认的IP为192.168.0.23,所以建议您的PC 机也在此网段(192.168.0.X),IP地址可以在安装时指定,也可以在PC机安装好以后指定IP;在配置防火墙(Firewall)时,选择不安装防火墙(No Firewall),在选择软件Package时选择最后一项:Everything,即完全安装。

完全安装完以后,大概占用4.8GB的硬盘空间。

最后会让您选择Linux启动以后进入X模式还是文本模式,根据自己的爱好决定,进入文本模式时启动花费的时间少一些,即使进入X windows,也可以按Ctrl + Alt +Fx(x 在默认情况可以是1,2,⋯⋯6),输入安装RedHat 时节输入的用户名(root或已经建立的其它用户)和密码,即可进入操作系统的Shell提示符,例如像:[root@localhost root]# 【注意】安装完成以后也可以修改/etc/inittab文件来选择进入X windows还是进入字符模式。

四实验内容与步骤
1.交叉编译环境的建立
开发板上的ttys0与PC的串口1相连。

开发板的网卡与PC的网口相连。

开发板接7.5V电源。

在Windows环境下启动超级终端,进入超级终端。

输入连接名称,这个名称可以随便输入,您可以输入“semit”,然后点击“确定”按钮。

设置连接使用串口1(COM1),点击“确定”进入COM1的属性设置窗口。

设置串口每秒位数为115200,数据位为8,奇偶校验无,停止位1,数据流控“无”,确定后进入超级终端窗口。

按下本开发板上的复位键(具体位置见33页SemitARM9200 开发板实物图及接口示意图)后启动开发板,进入如下界面。

设置宿主机的IP地址为192.168.0.22。

输入mount –t nfs 192.168.0.22:/ /mnt/挂载,建立交叉编译环境。

挂载成功后输入cd /mnt,输入ls,就可以看到mnt目录下面有哪些文件了。

2.运行hello world应用程序
输入cd /mnt/helloworld/,
输入ls,显示helloworld文件里的内容。

输入./hello,运行可执行程序,会看到对话框显示运行程序的结果“hello world!”。

五实验思考题
1.如何将开发板修改为上电后自动mount固定IP的的主机?
2.调试应用程序有哪些基本方法?
六实验结论及注意事项
嵌入式系统开发环境需要多次练习熟练掌握,要注意IP的选取和电脑串口的选取要对应。

相关文档
最新文档