SQLite“;“数据库磁盘映像格式不正确”;嵌入式应用程序中的错误

SQLite“;“数据库磁盘映像格式不正确”;嵌入式应用程序中的错误,sqlite,embedded,Sqlite,Embedded,我试图在一个使用MPC5748G(PowerPC内核)创建的嵌入式系统中使用SQLite,其行为如下。 SQLite vfs是通过USB MSD在ELM Chan FATF之上创建的 SQLite open函数返回SQLite_OK,前4011个insert语句工作正常,没有任何问题 但是,在4011插入之后,任何命令都将失败,并导致SQLITE\u损坏和err\u msg=“数据库磁盘映像格式不正确” 我已从中读取信息,并尝试在读取操作之前和写入操作之后使用f_sync,但没有成功 当db加载

我试图在一个使用MPC5748G(PowerPC内核)创建的嵌入式系统中使用SQLite,其行为如下。 SQLite vfs是通过USB MSD在ELM Chan FATF之上创建的

SQLite open函数返回
SQLite_OK
,前4011个insert语句工作正常,没有任何问题

但是,在4011插入之后,任何命令都将失败,并导致
SQLITE\u损坏
err\u msg=“数据库磁盘映像格式不正确”

我已从中读取信息,并尝试在读取操作之前和写入操作之后使用f_sync,但没有成功

当db加载到PC上并且使用了
pragma integrity\u check
时,它将返回以下错误:
在数据库主目录中 在树页68单元格0上:无效页码27656608 第100页从未使用过

关于如何找到这个问题的根本原因,有什么提示吗

编辑没有其他可能访问或损坏DB文件的任务

更新:我在Windows环境中模拟了相同的应用程序,使用相同的(经过调整的VFS),并且DB二进制文件中存在一些差异。 下面的图片显示了不同之处


什么原因会导致这种情况?

您是否尝试过使用官方的
sqlite3.exe
在PC上读取该文件?您是否收到相同的“格式错误的图像”消息?我尝试过使用,但消息是相同的,如果您只执行4000次插入(即,低于您的明显故障点),您是否仍然可以毫无问题地读取PC上的数据库?您是否可以在PC上构建相同的数据库,将其存储在嵌入式系统上并尝试在那里读取。你能信任你的文件系统吗?失败前的插入次数总是相同的,还是取决于插入数据的大小?你有没有一个最简单的例子来重现这种行为?现在你的问题提到了PetitFatFs和FATF。删除错误信息,而不是添加“编辑”注释。任何想知道您编辑的内容的人都可以查看编辑历史记录。