最近在研究基于 imx6ull 開發板,想讓開發板支持顯示圖片、字符串、背景色的功能。操作的主要步驟如下:
移植設備樹和驅動
移植 libjpeg 庫
編寫測試程序
一、移植設備樹和驅動
開發板原廠 SDK 已經移植了 lcd 對應的設備樹和驅動。具體可以參考韋東山老師的文章
https://blog.csdn.net/thisway_diy/article/details/104697924
二、移植 libjpeg 庫
1. 下載 libjpeg 庫
下載地址:http://www.ijg.org/files/
選擇版本:jpegsrc.v6b.tar.gz
2. 解壓
yikou@ubuntu:/work/lib$tar-zxvfjpegsrc.v6b.tar.gz
3. 配置
yikou@ubuntu:/work/lib$cdjpeg-6b/ ./configure--host=arm-linux-gnueabihf--prefix=$PWD/temp_install 如果遇到錯誤提示沒有某個目錄,只需要手動創建即可
4. 安裝
yikou@ubuntu:/work/lib/jpeg-6b$make yikou@ubuntu:/work/lib/jpeg-6b$makeinstall
5. 查看
yikou@ubuntu:/work/lib/jpeg-6b$cdtemp_install/ yikou@ubuntu:/work/lib/jpeg-6b/temp_install$ls binincludelibshare
我沒有使用動態庫,而是直接使用靜態庫 /work/lib/jpeg-6b/libjpeg.a 編譯代碼,方便操作。
三、 編譯測試程序
一口君是把靜態庫直接拷貝到測試代碼目錄 lib 下,頭文件拷貝到 include 下。
文件目錄
lcd.c、lcd_show_jpeg.c 為基于 libjpeg 庫實現的顯示漢字、顯示圖片、劃線等功能函數。
HZK16 為漢字庫
./lib/libjpeg.a 是 libjpeg 靜態庫
include 下的頭文件是圖片格式處理、顯示字符串、劃線要用到的其他的頭文件
這些功能具體原理,可以自己查看代碼,暫不討論。
以下是測試程序文件:main.c
#include #include #include"lcd.h" #include"lcd_show_jpeg.h" intmain(intargc,constchar*argv[]) { LCD_Init();// 初始化 LCD_Clear(RED);// 背景呈紅色 for(;;) {//1024*600 printf("------ 一口 Linux----------/n"); LCD_PutString(240,136,"一口 Linux",BLUE,RED);// 在 240.136 位置顯示一口 Linux,藍字紅底 sleep(1); LCD_Clear(BLUE); show_jpeg("test.jpeg");// 顯示圖片 test.jpeg sleep(10); } return0; }
arm-linux-gnueabihf-gcc*.c-orun-I./include/./lib/libjpeg.a
執行結果:
執行結果
想呈現其他顯示效果,只需根據實例調用對應函數即可。
備注:常見錯誤解決
如果版本選擇的不對,會遇到以下錯誤:
WrongJPEGlibraryversion:libraryis90,callerexpects62
因為使用的庫版本太高是 90 的,所以需要下載 62 版本,對應的是這個壓縮包 jpegsrc.v6b.tar.gz。其中:62 對應 6b
在移植 mjpeg-streamer 也會遇到類似錯誤,按照步驟修改即可。
然后按照 1-5 步驟重新操作即可
審核編輯 黃昊宇
-
開發板
+關注
關注
25文章
5120瀏覽量
97949
發布評論請先 登錄
相關推薦
評論