《嵌入式系统与开发》嵌入式数据库sqlite移植及使用-实验报告答案

合集下载

嵌入式实验报告,各实验答案

嵌入式实验报告,各实验答案

boot实验报告本次实验由于时间限制,共完成了三种不同的变化方式,但是课后又设计了一些其他的变化方式。

1、从左到右,再从右到左亮灯,不断循环#define LED_CS4 (*((volatile unsigned char *)(0x10500000)))#define LED_VALUE (0xff)int i;void Delay(unsigned int x){unsigned int i, j, k;for (i =0; i <=x; i++)for (j = 0; j <0xff; j++)for (k = 0; k <0xff; k++);}void dummyOs(void){while (1){LED_CS4 = 0xff;for (i = 1; i < =8; i++){LED_CS4 = (LED_VALUE << i) -1;Delay(200);}for (i = 7; i > 1; i--){LED_CS4 = (LED_VALUE << i) -1;Delay(200);}}}2、先从左到中,后从右到中,不断循环#define LED_CS4 (*((volatile unsigned char *)(0x10500000))) #define LED_VALUE (0xff)int i;void Delay(unsigned int x){unsigned int i, j, k;for (i =0; i <=x; i++)for (j = 0; j <0xff; j++)for (k = 0; k <0xff; k++);}void dummyOs(void){while (1){LED_CS4 = 0xff;for (i = 0; i <4; i++){LED_CS4 = (LED_VALUE << i) -1;Delay(200);}for (i = 7; i >= 4; i--){LED_CS4 = (LED_VALUE << i) -1;Delay(200);}}}3、从左到右,从右到左,隔一个跳#define LED_CS4 (*((volatile unsigned char *)(0x10500000))) #define LED_VALUE (0xff)int i;void Delay(unsigned int x){unsigned int i, j, k;for (i =0; i <=x; i++)for (j = 0; j <0xff; j++)for (k = 0; k <0xff; k++);}void dummyOs(void){while (1){LED_CS4 = 0xff;for (i = 1; i <8; i=i+2){LED_CS4 = (LED_VALUE << i) -1;Delay(200);}for (i = 7; i > 1; i=i-2){LED_CS4 = (LED_VALUE << i) -1;Delay(200);}}}课后补做:1、从左到右灯灭#define LED_CS4 (*((volatile unsigned char *)(0x10500000))) #define LED_VALUE (0xff)int i;void Delay(unsigned int x){unsigned int i, j, k;for (i =0; i <=x; i++)for (j = 0; j <0xff; j++)for (k = 0; k <0xff; k++);}void dummyOs(void){while (1){LED_CS4 = 0x00;for (i = 8; i > =1; i--){LED_CS4 = (LED_VALUE >> i) +1;Delay(200);}}}2、从左到右,再从右到左灯灭,不断循环#define LED_CS4 (*((volatile unsigned char *)(0x10500000))) #define LED_VALUE (0xff)int i;void Delay(unsigned int x){unsigned int i, j, k;for (i =0; i <=x; i++)for (j = 0; j <0xff; j++)for (k = 0; k <0xff; k++);}void dummyOs(void){while (1){LED_CS4 = 0x00;for (i = 8; i >= 1; i--){LED_CS4 = (LED_VALUE >> i) +1;Delay(200);}for (i = 1; i <7; i++){LED_CS4 = (LED_VALUE >> i) +1;Delay(200);}}}实验总结:数码管显示实验报告实验目的1.在实验一引导程序的基础上进一步了解ARM体系结构和编程方法;2.掌握外设访问的方法;3.理解8段数码管的显示原理实验内容1 显示同组的两位同学的四位学号2032 2033;2 显示一组大于九的四位十六进制数字,如abcd。

《嵌入式系统》实验报告指导书(含答案).

《嵌入式系统》实验报告指导书(含答案).

实验一熟悉嵌入式LINUX开发环境1、实验目的熟悉UP-TECHPXA270-S的开发环境。

学会WINDOWS环境与嵌入式Linu环境共享资源的基本方法。

2、实验内容学习UP-TECHPXA270-S系统的使用、XP和虚拟机之间传送文件方法以及UP-TECHPXA270-S和虚拟机之间共享目录的建立方法。

3、预备知识了解UP-TECHPXA270-S的基本结构和配置,Linux基本知识。

4、实验设备硬件:UP-TECHPXA270-S开发板、PC机(内存500M以上)。

软件:PC机操作系统RADHAND LINUX 9+MIMICOM+RAM LINUX操作系统5、实验步骤(1)、在虚拟机下练习Linux常用命令。

(注意以下操作只能在[root@BC root]#,也就是root文件夹下运行,不然会导致系统不能启动)a. 学习命令通过“man ***”和“*** --help”得到的命令使用方法。

b.学习并掌握如下命令:ls,cd ,pwd,cat,more,less,mkdir, rmdir ,rm,mv,cp,tar,ifconfig(2)、XP与虚拟机之间传送文件(Samba服务器建立、网络设置、文件传送);(3)、了解系统资源和连线;(4)、开发板与虚拟机之间共享目录建立(设置NFS、开发板IP设置、目录挂载),挂载文件;(5)vi(vim)的使用(6)输入qt,启动桌面,按CTRL+C退出6、实验报告要求(1)、XP和虚拟机之间传送文件步骤;虚拟机共享XP文件:选择虚拟机设置,设置要共享的文件启动Linux进入/mnt/hgfs即可看到共享文件夹服务器设置——samba服务器(设置需要共享的目录)XP共享虚拟机文件:服务器设置——samba服务器(设置需要共享的目录)确保网络的PING通(即在同一局域网):1.虚拟机的192.168.1.234(RH9)2.XP的为192.168.1.1253.在XP 下点击开始-》运行(\\192.168.1.234)4.用户名bc密码123456以上实现了Linux虚拟机(RH9)和XP的文件的共享(2)、开发板与虚拟机之间建立共享目录以及文件挂载步骤;1.服务器设置——nfs服务器(设置需要共享的目录)2.设置开发板的ip地址:ifconfig eth0 192.168.1.53.在实验箱终端里输入mount -t nfs -o nolock 192.168.1.234:/up-techpxa270/exp /mnt/nfs4./mnt/nfs即为共享目录(3)、请画出虚拟机、PC机和ARM实验箱之间的硬件连接图;(4)、在Linux中怎样配置网络;系统设置->网络,在新的选项卡中(5)、实验中遇到的问题与解决过程。

SQLite数据库和QT库的ebox移植实验报告

SQLite数据库和QT库的ebox移植实验报告

SQLite数据库和QT库的ebox移植实验报告计64 徐骏李若珍张尧马里千开始先搭建了仿真器测试,同时由于仿真器是ARMV平台的,而SQLite的C#版的Wrapper——System.Data.Sqlite编译好的dll只在ARMV平台下有效,而ebox是x86架构的。

嵌入式WinCE模拟器安装步骤注意为了后续QT图形库的安装,请安装英文版本软件开发环境准备(XP系统,按顺序安装)Windows XP Professional workstation with Service Pack 2补丁Visual studio 2005Visual studio 2005 sp1Windows embedded ce6.0Virtual Machine Network Driver for Microsoft Device Emulator不装最后的一个的话,模拟器是启动不起来的,黑屏。

CE6模拟器的Download 和Transport方式叫"Device Emulator(DMA)",DMA是Device Emulator Adaptor,会自动去找模拟器上有什么可用的连接方式,还是TCPIP/ActiveSync/KITL/Manual等几种老方法,实际用TCP/IP连接。

选择Device默认情况即可,后续开发的还需勾选x86,开始选择模拟器。

工程设置打开菜单Platform->Setting,这里有三个地方要设置:1) Build Options选项卡下,去掉Enable KITL2) Environment选项卡,添加环境变量CE_MODULES_SERIAL=1,这是用来将DMA添加进来3) Locale选项卡,用来添加你想要的语言支持,Default Language选为中文a. 选择Core OS -> CEBASE -> International -> Locale Specific Support ->Chinese (Simplified)-> Fonts -> SimSun & NSimSun (Choose 1) ->SimSun & NSimSun添加中文字体b. 不勾选Core OS -> CEBASE -> Graphics and Multimedia Technologies-> Graphics -> Raster Fonts否则则出现乱码,表现为进入系统后中文字符用下划线代替c. 添加相应组件GB18030 Data ConverterMSPY 3.0 for Windows CEWindows CE devices-》Fonts->International->Locale SpecificSupport->Chinese (Simplified)->Double Spelling (Shuang Pin)添加对于简体中文输入法的支持编译好之后就是生成一个SDK的操作可以先检测一下连接的效果TarGet的Connection optionsDownload和Transport都要选择Device Emulator(DMA)Debugger选项要选择KdStub然后点击Download右侧的Settings按钮,会弹出模拟器设置的对话框,在对话框中选择display,在Display对话框中可以设置最终模拟器显示的宽和高,以及显示深度,和翻转角度等。

嵌入式数据库SQLite的移植与使用31页PPT文档

嵌入式数据库SQLite的移植与使用31页PPT文档

SQLite的使用
完成SQLite的移植之后,可以利用它创建一个数据 库,实现基本的SQL语句功能,包括建表、插入、查 询、删除等基本操作,如下所示:
软件移植过程
运行并测试
将编译后的可执行程序下载到目标机上运行。 如果运行正常,就可以算是移植成功。如果不 能运行或是运行的效果不佳,那就有必要找出 原因,加以解决后重新编译,直到生成的可执 行程序正常地在目标机上运行。
特别需要注意的是,选择软件时,需关注它们 本身的版本和相互依赖关系,因为某些软件体 本身它不是孤立的,而且在其开发过程时也有 特殊的环境。
下载源码包,解压。安装配置交叉编译器。 在文件sqliteint.h里面指定SQLITE_PTR_SZ的值
为4,使btree(B树)有正确的变量大小,否则在 ARM开发板上执行时,会出现如下问题:在文件 btree.c中抛出断言, assert( sizeof(ptr)==sizeof(char*) ); 修改configure文件,使其不去检查交叉编译环境。 之后执行configure命令,生产Makefile文件。 修改Makefile文件,将BCC变量里的编译器修改为 X86的编译器,因为其编译生成的可执行文件要在 宿主机上运行。同时,由于编译生成的可执行文件 sqlite要在ARM开发版上执行,为了方便,我们将 后面指定生成的库改为libsqlite.a,即 编译成静态链接的形式。 去掉可执行文件sqlite中的调试信息,这样可执行 文件也将变得很小。
它能够支持Windows、Linux、Unix等等 主流的操作系统
能够跟很多程序语言相结合,比如Tcl、 PHP、Java等,比起Mysql、PostgreSQL 这两款开源世界著名的数据库管理系统来说, 它的处理速度更快。

嵌入式系统技术报告(题目 SQLite数据库的概述和使用)

嵌入式系统技术报告(题目  SQLite数据库的概述和使用)

合肥学院嵌入式系统设计课程技术报告(2014- 2015第2学期)报告题目:SQLite数据库概述和使用专业:自动化班级:级自动化卓越班姓名:指导老师:干开峰摘要自几十年前出现的商业应用程序以来,数据库就成为软件应用程序的主要组成部分。

正与数据库管理系统非常关键一样,它们也变的非常庞大,并占用相当多的系统资源。

嵌入式数据库直接在应用程序进程中运行,提供了零配置运行模式,并且资源占用非常少。

作为一个开源的嵌入式数据库产品,SQLite具有系统开销小,检索效率高的特性,嵌入式数据库无须独立运行的数据库引擎,它是由程序直接调用相应的API去实现对数据的存取操作。

更直白的讲,嵌入式数据库是一种具备了基本数据库特性的数据文件。

嵌入式数据库与其它数据库产品的区别是,前者是程序驱动式, 而后者是引擎响应式。

嵌入式数据库的一个很重要的特点是体积非常小,同时,很多嵌入式数据库在性能上也优于其它数据库,所以在高性能的应用上也常见嵌入式数据库的身影。

SQLite 是D·理查德·希普开发出来的用一个小型C库实现的一种强有力的嵌入式关系数据库管理体制。

SQLite虽然很小巧,但是支持的SQL语句不会逊色于其他开源数据库。

关键词:SQLite;嵌入式;数据库目录1 SQLite简介 (1)2 SQLite工作原理 (1)3 SQLite的功能特性 (2)4 SQLite的结构 (2)5 SQLite的使用 (4)5.1 SQLite里面的一些基本的操作: (4)5.2 SQLite的一些类的使用及说明: (5)5.3 SQLite嵌入式数据库使用注意: (10)6 总结 (11)1 SQLite简介SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。

它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。

嵌入式系统实验实验报告

嵌入式系统实验实验报告

嵌入式系统实验实验报告一、实验目的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<STDIO.H>#INCLUDE<STRING.H>#INCLUDE<STDLIB.H>#INCLUDE<FCNTL.H>#INCLUDE<UNISTD.H>#INCLUDE<MATH.H>#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);.Word 资料IF(BUF[0]!=PRE_SCANCODE) //判断是否放开按键IF(BUF[0]!=0XFF){ //判断是否键入PRE_SCANCODE=BUF[0];USLEEP(50000);SWITCH(BUF[0]){CASE 0X12:{ //按下ENTERSWITCH(F){ //判断运算符CASE1:{J=I;I=(I+1)%2;X=A[I]+A[J];PRINTF(“%D+%D=%D”, A[I],A[J],X);BREAK;}//加法CASE 2:{J=I;I=(I+1)%2;X=A[I]-A[J];PRINTF(“%D-%D=%D”,A[I],A[J],X);BREAK;}//减法CASE3:{J=I;I=(I+1)%2;X=A[I]*A[J];PRINTF(“%D*%D=%D”,A [I],A[J],X);BREAK;}//乘法CASE4:{J=I;I=(I+1)%2;X=A[I]/A[J];PRINTF(“%D/%D=%D”,A [I],A[J],X);BREAK;}//除法DEFAUIT:}F=0;BREAK;}CASE 0X13:{F=1;I=(I+1)%2;BREAK;} //键入运算符CASE 0X14:{F=2;I=(I+1)%2;BREAK;}CASE 0X15:{F=3;I=(I+1)%2;BREAK;}CASE 0X16:{F=4;I=(I+1)%2;BREAK;}DEFAULT:A[I]=BUF[0]; //存入数据}}}RET=CLOSE(FD);}RETURN 0;}▪实验结果:实验效果图实验二十LCD控制实验▪实验目的:了解LCD的基本原理▪实验内容:使用总线方式驱动LCD模块,体会与QT下LCD显示的差别.Word 资料▪作业要求:在目标板的LCD上显示彩色竖条纹或彩色圆环。

嵌入式数据库SQLite的编译、安装和使用

嵌入式数据库SQLite的编译、安装和使用

下文介绍的内容都是基于RedHat Linux 9.0 平台的。

引言:sqlite简介sqlite是嵌入式SQL数据库引擎SQLite(SQLite Embeddable SQL Database Engine)的一个扩展。

SQLite是一个实现嵌入式SQL数据库引擎小型C语言库(C library),实现了独立的,可嵌入的,零配置的SQL数据库引擎。

特性包括:事务操作是原子,一致,孤立,并且持久的,即使在系统崩溃和电源故障之后。

零配置——不需要安装和管理。

实现了绝大多数SQL92标准。

整个数据库存储在一个单一的文件中。

数据库文件可以在不同字节序的机器之间自由地共享。

支持最大可达2T的数据库。

字符串和BLOB类型的大小只受限于可用内存。

完整配置的少于250KB,忽略一些可选特性的少于150KB。

在大多数常见操作上比流行的客户/服务器数据库引擎更快。

简单易于使用的API。

内建TCL绑定。

另外提供可用于许多其他语言的绑定。

具有良好注释的源代码,代码95%有较好的注释。

独立:没有外部依赖。

源代码位于公共域,可用于任何用途。

用SQLite连接的程序可以使用SQL数据库,但不需要运行一个单独的关系型数据库管理系统进程(separate RDBMS process)。

SQLite不是一个用于连接到大型数据库服务器(big database server)的客户端库(client library),而是非常适合桌面程序和小型网站的数据库服务器。

SQLite直接读写(reads and writes directly)在硬盘上的数据库文件。

本文将告诉你怎么开始体验SQLite ,这里没有长长的说明和冗烦的配置。

一、sqlite-3.3.8编译安装请阅读在安装包里的INSTALL或者README 文件。

SQLite已经内置了,你不需要安装任何附加的软件(additional software)。

Windows users可以下载SQLite扩展DLL。

sqlite数据库的移植与测试

sqlite数据库的移植与测试

一、sqlite数据库的编译:1、获得sqlite嵌入式数据库源码,本项目用的是sqlite-3.3.6.tar.gz。

2、sqlite的安装:将sqlite-3.3.6.tar.gz下载到/root目录下。

然后,通过下列命令解压缩sqlite-3.3.6.tar.gz: # tar zxvf sqlite-3.3.6.tar.gz,生成sqlite-3.3.6目录3、sqlite的交叉编译:进入sqlite-3.3.6目录,在sqlite-3.3.6/目录下有一个Makefile范例文件Makefile.linux-gcc。

首先通过下面的命令拷贝此文件并重命名为Makefile:cp Makefile.linux-gcc Makefile4、接下来,用vim打开Makefile文件并手动修改Makefile文件的内容。

Makefile文件的修改情况:17行:TOP = ../sqlite 修改为TOP = .73行:TCC = gcc -O6 修改为TCC = arm-linux-gcc -O681行:AR = ar cr 修改为AR = arm-linux-ar cr83行:RANLIB = ranlib 修改为RANLIB = arm-linux-ranlib注释掉一下两行:TCL_FLAGS = -I/home/drh/tcltk/8.4linuxLIBTCL = /home/drh/tcltk/8.4linux/libtcl8.4g.a -lm –ldl 接下来,还需要修改的一个的文件是main.mk,因为Makefile包含了这个文件。

找到main.mk文件中的63行:select.o table.o tclsqlite.o tokenize.o trigger.o \把它替换成:select.o table.o tokenize.o trigger.o \ 也就是把该行上的tclsqlite.o去掉。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《嵌入式数据库sqlite移植及
使用》
实验报告
学生姓名:
学号:
专业班级:
指导教师:
完成时间:
实验3 嵌入式数据库sqlite移植及使用
一.实验目的
理解嵌入式软件移植的基本方法,掌握sqlite数据库软件移植的步骤,掌握sqlite 开发的两种方式—命令模式和C代码开发模式的使用方法,并编程实现简单通讯录查询实验。

二.实验内容
实验3.1 移植嵌入式数据库sqlite
实验3.2 简单通讯录查询实例设计和测试
三.预备知识
Linux使用、数据库相关知识等
四.实验设备及工具(包括软件调试工具)
硬件:ARM 嵌入式开发平台、PC 机Pentium100 以上、串口线。

软件:WinXP或UBUNTU开发环境。

五.实验步骤
5.1 移植嵌入式数据库sqlite
步骤【参看教材103页】:
第一步,解压缩sqlite源码,命令______________________________________,在解压后的文件夹下,可以看到源码文件有_______________和_____________文件,生成Makefile的配置脚本文件_____________________,并检查当前文件夹下__________(A.存在 B.不存在)Makefile文件。

第二步利用configure脚本文件生成基于ARM实验台的Makefile,具体命令为____________________________________________________________________________(假设安装目录为/opt/sqlite),并检查当前文件夹下__________(A.存在 B.不存在)Makefile文件。

第三步,编译sqlite,命令为______________________________________,编译过程中使用的编译器为___________________________。

第四步,安装sqlit,命令为_________________________。

安装完成后到____________________文件夹下去查看相关文件,可以看到该文件夹下有__________、__________、__________和share 文件夹,其中可执行文件sqlite3位于_________文件夹,库位于_______________文件夹。

第五步,将sqlite3拷贝到开发板bin目录下,将库下的文件拷贝到开发板的lib目录下【注意链接文件的创建】
第六步,数据库的使用
方式1:命令操纵数据库
在超级终端环境下创建数据库stucomm.db,命令为__sqilte3 stucomm.db__________________________________;
创建数据表stutable,字段包括id 整型,name 字符型,phoneNum 字符型,具体命令为_____create table stutable(id integer ,name text,phoneNum text)________________________________________________________________________________;
插入2条记录,记录信息如下
001,zhangsan,10086
002,lisi,10000
具体命令为___insert into stutable values(1,zhangsan,10086)_;
____insert into stutable values(2,lisi,10000)_;
查询电话号码为10086的相关记录信息,命令为__select * from stutable where phoneNum=10086____。

方式2:编程操纵数据库
使用C编程模式完成上述功能,代码如下:
#include “sqlite3.h”
int main(int argc, char** argv)
{
sqlite3 * db = NULL;
char* zErrMsg = NULL;
int rc;
sqlite3_open( “:memory:”, &db ); //打开内存数据库
rc = sqlite3_exec(db, “create table employee(id integer primary key, age integer);”, NULL, 0, &zErrMsg);//创建数据库
for( int i= 0; i < 10; i++ )
{
statement = sqlite3_mprintf( "insert into employee values(%d, %d);”, NULL, 0, &zErrMsg, rand()%65535, rand()%65535 );
rc = sqlite3_exec( db, statement, NULL, 0 , 0 );//插入数据
sqlite3_free( statement );
}
rc = sqlite3_exec(db, “select * from employee;” , callback, 0, &zErrMsg );//查询,并调用回调函数
sqlite3_close(db);
}
假设上述代码文件名为sqlite_exp.c文件,编译命令为__arm-linux-gcc -o sqlite_exp sqlite_exp.c___,其中头文件位于/opt/sqlite/include,库位于/opt/sqlite/lib下。

相关文档
最新文档