成功移植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条回答
flyhorse
1楼-- · 2019-12-19 16:02
不知道跑起来效果怎么样?
codefish
2楼-- · 2019-12-19 16:17
 精彩回答 2  元偷偷看……
yefanqiu
3楼-- · 2019-12-19 16:20
207平台:内存文件  1000个插入数据操作 3213ms   读 125ms,磁盘文件:1000个插入数据操作 8420ms,读137ms   这对一般的嵌入式数据库应用来说已经足够了。
jisaowang
4楼-- · 2019-12-19 17:27
很强大,虽然完全不明白都需要跑数据库了,还苦苦挣扎在mcu干什么,微软总是干这种事情,到现在还没成功过。。。。
tiger5
5楼-- · 2019-12-19 21:23
yefanqiu 发表于 2013-1-16 13:22
@tiger5  .NET Micro Framework目前已经支持STM32(103和407),代码全部开源,并且没有授权费用。 详情, ...

谢谢回复。很早就知道楼主,但一直没发现NET用在STM32上的图片。
还有一个小伙子,也用NET,用山岩的开发板。
163fit
6楼-- · 2019-12-19 21:37
比较喜欢在ucos上干类似的这种事情。不知道除SQLITE外还有没有类似的数据库移植上去,

一周热门 更多>