99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【飛凌OKA40i-C開發(fā)板試用體驗(yàn)】LVGL移植與測(cè)評(píng)

開發(fā)板試用精選 ? 來源:開發(fā)板試用 ? 作者:電子發(fā)燒友論壇 ? 2022-10-20 10:22 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文來源電子發(fā)燒友社區(qū),作者:zealsoft, 帖子地址:https://bbs.elecfans.com/jishu_2307845_1_1.html


感謝“電子發(fā)燒友網(wǎng)”和飛凌嵌入式公司提供了本次OKA40i-C開發(fā)板的評(píng)測(cè)機(jī)會(huì)。上次我們介紹了視頻監(jiān)控的測(cè)試,今天來介紹一下輕量級(jí)圖形界面庫LVGL的移植與測(cè)評(píng)。
一、LVGL源代碼下載
OKA40i開發(fā)板官方提供了Qt作為圖形界面開發(fā)工具。不過對(duì)于簡(jiǎn)單的用戶界面程序,Qt有點(diǎn)殺雞用牛刀的意思。今天介紹一下輕量級(jí)的圖形界面庫LVGL。LVGL的項(xiàng)目作者是來自匈牙利首都布達(dá)佩斯的 Gábor Kiss-Vámosi。它自帶著接近三十多種小組件,動(dòng)畫和操作非常流暢,同時(shí)配置要求很低,再加上開源和免費(fèi),使得它迅速流行起來,AliOSThings甚至把它作為默認(rèn)的圖形界面庫。
在LVGL的github網(wǎng)站上可以下載源代碼(https://github.com/lvgl/),在LVGL的官方倉庫中包括lv_port_linux_frame_buffer,它包括了在Linux下移植所需要的所有代碼。這個(gè)倉庫會(huì)鏈接到lvgl和lv_drivers兩個(gè)倉庫,所以一定要用gitclone的方式下載,不要采用打包成zip的方式。lv_demos這倉庫是不需要的,因?yàn)槔桃呀?jīng)都包括在lvgl倉庫里面了。如果github下載太慢,可以使用gitee的鏡像:https://gitee.com/mculover666/lv_port_linux_frame_buffer.git。
二、配置LVGL
1、修改makefile
需要從makefile中刪除-Wshift-negative-value這個(gè)編譯選項(xiàng),因?yàn)槲覀兊木幾g器不支持,同時(shí)加上-std=c99這個(gè)選項(xiàng),因?yàn)槌绦蛟趂or循環(huán)中使用了C99語法。下面是修改前后的編譯選項(xiàng)對(duì)比。
poYBAGMyYs-AXea7AAVJf1UByJg903.png
2、修改lvgl源代碼

由于我們的編譯器不支持PRIX32這個(gè)常量的定義,需要修改lvglsrcdrawswlv_draw_sw_letter.c文件,將其中一句log注釋掉:
pYYBAGMyYs-AWtxSAAikQT_qxw0840.png
也可以把這句改為:


  1. LV_LOG_WARN("lv_draw_letter: glyph dsc. not found for U+X%", letter);
復(fù)制代碼


3、修改內(nèi)存相關(guān)選項(xiàng)

LVGL默認(rèn)是使用基于TLSF 的內(nèi)存管理算法,不過它開的緩沖區(qū)對(duì)于我們的屏幕而言顯然太小了,需要修改lv_conf.h中的定義LV_MEM_CUSTOM 為 1,否則運(yùn)行時(shí)會(huì)崩潰。定義LV_MEM_CUSTOM 為 1表示采用標(biāo)準(zhǔn)C語言的分配內(nèi)存函數(shù)。
poYBAGMyYtKAQdHFAAn_K5oeEDg703.png
4、顯示設(shè)置

顯示輸出方面我們還是通過HDMI接口輸出到智能電視。LVGL支持通過直接訪問顯示緩沖區(qū)(framebuffer)和SDL等多種方式進(jìn)行輸出。我們此次通過framebuffer輸出,而且我們的輸出設(shè)備是dev/fb0,所以我們不需要修改任何配置,默認(rèn)配置(lv_drv_conf.h)如下:
pYYBAGMyYtOATgI0AAWsjZs8O2s022.png
4、增加鼠標(biāo)支持
輸入采用USB鼠標(biāo)。使用下面的命令可以看到當(dāng)前系統(tǒng)有哪些輸入設(shè)備:


  1. cat /proc/bus/input/devices
復(fù)制代碼


輸出結(jié)果如下:
I: Bus=0019 Vendor=0001 Product=0001 Version=0100


N: Name="sunxi-ths"
P: Phys=sunxiths/input0
S: Sysfs=/devices/virtual/input/input0
U: Uniq=
H: Handlers=event0
B: PROP=0
B: EV=9
B: ABS=100 0
I: Bus=0019 Vendor=0001 Product=0001 Version=0100
N: Name="sunxi-keyboard"
P: Phys=sunxikbd/input0
S: Sysfs=/devices/virtual/input/input1
U: Uniq=
H: Handlers=kbd event1
B: PROP=0
B: EV=3
B: KEY=40040 0 0 10000000
I: Bus=0019 Vendor=0001 Product=0001 Version=0100
N: Name="sunxi-keypad"
P: Phys=Keypad/input2
S: Sysfs=/devices/virtual/input/kp0
U: Uniq=
H: Handlers=sysrq kbd event2
B: PROP=0
B: EV=3
B: KEY=ffffffff fffffffe
I: Bus=0019 Vendor=0001 Product=0001 Version=0100
N: Name="axp22-powerkey"
P: Phys=m1kbd/input2
S: Sysfs=/devices/soc.0/1c2ac00.twi/i2c-0/0-0034/axp22-powerkey/input/input3
U: Uniq=
H: Handlers=kbd event3
B: PROP=0
B: EV=7
B: KEY=100000 0 0 0
B: REL=0
I: Bus=0003 Vendor=2717 Product=5016 Version=0110
N: Name="MOSART Semi. Mi Wireless Mouse Lite"
P: Phys=usb-sunxi-ohci-1/input0
S: Sysfs=/devices/soc.0/1c1c000.ohci2-controller/usb4/4-1/4-1:1.0/input/input4
U: Uniq=
H: Handlers=sysrq kbd event4
B: PROP=0
B: EV=120013
B: KEY=10000 7 ff9f207a c14057ff febeffdf ffefffff ffffffff fffffffe
B: MSC=10
B: LED=7
I: Bus=0003 Vendor=2717 Product=5016 Version=0110
N: Name="MOSART Semi. Mi Wireless Mouse Lite"
P: Phys=usb-sunxi-ohci-1/input1
S: Sysfs=/devices/soc.0/1c1c000.ohci2-controller/usb4/4-1/4-1:1.1/input/input5
U: Uniq=
H: Handlers=kbd mouse0 event5
B: PROP=0
B: EV=10001f
B: KEY=3007f 0 0 0 0 483ffff 17aff32d bf544446 0 0 1f0001 120f93 8b17c000 677bfa d941dfed 9ed680 4400 0 10000002
B: REL=1c3
B: ABS=1f01 0
B: MSC=10


由于我們?cè)陂_發(fā)板的兩個(gè)USB口都曾經(jīng)使用過USB鼠標(biāo),所以我們看到兩個(gè)USB鼠標(biāo)設(shè)備,分別對(duì)應(yīng)event4和event5。我們可以用evtest命令測(cè)試到底哪個(gè)設(shè)備是當(dāng)前使用的。OKA40i開發(fā)板上包括了evtest,可以進(jìn)行輸入設(shè)備的測(cè)試。經(jīng)過測(cè)試,我們發(fā)現(xiàn)event5對(duì)應(yīng)的設(shè)備是我們目前連接的鼠標(biāo)。


# evtest
No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0: sunxi-ths
/dev/input/event1: sunxi-keyboard
/dev/input/event2: sunxi-keypad
/dev/input/event3: axp22-powerkey
/dev/input/event4: MOSART Semi. Mi Wireless Mouse Lite
/dev/input/event5: MOSART Semi. Mi Wireless Mouse Lite
Select the device event number [0-5]: 5
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x2717 product 0x5016 version 0x110
Input device name: "MOSART Semi. Mi Wireless Mouse Lite"
Supported events:
Event type 0 (EV_SYN)
Event type 1 (EV_KEY)
Event code 1 (KEY_ESC)
Event code 28 (KEY_ENTER)
Event code 74 (KEY_KPMINUS)
……
Event code 592 (KEY_BRIGHTNESS_MIN)
Event code 593 (KEY_BRIGHTNESS_MAX)
Event type 2 (EV_REL)
Event code 0 (REL_X)
Event code 1 (REL_Y)
Event code 6 (REL_HWHEEL)
Event code 7 (REL_DIAL)
Event code 8 (REL_WHEEL)
Event type 3 (EV_ABS)
Event code 32 (ABS_VOLUME)
Value 0
Min 0
Max 896
Event code 40 (ABS_MISC)
Value 0
Min 0
Max 255
Event code 41 (?)
Value 0
Min 0
Max 255
Event code 42 (?)
Value 0
Min 0
Max 255
Event code 43 (?)
Value 0
Min 0
Max 255
Event code 44 (?)
Value 0
Min 0
Max 255
Event type 4 (EV_MSC)
Event code 4 (MSC_SCAN)
Key repeat handling:
Repeat type 20 (EV_REP)
Repeat code 0 (REP_DELAY)
Value 400
Repeat code 1 (REP_PERIOD)
Value 80
Properties:
Testing ... (interrupt to exit)
Event: time 1664272853.352702, type 2 (EV_REL), code 0 (REL_X), value 32
Event: time 1664272853.352702, type 2 (EV_REL), code 1 (REL_Y), value -19
Event: time 1664272853.352702, -------------- SYN_REPORT ------------
Event: time 1664272853.368699, type 2 (EV_REL), code 0 (REL_X), value 12
Event: time 1664272853.368699, type 2 (EV_REL), code 1 (REL_Y), value -14
Event: time 1664272853.368699, -------------- SYN_REPORT ------------
Event: time 1664272853.372717, type 2 (EV_REL), code 0 (REL_X), value 3
Event: time 1664272853.372717, type 2 (EV_REL), code 1 (REL_Y), value -8
Event: time 1664272853.372717, -------------- SYN_REPORT ------------
Event: time 1664272853.384737, type 2 (EV_REL), code 0 (REL_X), value -9
Event: time 1664272853.384737, type 2 (EV_REL), code 1 (REL_Y), value 1
Event: time 1664272853.384737, -------------- SYN_REPORT ------------
Event: time 1664272853.388724, type 2 (EV_REL), code 0 (REL_X), value -9
Event: time 1664272853.388724, type 2 (EV_REL), code 1 (REL_Y), value 7
Event: time 1664272853.388724, -------------- SYN_REPORT ------------
Event: time 1664272853.400736, type 2 (EV_REL), code 0 (REL_X), value -8
Event: time 1664272853.400736, type 2 (EV_REL), code 1 (REL_Y), value 14
Event: time 1664272853.400736, -------------- SYN_REPORT ------------



修改lv_drv_conf.h中EVDEV所對(duì)應(yīng)的設(shè)備名為:"/dev/input/event5"。這樣鼠標(biāo)就可以正常工作了。
poYBAGMyYtSAGiepAA9iXRJef_E337.png
5、修改main.c
在main.c根據(jù)自己使用的屏幕修改分辨率:


  1. disp_drv.hor_res = 1980; // 原來是800
    disp_drv.ver_res = 1080; // 原來是480
復(fù)制代碼


一、編譯與測(cè)試
1、Widgets示例

要使用LVGL的官方測(cè)試?yán)齏idgets,首先確保lv_conf.h中的定義的LV_USE_DEMO_WIDGETS,然后確認(rèn)在main.c中調(diào)用了lv_demo_widgets()。
pYYBAGMyYtWAYPXWAALN3veS97Q685.png
poYBAGMyYteAHQEbAAtksTqR_E8651.png
pYYBAGMyYtmATO6DAA4Jm-7u264542.png
2、Benchmark示例
LVGL的官方測(cè)試?yán)鼴enchmark可以用來測(cè)試顯示性能。
完整的測(cè)試結(jié)果如下:


LVGL v8.3.0Benchmark (in csv format)
Weighted FPS: 69
Opa. speed: 88%
Rectangle,105
Rectangle + opa,54
Rectangle rounded,96
Rectangle rounded + opa,53
Circle,60
Circle + opa,28
Border,134
Border + opa,132
Border rounded,139
Border rounded + opa,130
Circle border,55
Circle border + opa,50
Border top,144
Border top + opa,144
Border left,133
Border left + opa,138
Border top + left,140
Border top + left + opa,137
Border left + right,145
Border left + right + opa,133
Border top + bottom,143
Border top + bottom + opa,144
Shadow small,63
Shadow small + opa,59
Shadow small offset,64
Shadow small offset + opa,55
Shadow large,38
Shadow large + opa,36
Shadow large offset,36
Shadow large offset + opa,36
Image RGB,45
Image RGB + opa,29
Image ARGB,35
Image ARGB + opa,31
Image chorma keyed,41
Image chorma keyed + opa,31
Image indexed,25
Image indexed + opa,22
Image alpha only,27
Image alpha only + opa,23
Image RGB recolor,30
Image RGB recolor + opa,22
Image ARGB recolor,25
Image ARGB recolor + opa,22
Image chorma keyed recolor,26
Image chorma keyed recolor + opa,22
Image indexed recolor,20
Image indexed recolor + opa,18
Image RGB rotate,35
Image RGB rotate + opa,21
Image RGB rotate anti aliased,11
Image RGB rotate anti aliased + opa,10
Image ARGB rotate,33
Image ARGB rotate + opa,27
Image ARGB rotate anti aliased,10
Image ARGB rotate anti aliased + opa,9
Image RGB zoom,57
Image RGB zoom + opa,35
Image RGB zoom anti aliased,16
Image RGB zoom anti aliased + opa,14
Image ARGB zoom,47
Image ARGB zoom + opa,39
Image ARGB zoom anti aliased,13
Image ARGB zoom anti aliased + opa,12
Text small,157
Text small + opa,154
Text medium,151
Text medium + opa,155
Text large,158
Text large + opa,154
Text small compressed,0
Text small compressed + opa,0
Text medium compressed,0
Text medium compressed + opa,0
Text large compressed,0
Text large compressed + opa,0
Line,75
Line + opa,76
Arc think,53
Arc think + opa,53
Arc thick,52
Arc thick + opa,50
Substr. rectangle,6
Substr. rectangle + opa,0
Substr. border,0
Substr. border + opa,0
Substr. shadow,0
Substr. shadow + opa,0
Substr. image,0
Substr. image + opa,0
Substr. line,2
Substr. line + opa,1
Substr. arc,49
Substr. arc + opa,50
Substr. text,4
Substr. text + opa,4

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 飛凌
    +關(guān)注

    關(guān)注

    0

    文章

    135

    瀏覽量

    16478
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    T527N開發(fā)板試用T527N開發(fā)板開箱評(píng)測(cè)

    很高興收到嵌入式申請(qǐng)的T527N開發(fā)板,板子的正反面如下圖所示: 可以看到,板子上面的資源非常的豐富,有CAN,485, SIM卡槽
    發(fā)表于 07-04 11:43

    T527N開發(fā)板試用】開箱與開發(fā)板介紹視頻

    嵌入式OK527N-C開發(fā)板開箱介紹】 https://www.bilibili.com/video/BV1sfKSzmEtU/?share_source=copy_web&
    發(fā)表于 06-26 09:43

    5分鐘學(xué)會(huì)網(wǎng)絡(luò)服務(wù)搭建!i.MX9352開發(fā)板 + Linux 6.1實(shí)戰(zhàn)示例

    本文就將以嵌入式OK-MX9352-C開發(fā)板(搭載了在工業(yè)物聯(lián)網(wǎng)領(lǐng)域廣泛應(yīng)用的NXP i.MX9352處理器)為平臺(tái),介紹如何在Linu
    的頭像 發(fā)表于 06-13 16:42 ?688次閱讀
    5分鐘學(xué)會(huì)網(wǎng)絡(luò)服務(wù)搭建!<b class='flag-5'>飛</b><b class='flag-5'>凌</b><b class='flag-5'>i</b>.MX9352<b class='flag-5'>開發(fā)板</b> + Linux 6.1實(shí)戰(zhàn)示例

    基于RK處理器,創(chuàng)龍TL3562-MiniEVM開發(fā)板試用體驗(yàn)

    數(shù)量: 10塊 ? 更多熱點(diǎn)文章閱讀 基于平頭哥TH1520芯片,潤(rùn)開鴻HH-SCDAYU800A開發(fā)板免費(fèi)試用 RISC-V開發(fā)板深度評(píng)測(cè)!頂級(jí)開發(fā)板免費(fèi)
    的頭像 發(fā)表于 06-05 16:31 ?453次閱讀
    基于RK處理器,創(chuàng)龍TL3562-MiniEVM<b class='flag-5'>開發(fā)板</b><b class='flag-5'>試用</b>體驗(yàn)

    有獎(jiǎng)丨米爾 NXP i.MX91開發(fā)板免費(fèi)試用來啦

    米爾與NXP合作發(fā)布的新品基于NXPi.MX91應(yīng)用處理器的MYD-LMX91開發(fā)板免費(fèi)試用名額來啦~~米爾提供了3套價(jià)值588元的MYD-LMX91開發(fā)板發(fā)起試用活動(dòng)您不僅可以免費(fèi)體
    的頭像 發(fā)表于 06-05 08:02 ?658次閱讀
    有獎(jiǎng)丨米爾 NXP <b class='flag-5'>i</b>.MX91<b class='flag-5'>開發(fā)板</b>免費(fèi)<b class='flag-5'>試用</b>來啦

    5分鐘學(xué)會(huì)網(wǎng)絡(luò)服務(wù)搭建,i.MX9352 + Linux 6.1實(shí)戰(zhàn)示例

    本文將以嵌入式OK-MX9352-C開發(fā)板(搭載了在工業(yè)物聯(lián)網(wǎng)領(lǐng)域廣泛應(yīng)用的NXP i.MX9352處理器)為平臺(tái),介紹如何在Linux
    的頭像 發(fā)表于 05-30 11:08 ?1706次閱讀
    5分鐘學(xué)會(huì)網(wǎng)絡(luò)服務(wù)搭建,<b class='flag-5'>飛</b><b class='flag-5'>凌</b><b class='flag-5'>i</b>.MX9352 + Linux 6.1實(shí)戰(zhàn)示例

    【評(píng)測(cè)試用】合眾HZ-T536開發(fā)板免費(fèi)試用體驗(yàn)

    【評(píng)測(cè)試用】合眾HZ-T536開發(fā)板免費(fèi)試用體驗(yàn)
    的頭像 發(fā)表于 05-27 08:05 ?232次閱讀
    【評(píng)測(cè)<b class='flag-5'>試用</b>】合眾HZ-T536<b class='flag-5'>開發(fā)板</b>免費(fèi)<b class='flag-5'>試用</b>體驗(yàn)

    從DeepSeek到Qwen,AI大模型的移植與交互實(shí)戰(zhàn)指南-嵌入式

    在不久前發(fā)布的《技術(shù)實(shí)戰(zhàn)|OK3588-C開發(fā)板上部署DeepSeek-R1大模型的完整指南》一文中,小編為大家介紹了DeepSeek-R1在嵌入式OK3588-
    的頭像 發(fā)表于 03-28 08:06 ?1648次閱讀
    從DeepSeek到Qwen,AI大模型的<b class='flag-5'>移植</b>與交互實(shí)戰(zhàn)指南-<b class='flag-5'>飛</b><b class='flag-5'>凌</b>嵌入式

    RK3506開發(fā)板2秒啟動(dòng)LVGL顯示方案

    占用很少資源的前提下,實(shí)現(xiàn)絲滑的動(dòng)畫效果和平滑滾動(dòng)的高級(jí)圖形,具有輕量化、跨平臺(tái)可用性、易于移植、操作友好以及免費(fèi)使用等諸多優(yōu)勢(shì)。 OK3506J-S開發(fā)板移植了最新9.2版本的LVGL
    的頭像 發(fā)表于 02-25 16:53 ?595次閱讀
    RK3506<b class='flag-5'>開發(fā)板</b>2秒啟動(dòng)<b class='flag-5'>LVGL</b>顯示方案

    3.1s啟動(dòng)!嵌入式i.MX93開發(fā)板部署LVGL,打造更高效的GUI

    近期,嵌入式為基于NXP i.MX93系列處理器打造的OK-MX9352-C開發(fā)板成功移植
    的頭像 發(fā)表于 01-16 11:52 ?773次閱讀
    3.1s啟動(dòng)!<b class='flag-5'>飛</b><b class='flag-5'>凌</b>嵌入式<b class='flag-5'>i</b>.MX93<b class='flag-5'>開發(fā)板</b>部署<b class='flag-5'>LVGL</b>,打造更高效的GUI

    2秒啟動(dòng)!嵌入式RK3506開發(fā)板LVGL顯示方案,讓界面炫起來

    近期,嵌入式為OK3506J-S開發(fā)板移植了最新9.2版本的LVGL,支持多種屏幕構(gòu)件以及鼠標(biāo)、鍵盤、觸摸等多種輸入方式, 能夠帶來更加
    的頭像 發(fā)表于 01-10 10:52 ?1044次閱讀
    2秒啟動(dòng)!<b class='flag-5'>飛</b><b class='flag-5'>凌</b>嵌入式RK3506<b class='flag-5'>開發(fā)板</b><b class='flag-5'>LVGL</b>顯示方案,讓界面炫起來

    嵌入式OK3588J-C開發(fā)板體驗(yàn)】OK3588J-C開發(fā)板開箱評(píng)測(cè)

    很高興收到嵌入式提供的OK3588J-C開發(fā)板,這是瑞芯微最新的8K旗艦8核SOC,非常適合用來做機(jī)器視覺,AI,語音識(shí)別,圖像處理。 下面來看看OK3588J-
    發(fā)表于 12-04 15:23

    【RA8D1試用活動(dòng)】RA8D1B-CPKCOR開發(fā)板移植linux

    【RA8D1試用活動(dòng)】RA8D1B-CPKCOR開發(fā)板移植linux
    的頭像 發(fā)表于 11-16 01:02 ?940次閱讀
    【RA8D1<b class='flag-5'>試用</b>活動(dòng)】RA8D1B-CPKCOR<b class='flag-5'>開發(fā)板</b><b class='flag-5'>移植</b>linux

    嵌入式OK3576-C開發(fā)板體驗(yàn)】開箱報(bào)告

    簡(jiǎn)介 很榮幸參與到本次由嵌入式和電子發(fā)燒友提供的OK3576-C開發(fā)板試用機(jī)會(huì)。
    發(fā)表于 08-22 02:13