成功移植SQLite(STM32 .NET MF平台)

2019-12-18 18:45发布

SQLite V2x和V3x比较
项目        V2.8.17        V3.7.15
API接口个数        44        207
源文件个数        44        89
源代码字节数        1.32M        4.0M
Win32 dll库大小        209K        591K
文本编码支持        UTF-8或iso8859        UTF-8、UTF-16
二进制数据(Blob)        不支持        支持
行编号        32字节        64字节
并发性        多读,单写        改良的并发性
.NET Micro Framework的核心代码也不过300K左右,如果支持一个比自己核心还大的多的数据库,真有点小马拉大车的感觉,所以在满足基本功能的基础上(以前我比较担心V2x版本的国际化应用,比如是否支持中文),代码大小是我最关注的。
在Windows平台上对SQLite V2.8.17进行测试后,决定移植V2x版本的SQLite(当然后续不排除再移植3.0版本),移植成功后,release版本的 SQLite的大小大概130K左右。
SQLite V2x和V3x .NET Framework开发
考虑到.NET Micro Framework是.NET框架,所以最初研究的是System.Data.SQLite.dll库,后来发现,一是System.Data.SQLite.dll封装的太过复杂,二是System.Data.SQLite.dll对.NET Framework的框架非常依赖,并且针对不同平台,很难做到直接拷贝就可以使用(必须要安装),三是没有支持SQLite V2x的版本。
所以最后还是决定用Interop的方式直接访问Win32 的 SQLite.dll。网上搜索了一下,有关于SQLite3的相关示例,SQLite V2x的就没有了。所以先研究了一下SQLite3的接口应用,然后根据C++相关的接口定义,反推了一下SQLite V2x的C#接口。
在Windows .NET Framework平台测试SQLite V2x接口(如下图)没有问题的情况下,才开始进行.NET Micro Framework 平台下的SQLite V2x的移植。
sqlite203.JPG (328.47 KB, 下载次数: 5) 下载附件 2013-1-16 12:07 上传

详情,请参见博文:http://blog.csdn.net/yefanqiu/article/details/8508687
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
22条回答
yefanqiu
1楼-- · 2019-12-20 01:22
 精彩回答 2  元偷偷看……
Vmao
2楼-- · 2019-12-20 04:12
这个数据库还是蛮好用的,大部分android都是这个数据库,stm32上跑不知怎么样
yefanqiu
3楼-- · 2019-12-20 07:46
对实时性要求不太高的应用场合,是完全可以满足的。虽然上层接口是C#,但是底层还都是C/C++代码,性能没有多大损失。
huangyuewen
4楼-- · 2019-12-20 11:49
能否公布移植秘籍吗?
yefanqiu
5楼-- · 2019-12-20 16:42
这个和具体的系统相关的,我是基于.net mf移植的,所以文件系统部分都是采用的.net mf的,内存分配也是。
doushinide
6楼-- · 2019-12-20 20:36
 精彩回答 2  元偷偷看……

一周热门 更多>