首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQLite for uClinux:嵌入式系統輕量級資料庫移植指南

     編輯:關於SqlServer

專案環境

  • 硬體:Armsys 44B0X 開發板 (ARM)
  • 核心:uClinux (μClinux)
  • 工具鏈:ucLinux_armsys_051111.tgz
  • 目標:SQLite 2.8.15 + uClinux patch

取得原始碼與 Patch


# 1. 下載 SQLite 2.8.15
wget https://www.sqlite.org/sqlite-2.8.15.tar.gz

# 2. 下載 uClinux patch (2.8.13 版但相容 2.8.15)
wget https://www.menie.org/georges/uCLinux/sqlite-2.8.13-uc0.patch.gz

套用 Patch 與編譯


# 解壓至 uClinux-dist/user
tar -zxvf sqlite-2.8.15.tar.gz -C uClinux-dist/user/
cd uClinux-dist/user/sqlite-2.8.15

# 套用 patch
zcat ../../sqlite-2.8.13-uc0.patch.gz | patch -p1

# 加入建置清單
echo 'dir_y += sqlite' >> ../Makefile

# 編譯並複製至 romfs
make user_only
cp sqlite ../../romfs/bin/

目標機測試


# 開發板上操作
cd /var
sqlite ex1.db
SQLite version 2.8.12
Enter ".help" for instructions
sqlite> CREATE TABLE tbl1(one VARCHAR(10), two SMALLINT);
sqlite> INSERT INTO tbl1 VALUES('hello!',10);
sqlite> INSERT INTO tbl1 VALUES('goodbye',20);
sqlite> SELECT * FROM tbl1;
hello!|10
goodbye|20
sqlite> .databases
0  main     /var/ex1.db
1  temp     /var/tmp/s
sqlite> .schema
CREATE TABLE tbl1(one VARCHAR(10), two SMALLINT);
sqlite> .exit

# 非互動模式
echo "SELECT * FROM tbl1;" | sqlite ex1.db
hello!|10
goodbye|20

關鍵點總結

  • SQLite 無伺服器程序、單一檔案、零設定,極適合嵌入式。
  • uClinux 無 MMU,需確保編譯選項 -DNO_MMAP 等相容設定 (patch 已處理)。
  • 2.x 版本較舊,新專案建議移植 SQLite 3.x (支援更完整 SQL、WAL 模式、更佳並發)。

參考資料:作者部落格

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved