《嵌入式系统与开发》构建嵌入式Linux系统-实验报告(1)
- 格式:doc
- 大小:43.00 KB
- 文档页数:4
课程作业成绩:前言嵌入式系统是基于单片机的一种升级版,它是以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
我们可从几方面来理解嵌入式系统:1.嵌入式系统是面向用户、面向产品、面向应用的,它必须与具体应用相结合才会具有生命力、才更具有优势。
因此可以这样理解上述三个面向的含义,即嵌入式系统是与应用紧密结合的,它具有很强的专用性,必须结合实际系统需求进行合理的裁减利用。
2.嵌入式系统是将先进的计算机技术、半导体技术和电子技术和各个行业的具体应用相结合后的产物,这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。
所以,介入嵌入式系统行业,必须有一个正确的定位。
例如Palm之所以在PDA领域占有70%以上的市场,就是因为其立足于个人电子消费品,着重发展图形界面和多任务管理;而风河的Vxworks之所以在火星车上得以应用,则是因为其高实时性和高可靠性。
3.嵌入式系统必须根据应用需求对软硬件进行裁剪,满足应用系统的功能、可靠性、成本、体积等要求。
所以,如果能建立相对通用的软硬件基础,然后在其上开发出适应各种需要的系统,是一个比较好的发展模式。
目前的嵌入式系统的核心往往是一个只有几K到几十K微内核,需要根据实际的使用进行功能扩展或者裁减,但是由于微内核的存在,使得这种扩展能够非常顺利的进行。
目录第一章嵌入式系统的定义组成和体系结构1.1 嵌入式系统的定义 (1)1.2 嵌入式系统的体系结构 (2)1.3嵌入式系统的组成 (4)第二章嵌入式操作系统和嵌入式软件的编写2.1 嵌入式操作系统 (5)2.2嵌入式Linux的开发流程的步骤 (6)2.3 嵌入式系统的调试 (7)第三章总结 (9)第一章嵌入式系统的定义组成和硬件设计1.1 嵌入式系统的定义按照历史性、本质性、普遍性要求,嵌入式系统应定义为:“嵌入到对象体系中的专用计算机系统”。
嵌入式系统实验报告学号:姓名:班级: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。
湖北汽车工业学院Hubei Automotive Industrise institute课程设计说明书课程名称:嵌入式系统设计题目:数字相框班号:T623-1 学号:20060230116专业:计算机科学与技术学生姓名姜李阳指导老师(签字)起止日期 2009 年 12 月 28 日— 2010 年 1 月 10 日一.嵌入式课程设计概述1.1 课程设计实验平台简介1、硬件:UP-TECHPXA270-S嵌入式实验平台、PC机Pentiumn500以上, 硬盘10G以上。
2、软件:PC机windows平台+虚拟机+REDHAT LINUX 9.0+MINICOM+ARM-LINUX开发环境3、嵌入式Linux开发平台UP-TECHPXA270-S实验仪器介绍。
a、硬件配置UP-TECHPXA270的硬件配置如下表1所示:表1 UP-TECHPXA270-S的硬件配置配置名称型号规格主CPU Intel XScale结构芯片PXA270 工作频率520MHz辅CPU LPC2119 ARM7TDMI-S 扩展AD,CAN功能,扩展IO口以太网DM9000 支持IEEE802.3的10M/100bps模式NOR FLASH Intel E28F128J3A 16位,16MNAND FLASH K9F1208 64M内存SDRAM HY561620 32x2=64MLCD SHARP LQ080 TFT 8寸真彩液晶屏,640X480分辨率触摸屏GK80 Burr Brown ADS7846USB主从接口飞利浦ISP1161 四个USB主接口,一个USB从接口串口RS232 2个通用串口视频口VGA 外接符合VGA标准的视频输出irDA红外线HSDL3600 双向Agilent 兼容SIR和FIR协议调试接口JTAG JTAG烧写Flash音频编解码器Cirrus Logic Crystal CS4201 20位数模转换,18位立体声模数转换32位扩展总线接口GPIO 和UP-TECHARM2410-S平台兼容CF卡接口PCMCIA总线支持SD卡接口MMC控制器支持IDE硬盘接口图1 UP-TECHPXA270-S开发平台逻辑框图二.课程设计目的开设本课程设计的目的是,通过本课程设计,提高学生的分析问题、解决问题的能力,巩固嵌入式系统的基本理论知识,进一步了解和掌握课程中所讲授的概念,方法。
第1篇一、案例背景随着科技的飞速发展,嵌入式系统在各个领域得到了广泛应用。
嵌入式系统涉及计算机科学、电子工程、自动化等多个学科,具有实践性强、技术更新快等特点。
为了提高学生的嵌入式系统设计能力和实际操作能力,我国高校纷纷开展了嵌入式教学实践。
本文以某高校嵌入式教学实践为例,探讨嵌入式教学实践的有效方法。
二、教学目标1. 使学生掌握嵌入式系统基本原理和设计方法;2. 培养学生动手实践能力和创新意识;3. 提高学生团队协作和沟通能力;4. 为学生未来从事嵌入式系统相关工作奠定基础。
三、教学实践内容1. 嵌入式系统概述(1)嵌入式系统定义及特点;(2)嵌入式系统发展历程;(3)嵌入式系统分类;(4)嵌入式系统应用领域。
2. 嵌入式处理器与硬件平台(1)ARM架构概述;(2)ARM处理器核心技术;(3)常用ARM处理器型号及特点;(4)硬件平台搭建与调试。
3. 嵌入式软件开发(1)嵌入式操作系统概述;(2)Linux操作系统原理与应用;(3)嵌入式C语言编程;(4)驱动程序开发。
4. 嵌入式系统设计实践(1)嵌入式系统设计流程;(2)项目选题与需求分析;(3)硬件电路设计与仿真;(4)软件编程与调试;(5)系统集成与测试。
四、教学实践方法1. 理论与实践相结合在教学过程中,注重理论知识与实际操作相结合,使学生能够在理论指导下进行实践,提高实践能力。
2. 项目驱动教学以项目为驱动,将教学内容融入项目中,让学生在实践中掌握知识,培养团队协作和沟通能力。
3. 多媒体教学运用多媒体技术,如PPT、视频等,丰富教学内容,提高学生的学习兴趣。
4. 案例教学通过分析实际嵌入式系统案例,让学生了解嵌入式系统在实际应用中的问题与解决方案。
5. 讨论式教学鼓励学生积极参与课堂讨论,激发学生的思维,提高课堂氛围。
五、教学实践效果1. 学生对嵌入式系统的理解更加深入,掌握了嵌入式系统基本原理和设计方法;2. 学生的动手实践能力和创新意识得到显著提高;3. 学生在团队协作和沟通方面取得明显进步;4. 学生对嵌入式系统相关岗位的就业竞争力得到提升。
嵌入式系统原理与应用实验指导书南航金城学院2013.2目录目录 (1)第一部分试验箱硬件结构 (2)第二部分实验 (11)实验一ADS1.2集成开发环境练习 (11)实验二汇编指令实验1 (17)实验三汇编指令实验2 (20)实验四汇编指令实验3 (23)实验五ARM微控制器工作模式实验 (28)实验六 C语言程序实验 (33)实验七 C语言调用汇编程序实验 (36)实验八GPIO输出控制实验 (39)实验九GPIO输入实验 (46)实验十外部中断实验 (50)实验十一UART通讯实验 (56)实验十二I2C接口实验 (64)实验十三定时器实验 (75)实验十四PWM DAC实验 (81)实验十五ADC实验 (87)实验十六RTC实验 (94)实验十七步进电机控制实验 (101)实验十八直流电机控制实验 (105)附录1 DeviceARM2410 专用工程模板 ..................................................... 错误!未定义书签。
第一部分试验箱硬件结构MagicARM2410教学实验开发平台是一款可使用μC/OS-II、Linux和WinCE操作系统、支持QT、MiniGUI图形系统、集众多功能于一身的ARM9教学实验开发平台。
采用Samsung公司的ARM920T内核的S3C2410A微处理器,扩展有充足的存储资源和众多典型的嵌入式系统接口。
MagicARM2410实验箱参考如图1.1所示。
图1.1 MagicARM2410实验箱外观图MagicARM2410实验箱功能框图如图1.2所示。
图1.2 MagicARM2410实验箱功能框图1.1 S3C2410A芯片简介S3C2410A是Samsung公司推出的16/32位RISC处理器(ARM920T内核),适用于手持设备、POS机、数字多媒体播放设备等等,具有低价格、低功耗、高性能等特点。
《嵌入式数据库sqlite移植及
使用》
实验报告
学生姓名:陈彤
学号:13004405
专业班级:130044
指导教师:孙国梓
完成时间:2016.5.31
实验3 嵌入式数据库sqlite移植及使用
一.实验目的
理解嵌入式软件移植的基本方法,掌握sqlite数据库软件移植的步骤,掌握sqlite 开发的两种方式—命令模式和C代码开发模式的使用方法,并编程实现简单通讯录查询实验。
二.实验内容
实验3.1 移植嵌入式数据库sqlite
实验3.2 简单通讯录查询实例设计和测试
三.预备知识
Linux使用、数据库相关知识等
四.实验设备及工具(包括软件调试工具)
硬件:ARM 嵌入式开发平台、PC 机Pentium100 以上、串口线。
软件:WinXP或UBUNTU开发环境。
五.实验步骤
5.1 移植嵌入式数据库sqlite
步骤【参看教材103页】:
第一步,解压缩sqlite源码,命令tar zxvf sqlite-autoconf-3080900.tar.gz,在解压后的文件夹下,可以看到源码文件有shell.c 和sqlite3.c文件,生成Makefile的配置脚本文件configure.ac ,并检查当前文件夹下__A__(A.存在 B.不存在)Makefile文件。
第二步利用configure脚本文件生成基于ARM实验台的Makefile,具体命令为./configure CC=arm-linux-gcc –prefix=/opt/sqlite –host=arm-linux(假设安装目录为/opt/sqlite),并检查当前文件夹下___A__(A.存在 B.不存在)Makefile文件。
第三步,编译sqlite,命令为_make_,编译过程中使用的编译器为_ arm-linux-gcc _。
第四步,安装sqlit,命令为_make install_。
安装完成后到_/opt/sqlite_文件夹下去查看相关文件,可以看到该文件夹下有_bin_、_include_、__lib__和share文件夹,其中可执行文件sqlite3位于_./bin_文件夹,库位于_./lib_文件夹。
第五步,将sqlite3拷贝到开发板bin目录下,将库下的文件拷贝到开发板的lib目录下【注意链接文件的创建】
第六步,数据库的使用
方式1:命令操纵数据库
在超级终端环境下创建数据库stucomm.db,命令为_sqlite3 stucomm.db_;
创建数据表stutable,字段包括id 整型,name 字符型,phoneNum 字符型,具体命令为_sqlite> create table stutable (id int(20),name char(20),phoneNum char(20));_;
插入2条记录,记录信息如下
001,zhangsan,10086
002,lisi,10000
具体命令为_sqlie> insert into stutable values (001,’zhangsan’,10086); _;
_sqlite> insert into stutable values (02,’lisi’,10000);_;
查询电话号码为10086的相关记录信息,命令为_sqlite> select * from stutable where=10086;__。
方式2:编程操纵数据库
使用C编程模式完成上述功能,代码如下:
#include<stdio.h>
#include"sqlite/sqlite3.h"
int callback(void*,int,char**,char**);
int main()
{
sqlite3* db;
int nResult=sqlite3_open("test.db",&db);
if (nResult !=SQLITE_OK)
{
printf("打开数据库失败\n");
return 0;
}
else
{
printf("打开数据库成功\n");
}
char* errmsg;
nResult=sqlite3_exec(db,"creat table stutable(id int(20),name(20),phoneNum(20))",NULL,NULL,&errmsg);
if (nResult !=SQLITE_OK)
{
sqlite3_close(db);
cout<<errmsg;
sqlite3_free(errmsg);
return 0;
}
string strSq1;
strSq1+="begin;\n";
for (int i=0;i<100;i++)
{
strSq1+="insert into stu values(null.'heh');\n";
}
strSq1+="commit;";
//cout<<strSq1<<end1;
nResult=sqlite3_exec(db,strSq1.c_str(),NULL,NULL,&errmsg);
if (nResult !=SQLITE_OK)
{
sqlite3_close(db);
cout<<errmsg<<end1;
sqlite3_free(errmsg);
return 0;
}
strSq1="select * from where=10086";
nResult=sqlite3_exec(db,strSq1.c_str(),callback,NULL,NULL,&errmsg);
if (nResult !=SQLITE_OK)
{
sqlite3_close(db);
cout<<errmsg<<end1;
sqlite3_free(errmsg);
return 0;
}
sqlite3_close(db);
return 0;
}
int callback(void* ,int nCount,char** pValue,char** pName)
{
string s;
for(int i=0;i<nCount;i++)
{
s+=pName[i];
s+=":";
s+=pValue[i];
s+="\n";
}
printf("%s\n",s);
return 0;
}
假设上述代码文件名为sqlite_exp.c文件,编译命令arm-linux-gcc -o test sqlite_exp.c -I /opt/build/ include/ -L /opt/build/lib/ -lsqlite3 _,其中头文件位于/opt/sqlite/include,库位于/opt/sqlite/lib下。