Linux系統基于ARM平臺的LVGL移植

軟硬件介紹:Ubuntu 20.04 ARM 和(Cortex-A53架構)開發板

  1. 基本原理

LVGL圖形庫是支持使用Linux系統的Framebuffer幀緩沖設備實現的,如果想要實現在ARM開發板上運行LVGL圖形庫,那么就需要把LVGL圖形庫提供的關于幀緩沖設備的案例源碼進行移植。

  1. ARM開發板搭載的Linux系統,并且開發板板載了7寸的LCD屏和電容式觸摸屏,如下:

  1. (只想了解如何使用可以不看,這里的源碼可以在文章最后的百度網盤找到)閱讀LVGL關于Linux幀緩沖設備的技術博客,下載要移植的源碼和了解要修改的內容!

由于git采用的分支管理,所以下載的案例源碼中缺少lvgl和lvgl_drivers的分支源碼,所以需要從GitHub中下載這兩個分支源碼,如下圖:

2.把兩個分支源碼包下載到本地之后,需要對兩個源碼包進行解壓,再把解壓之后的所有內容分別拷貝到工程中lvgl文件夾和lvgl_drivers文件夾中即可,這樣就完成了源碼的整合!!

(1)根據LVGL官方的提示把兩個分支源碼包中的配置文件替換到主源碼包根目錄下,如下:

注意:要把lvgl文件夾中的lv_conf_template.h和lv_drivers文件夾中的lv_drv_conf_template.h這兩個文件拷貝到工程根目錄下,并且把lv_conf_template.h改名為lv_conf.h,把lv_drv_conf_template.h改名為lv_drv_conf.h。

(2)根據LVGL官方的提示來修改主源碼包的lv_conf.h配置文件中的部分參數,具體如下圖:

(3)根據LVGL官方的提示來修改主源碼包的lv_drv_conf.h配置文件中的部分參數,如下圖:

(4)由于開發板采用ARM平臺,所以需要修改案例源碼中Makefile腳本文件的編譯工具鏈

注意:(5)把整個源碼工程放入Linux系統中,并切換到源碼工程中對源碼進行編譯,輸入: make

可以看到對工程進行編譯時會提示以下錯誤:cc: error: unrecognized command line option ‘-Wshift-negative-value’

這個錯誤原因是指Linux系統中使用的arm-linux-gcc交叉編譯器不支持這個選項,所以解決方案是更換更高版本的arm-linux-gcc編譯器或者從Makefile腳本文件中把這句話刪掉。

從Makefile腳本文件中刪掉 “-Wshift-negative-value”之后,保存腳本后對工程再次編譯即可。

如果沒有任何其他錯誤提示,則說明源碼編譯通過,此時可以把生成的可執行文件下載到ARM開發板測試。

(6)切換到項目源碼的 build/bin目錄下可以看到一個名稱叫做demo的可執行文件,如下:

注意:(7)把可執行文件下載到ARM開發板中,修改可執行文件的權限,并運行可執行文件觀察!

可以看到,ARM開發板確實可以顯示LVGL圖形庫提供的例程,但是此時是無法通過觸摸屏切換界面的,原因是在main.c的循環中沒有調用一個名稱叫做lv_tick_inc()的函數接口。

整個?LVGL圖形庫的運轉都是基于 LVGL圖形庫中定義的 ”Timer“ 定時器,系統需要給 LVGL 一個 ”心跳“,LVGL圖形庫框架才可以正常的運轉起來。而lv_tick_inc()就是用于系統告知LVGL圖形庫時間的函數接口,該函數是以毫秒為單位的。

修改main.c之后重新對工程進行編譯,再把生成的可執行文件下載到開發板驗證即可!

源碼百度網盤鏈接:通過網盤分享的文件:LVGL.rar
鏈接: https://pan.baidu.com/s/1yfsIgFq3C9LqzFbOUDFJTg?pwd=hfym 提取碼: hfym?
--來自百度網盤超級會員v2的分享

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/897391.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/897391.shtml
英文地址,請注明出處:http://en.pswp.cn/news/897391.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【GPT入門】第14課 openai調用高德地圖案例實現多輪會話與多輪接口調用

【GPT入門】第14課 openai調用高德地圖案例實現多輪會話與多輪接口調用 1.使用openai調用高德地圖API概述2. 高德接口調用申請3.實現代碼(多個function調用,多輪對話)4.執行結果1.使用openai調用高德地圖API概述 任務描述:使用openai調用高德地圖API,實現用戶問地理有關的…

每日一題-----面試

一、什么是孤兒進程?什么是僵尸進程? 1.孤兒進程是指父進程在子進程結束之前就已經退出,導致子進程失去了父進程的管理和控制,成為了 “孤兒”。此時,這些子進程會被系統的 init 進程(在 Linux 系統中&…

Python深度學習算法介紹

一、引言 深度學習是機器學習的一個重要分支,它通過構建多層神經網絡結構,自動從數據中學習特征表示,從而實現對復雜模式的識別和預測。Python作為一門強大的編程語言,憑借其簡潔易讀的語法和豐富的庫支持,成為深度學…

【Python】Django 中的算法應用與實現

Django 中的算法應用與實現 在 Django 開發中,算法的應用可以極大地擴展 Web 應用的功能和性能。從簡單的數據處理到復雜的機器學習模型,Django 都可以作為一個強大的后端框架來支持這些算法的實現。本文將介紹幾種常見的算法及其在 Django 中的使用方法…

旋轉編碼器原理與應用詳解:從結構到實戰 | 零基礎入門STM32第四十七步

主題內容教學目的/擴展視頻旋轉編碼器電路原理,跳線設置,結構分析。驅動程序與調用。熟悉電路和驅動程序。 師從洋桃電子,杜洋老師 📑文章目錄 一、旋轉編碼器是什么?二、內部結構揭秘2.1 機械組件解剖2.2 核心部件說明…

如何禁止電腦中某個應用聯網

一、通過防火墻基礎設置(快速操作) 打開控制面板 在任務欄搜索框輸入“控制面板”并打開,將右上角“查看方式”切換為“大圖標”。 進入防火墻設置 點擊 Windows Defender防火墻 → 左側選擇 允許應用或功能通過Windows Defender防火墻。…

aws(學習筆記第三十二課) 深入使用cdk(API Gateway + event bridge)

文章目錄 aws(學習筆記第三十二課) 深入使用cdk學習內容:1. 使用aws API Gatewaylambda1.1. 以前的練習1.2. 使用cdk創建API Gateway lambda1.3. 確認cdk創建API Gateway lambda 2. 使用event bridge練習producer和consumer2.1. 代碼鏈接2.2. 開始練習2.3. 代碼部…

城市霓虹燈夜景拍照后期Lr調色教程,手機濾鏡PS+Lightroom預設下載!

調色教程 在城市霓虹燈夜景拍攝中,由于現場光線復雜等因素,照片可能無法完全呈現出當時的視覺感受。通過 Lr 調色,可以彌補拍攝時的不足。例如,運用基本調整面板中的曝光、對比度、陰影等工具,可以處理出畫面的整體明暗…

自然語言處理:文本分類

介紹 大家好,我這個熱衷于分享知識的博主又來啦!之前我們一起深入探討了自然語言處理領域中非常重要的兩個方法:樸素貝葉斯和邏輯斯諦回歸。在探索的過程中,我們剖析了樸素貝葉斯如何基于概率原理和特征條件獨立假設,…

PDFMathTranslate安裝使用

PDF全文翻譯!!!! PDFMathTranslate安裝使用 它是個啥 PDFMathTranslate 可能是一個用于 PDF 文件的數學公式翻譯 工具。它可能包含以下功能: 提取 PDF 內的數學公式 將數學公式轉換成 LaTeX 代碼 翻譯數學公式的內…

【由技及道】量子構建交響曲:Jenkinsfile流水線的十一維編程藝術【人工智障AI2077的開發日志008】

摘要:當代碼提交觸發時空漣漪,當構建流水線穿越量子維度——歡迎來到自動化構建的終極形態。本文將揭示如何用Jenkinsfile編寫量子構建樂章,讓每次代碼提交都成為跨維度交響樂的音符。 動機:構建系統的量子哲學 “主人啊&#xff…

K8S高可用集群-小白學習之二進制部署(ansible+shell)

一.K8S高可用集群配置概述 序言:本文從一個小白的視角進行K8S的研究和部署,采用二進制的方式是為了更清楚了分解部署流程及了解這個集群是怎么運作的,加上ansible+shell是方便在這個過程中,遇到了問題,我們可以不斷的快速重復部署來測試和研究問題的所在點,本文的架構圖…

【自學筆記】R語言基礎知識點總覽-持續更新

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄 R語言基礎知識點總覽1. R語言簡介2. R語言安裝與環境配置3. R語言基礎語法3.1 數據類型3.2 向量與矩陣3.3 數據框與列表 4. 控制結構4.1 條件語句4.2 循環結構 5. 函…

【編譯器】VSCODE搭建ESP32-C3

【編譯器】VSCODE搭建ESP32-C3 文章目錄 [TOC](文章目錄) 前言一、下載配置二、編譯三、燒錄四、參考資料總結 前言 使用工具: 1. 提示:以下是本篇文章正文內容,下面案例可供參考 一、下載配置 安裝IDF,打開例程 二、編譯 三…

通義千問本地配置并實現微調

通義千問本地配置并實現微調 最小Qwen模型大小942mb from modelscope import snapshot_download model_dir = snapshot_download(“qwen/Qwen2.5-0.5B”, cache_dir=“./models2.5”) Qwen2.5-0.5B:942MB from modelscope import snapshot_download model_dir = snapshot_d…

Magento2根據圖片文件包導入產品圖片

圖片包給的圖片文件是子產品的圖片&#xff0c;如下圖&#xff1a;A104255是主產品的sku <?php/*** 根據圖片包導入產品圖片&#xff0c;包含子產品和主產品* 子產品是作為主圖&#xff0c;主產品是作為附加圖片*/use Magento\Framework\App\Bootstrap;include(../app/boot…

力扣146 - LRU緩存

視頻講解 哈希 雙向鏈表 為什么要用雙向鏈表&#xff1f; 快速刪除節點&#xff08;O(1&#xff09;&#xff09; 如果是單鏈表的話&#xff0c;刪除一個節點時&#xff0c;需要從頭遍歷&#xff0c;找到前驅節點&#xff0c;才能修改 prev->next&#xff0c;導致 O(n)…

考研408

是否需要考研&#xff1f; 考研前期準備 目標院校 每年9月10月才會公布 考試時長3小時 數據結構 1.時間復雜度選擇題計算 2.順序表鏈表特點;指針、結構體語法&#xff0c;鏈表結點定義&#xff0c;鏈表頭結點與頭指針,常見的五種鏈 表&#xff0c;鏈表的插入刪除操作;順…

nodejs使用WebSocket實現聊天效果

在nodejs中使用WebSocket實現聊天效果&#xff08;簡易實現&#xff09; 安裝 npm i ws 實現 創建 server.js /*** 創建一個 WebSocket 服務器&#xff0c;監聽指定端口&#xff0c;并處理客戶端連接和消息。** param {Object} WebSocket - 引入的 WebSocket 模塊&#xff0c…

Web網頁制作(靜態網頁):千年之戀

一、是用的PyCharm來寫的代碼 二、代碼中所用到的知識點&#xff08;無 js&#xff09; 這段HTML代碼展示了一個簡單的注冊頁面&#xff0c;包含了多個HTML元素和CSS樣式的應用。 這段HTML代碼展示了一個典型的注冊頁面&#xff0c;包含了常見的HTML元素和表單控件。通過CSS樣…