Sqlite移植到ARM开发板

前端之家收集整理的这篇文章主要介绍了Sqlite移植到ARM开发板前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

http://blog.csdn.net/zhangdw8410/article/details/5192892 这个博客编译器写的好像不对啊@H_502_1@


@H_502_1@

安照这个博客内容,就OK了,只是去掉调试信息的地方,A改为小写就OK了@H_502_1@

http://blog.csdn.net/yqm_ll/article/details/2494792
@H_502_1@

路径修改成你开发板的内核中的build的路径就行了@H_502_1@

@H_502_1@

Makefile里面修改编译驱动所用的内核啊@H_502_1@

@H_502_1@

拷到虚拟机里面就行了@H_502_1@


@H_502_1@


@H_502_1@

这是我在编译内核时出现的错误
ln: 正在创建连至‘arch-s3c2410’的符号链接‘include/asm-arm/arch’: 不允许的操作make: *** [include/asm-arm/.arch] 错误 1
下面来分析一下这个错误->:
在编译内核时我是通过 VMtools 来让 WINDOWS 跟 LINUX 来共享文件的,这个共享的目录是由 VMtools 决定的,目录为 /mnt/hgfs/share (其中share这个是用户自己建的,用来实现文件的共享)。假如我们在这个目录下修改完内核后就在这个目录 /mnt/hgfs/share 下编译的话则会出现上面的错误。究其原因是因为 LINUX 在编译内核的时候要在 /(根目录) 下才能编译的,在 /(根目录)下的某个目录下也是可以编译的,如/share (share为用户自己建的目录)。但是为什么在 /mnt/hgfs/share 这个目录下就不能编译呢?这也是在跟目录下的某个目录下编译啊,这个大家要注意,这个目录跟用户在根目录下自己建的目录是不一样的,用户自己建的跟根目录是同属于一个分区的,而/mnt 跟 / (根目录)是不同在一个分区的。而 LINUX 在编译内核时是不允许 符号夸分区连接的,这就是是我们在目录 /mnt/hgfs/share 下出现上面的原因。解决方法是将 目录/mnt/hgfs/share下的 要编译的内核拷贝到/ (根目录) 根目录下即可。
2.
之前在编译内核的时候出现这样的问题
我在make modules的时候出现以下错误
Building modules,stage 2.
MODPOST 1490 modules
ERROR: "__bad_udelay" [drivers/video/savage/savagefb.ko] undefined!
ERROR: "__bad_udelay" [drivers/scsi/nsp32.ko] undefined!
ERROR: "__bad_udelay" [drivers/scsi/atp870u.ko] undefined!
ERROR: "__bad_udelay" [drivers/net/sungem.ko] undefined!
ERROR: "__bad_udelay" [drivers/net/irda/donauboe.ko] undefined!
ERROR: "media_device_unregister_entity" [drivers/media/video/videodev.ko] undefined!
ERROR: "media_entity_get" [drivers/media/video/videodev.ko] undefined!
ERROR: "media_device_register_entity" [drivers/media/video/videodev.ko] undefined!
ERROR: "media_entity_put" [drivers/media/video/videodev.ko] undefined!
ERROR: "media_entity_init" [drivers/media/video/mt9p031.ko] undefined!
ERROR: "media_entity_cleanup" [drivers/media/video/mt9p031.ko] undefined!
ERROR: "__bad_udelay" [drivers/gpu/drm/radeon/radeon.ko] undefined!
ERROR: "__bad_udelay" [drivers/atm/he.ko] undefined!
WARNING: modpost: Found 10 section mismatch(es).
To see full details build your kernel with:
'make CONFIG_DEBUG_SECTION_MISMATCH=y'
make[1]: *** [__modpost] Error 1
make: *** [modules] Error 2

刚开始是因为交叉编译工具不是自己安装,而是直接解压的,所以怀疑是交叉编译工具的问题,自己重新装了之后还是不行,
后来在网上查找资料,都没有具体的解决办法,今天上班偷懒,弄了一下,只要把相应的模块在make menuconfig 中关掉就行,
就是不需要编程动态模块,但是这么做很麻烦,你可以直接编辑.config文件,比用make menuconfig 快很多,但是最后还是有
ERROR: "__bad_udelay" [drivers/scsi/atp870u.ko] undefined!
ERROR: "cmpxchg" [drivers/net/cxgb3/cxgb3.ko] undefined!
没找到,没办法,既然找不到我就直接去makefile把这些禁止,我不编译了,大家去相应的目录下的makefile,把编成.o 的哪一行给注释掉,然后再
编译,OK啦!生成的镜像可以使用啦!!!初次发帖,请多包含。。。。

安照以上朋友的方法,去相应的目录下,把Makefile的中的相应项加#号,注释掉了,其他都不变,编译就出现了以下的错误,可以看出都是驱动的SCSI目录下的文件问题,于是重新make menuconfig,重新配置内核,到driver目录下,把SCSI项全部取消掉,不编译成模块和编译,其他都不该,再make编译,问题解决,编译成功

BUILDarch/x86/boot/bzImage@H_502_1@

Rootdevice is (253,0)@H_502_1@

Setup is12792 bytes (padded to 12800 bytes).@H_502_1@

System is2156 kB@H_502_1@

CRCf4acec3e@H_502_1@

Kernel:arch/x86/boot/bzImage is ready (#1)@H_502_1@

Building modules,stage 2.@H_502_1@

MODPOST 1069 modules@H_502_1@

ERROR:"sas_bios_param" [drivers/scsi/mvsas.ko] undefined!@H_502_1@

ERROR:"sas_change_queue_type" [drivers/scsi/mvsas.ko] undefined!@H_502_1@

ERROR:"sas_change_queue_depth" [drivers/scsi/mvsas.ko] undefined!@H_502_1@

ERROR:"sas_target_destroy" [drivers/scsi/mvsas.ko] undefined!@H_502_1@

ERROR:"sas_target_alloc" [drivers/scsi/mvsas.ko] undefined!@H_502_1@

ERROR:"sas_slave_destroy" [drivers/scsi/mvsas.ko] undefined!@H_502_1@

ERROR:"sas_slave_alloc" [drivers/scsi/mvsas.ko] undefined!@H_502_1@

ERROR:"sas_eh_bus_reset_handler" [drivers/scsi/mvsas.ko] undefined!@H_502_1@

ERROR:"sas_eh_device_reset_handler" [drivers/scsi/mvsas.ko] undefined!@H_502_1@

ERROR:"sas_queuecommand" [drivers/scsi/mvsas.ko] undefined!@H_502_1@

ERROR:"sas_ioctl" [drivers/scsi/mvsas.ko] undefined!@H_502_1@

ERROR:"sas_register_ha" [drivers/scsi/mvsas.ko] undefined!@H_502_1@

ERROR:"sas_domain_attach_transport" [drivers/scsi/mvsas.ko] undefined!@H_502_1@

ERROR:"sas_ssp_task_response" [drivers/scsi/mvsas.ko] undefined!@H_502_1@

ERROR:"sas_slave_configure" [drivers/scsi/mvsas.ko] undefined!@H_502_1@

ERROR:"sas_unregister_ha" [drivers/scsi/mvsas.ko] undefined!@H_502_1@

ERROR:"sas_change_queue_depth" [drivers/scsi/aic94xx/aic94xx.ko] undefined!@H_502_1@

ERROR:"sas_ssp_task_response" [drivers/scsi/aic94xx/aic94xx.ko] undefined!@H_502_1@

ERROR:"sas_request_addr" [drivers/scsi/aic94xx/aic94xx.ko] undefined!@H_502_1@

ERROR:"sas_task_abort" [drivers/scsi/aic94xx/aic94xx.ko] undefined!@H_502_1@

ERROR:"sas_phy_reset" [drivers/scsi/aic94xx/aic94xx.ko] undefined!@H_502_1@

ERROR:"sas_target_alloc" [drivers/scsi/aic94xx/aic94xx.ko] undefined!@H_502_1@

ERROR:"sas_find_local_phy" [drivers/scsi/aic94xx/aic94xx.ko] undefined!@H_502_1@

ERROR:"sas_eh_bus_reset_handler" [drivers/scsi/aic94xx/aic94xx.ko]undefined!@H_502_1@

ERROR:"sas_ioctl" [drivers/scsi/aic94xx/aic94xx.ko] undefined!@H_502_1@

ERROR:"sas_unregister_ha" [drivers/scsi/aic94xx/aic94xx.ko] undefined!@H_502_1@

ERROR:"sas_register_ha" [drivers/scsi/aic94xx/aic94xx.ko] undefined!@H_502_1@

ERROR:"sas_target_destroy" [drivers/scsi/aic94xx/aic94xx.ko] undefined!@H_502_1@

ERROR:"sas_eh_device_reset_handler" [drivers/scsi/aic94xx/aic94xx.ko]undefined!@H_502_1@

ERROR:"sas_queuecommand" [drivers/scsi/aic94xx/aic94xx.ko] undefined!@H_502_1@

ERROR:"sas_bios_param" [drivers/scsi/aic94xx/aic94xx.ko] undefined!@H_502_1@

ERROR:"sas_change_queue_type" [drivers/scsi/aic94xx/aic94xx.ko] undefined!@H_502_1@

ERROR:"sas_slave_alloc" [drivers/scsi/aic94xx/aic94xx.ko] undefined!@H_502_1@

ERROR:"sas_slave_configure" [drivers/scsi/aic94xx/aic94xx.ko] undefined!@H_502_1@

ERROR:"sas_domain_attach_transport" [drivers/scsi/aic94xx/aic94xx.ko]undefined!@H_502_1@

ERROR:"sas_slave_destroy" [drivers/scsi/aic94xx/aic94xx.ko] undefined!@H_502_1@

make[1]:*** [__modpost] 错误 1@H_502_1@

make: ***[modules] 错误 2@H_502_1@



虽然编译成功了,但是到处搜索也没有找到build文件夹,在linux-2.6.30目录下,根本就没有这个目录,于是就不能编写驱动的Makefile文件,还是不行啊


于是再在linux-2.6.30目录下,make modules,制作模块,由于之前已经编译好了,几分钟,就生成了1000多个模块,

然后再#make modules_install,安装模块,就是生成很多.ko文件, 把生成的1000多个模块都复制到了linux-2.6.18内核的操作系统,



[root@localhost lib]# cd modules/
[ root@localhost modules]# ls
2.6.18-164.el5

[root@localhost modules]# cd 2.6.18-164.el5/
[root@localhost 2.6.18-164.el5]# ls
build modules.alias modules.inputmap modules.seriomap updates
extra modules.ccwmap modules.isapnpmap modules.symbols weak-updates
kernel modules.dep modules.ofmap modules.usbmap
misc modules.ieee1394map modules.pcimap source
[root@localhost 2.6.18-164.el5]# pwd
/lib/modules/2.6.18-164.el5
[root@localhost 2.6.18-164 .el5]# cd build/
[root@localhost build]# ls
arch init mm scripts
block ipc Module.kabi security
crypto kabi_whitelist Module.markers sound
drivers kernel Module.symvers symsets-2.6.18-164.el5.tar.gz
fs lib net usr
include Makefile samples
[root@localhost build]# cd ..
[root@localhost 2.6.18-164.el5]# ls
build modules.alias modules.inputmap modules.seriomap updates
extra modules.ccwmap modules.isapnpmap modules.symbols weak-updates
kernel modules.dep modules.ofmap modules.usbmap
misc modules.ieee1394map modules.pcimap source
[root@localhost 2.6.18-164.el5]# cd build/
[root@localhost build]# ls
arch init mm scripts
block ipc Module.kabi security
crypto kabi_whitelist Module.markers sound
drivers kernel Module.symvers symsets-2.6.18-164.el5.tar.gz
fs lib net usr
include Makefile samples
[root@localhost build]# cd ..
[root@localhost 2.6.18-164.el5]# ls
build modules.alias modules.inputmap modules.seriomap updates
extra modules.ccwmap modules.isapnpmap modules.symbols weak-updates
kernel modules.dep modules.ofmap modules.usbmap
misc modules.ieee1394map modules.pcimap source
[root@localhost 2.6.18-164.el5]# cd build/
[root@localhost build]# ls
arch init mm scripts
block ipc Module.kabi security
crypto kabi_whitelist Module.markers sound
drivers kernel Module.symvers symsets-2.6.18-164.el5.tar.gz
fs lib net usr
include Makefile samples
[root@localhost build]# cd ../..
[ root@localhost modules]# ls
2.6.18-164.el5 2.6.30.4
[root@localhost modules]# cd 2.6.30.4/
[root@localhost 2.6.30.4]# ls
build modules.dep modules.ofmap modules.symbols
kernel modules.ieee1394map modules.order modules.usbmap
modules.alias modules.inputmap modules.pcimap source
modules.ccwmap modules.isapnpmap modules.seriomap
[root@localhost 2.6.30 .4]# cd build
[root@localhost build]# ls
arch drivers Kbuild Module.markers samples virt
block firmware kernel modules.order scripts vmlinux
COPYING fs lib Module.symvers security vmlinux.o
CREDITS include MAINTAINERS net sound
crypto init Makefile README System.map
Documentation ipc mm REPORTING-BUGS usr
[root@localhost build]#



注意红色部分,本来只有 2.6.18-164.el5,在执行完#make modules_install 后,相当与把新的内核插入到就的内核,可以看到在原来的linux-2.6.18系统盘的/lib/modules/下多了一个目录2.6.30.4,这就是编译出来的内核被安装到了操作系统中,,这算不算类似于windows目录下安装双操作系统了,这个时候终于在2.6.30.4目录下找到了build,这个时候虚拟机上有了一个和开发板的内核相同的内核,编写在开发板上面运行的驱动程序的Makefile文件,就可以链接到这个目录下了,OK






make ARCH=arm CROSS_COMPILE=arm-linux- make -C /home/linux-2.6.30.4/ SUBDIRS=/home/snull modules
http://bbs.chinaunix.net/forum.PHP?mod=viewthread&tid=1921952 这个帖子编译成功了交叉驱动

我遇到了和这个帖子一样的问题
http://bbs.chinaunix.net/thread-2298586-1-1.html





http://blog.csdn.net/bbs598598/article/details/7583452

http://sqlite-analyzer.en.softonic.com/download sqlite Analyzer的工具,分析得到sqlite的具体信息

sqlite权威指南 》书籍@H_502_1@

得到数据库中的某一列的所有值并将其存到数组中

Linux在指定目录下查找包含指定字符串的文件@H_502_1@

http://blog.csdn.net/liuxiaochen77/article/details/6705001 @H_502_1@ 原文链接:https://www.f2er.com/sqlite/201926.html

猜你在找的Sqlite相关文章