SQLite3 移植 ARM9 架構 (S3C2440)
從來沒有想過還會再跟嵌入式碰面! 我深深地認為這系列的文章是一場惡夢,沒有學的很懂 :)
機緣巧合桌子上出現了具有 S3C2440 CPU 的 ARM9 板子,而目的就只有一個: 把 x86 的某個 C 語言放到上面跑。根據這個需求和觀看了一下程式,大致上分為兩個部分,分別是 SQLite3 移植到 ARM9 以及特定的 C 語言移植到 ARM9,底下僅分享 SQLite3 移植到 ARM9 的步驟。
以下分為五個操作步驟做說明:
1. 建立 Toolchain
偉大的 Toolchain 是強者同事編譯好之後給我的,因此本次操作是站在巨人的肩膀上完成,實在是很幸運。觀看歷史操作 History 感覺做了許多事情,可能是之前學藝不精,霧煞煞無法領會 :P
開發環境路徑如下
2. 編譯與組譯 SQLite3
下載 SQLite 原始碼 解壓縮 Source
3. 準備相關的檔案資訊
4. 移植測試: Command line 執行
5. 移植測試: 動手寫一個 C 程式與 SQLite 互動
直接參考 [4. ] 的 sample code,大絕就是複製貼上,頂多就是改一下 int main(){... return 0;}
編譯與執行程式
到此完成 SQLite3 porting ARM 的操作!
Reference
[1. ] Android + Mini2440无线网络视频监控系统(三)SQLite的移植
[2. ] Sqlite3.3.6移植详解
[3. ] Embedded System 修課紀錄(1-1)
[4. ] 就讓 C 語言和 Sqlite3 擦出火花吧
機緣巧合桌子上出現了具有 S3C2440 CPU 的 ARM9 板子,而目的就只有一個: 把 x86 的某個 C 語言放到上面跑。根據這個需求和觀看了一下程式,大致上分為兩個部分,分別是 SQLite3 移植到 ARM9 以及特定的 C 語言移植到 ARM9,底下僅分享 SQLite3 移植到 ARM9 的步驟。
以下分為五個操作步驟做說明:
1. 建立 Toolchain
偉大的 Toolchain 是強者同事編譯好之後給我的,因此本次操作是站在巨人的肩膀上完成,實在是很幸運。觀看歷史操作 History 感覺做了許多事情,可能是之前學藝不精,霧煞煞無法領會 :P
開發環境路徑如下
// Cross Compiler 路徑 /usr/local/arm/ // 操作路徑 /home/bernie/Desktop/SQLite/
2. 編譯與組譯 SQLite3
下載 SQLite 原始碼 解壓縮 Source
mv ~/Download/sqlite-autoconf-3071000.tar.gz ~/Desktop/SQLite cd ~/Desktop/SQLite/ tar zxvf sqlite-autoconf-3071000.tar.gz建立安裝資料夾(Build)
cd sqlite-autoconf-3071000 mkdir arm-linux組譯
// PWD 是當前的資料夾 ./configure --host=arm-linux --prefix=`pwd`/arm-linux編譯
make clean make && make install
3. 準備相關的檔案資訊
- /bin : 放到 ARM 開發版 /usr/bin
- /include : SQLite C 語言的 API (僅編譯需要)
- /lib : libsqlite3.so.0.8.6 動態連結檔
關於重要的動態連結檔
- 開發版放到 /lib
- 開發機放到 cross compiler 的 /lib,我的例子是 /usr/local/arm/arm-linux/bin
兩邊都建立 Software link,指向 libsqlite3.so.0.8.6
ln –s libsqlite3.so.0.8.6 libsqlite3.so ln –s libsqlite3.so.0.8.6 libsqlite3.so.0
4. 移植測試: Command line 執行
sqlite3 test.db SQLite version 3.7.11 2012-03-20 11:35:50 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite>有出現,就是成功!其他指令網路上再看看吧 :)
5. 移植測試: 動手寫一個 C 程式與 SQLite 互動
直接參考 [4. ] 的 sample code,大絕就是複製貼上,頂多就是改一下 int main(){... return 0;}
編譯與執行程式
arm-linux hello_sqlite3.c –o hello_sqlite3.o // 將執行檔放到板子上跑~ chmod 644 hello_sqlite3.o ./hello_sqlite3.o
到此完成 SQLite3 porting ARM 的操作!
Reference
[1. ] Android + Mini2440无线网络视频监控系统(三)SQLite的移植
[2. ] Sqlite3.3.6移植详解
[3. ] Embedded System 修課紀錄(1-1)
[4. ] 就讓 C 語言和 Sqlite3 擦出火花吧
Comments
Post a Comment