五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

微雪RP2040微控制器開發(fā)板帶1.28 LCD實(shí)現(xiàn)LVGL高效率繪圖測(cè)試

2023-04-11 12:40 作者:SnowNova  | 我要投稿

先看最終效果

看著很簡(jiǎn)單吧?

但就這么個(gè)簡(jiǎn)單的演示,我踩了無數(shù)的坑。

本來想仔細(xì)說說的,

但是作為一個(gè)有100多年開發(fā)經(jīng)驗(yàn)的程序員,必然是選擇偷懶。

只說幾個(gè)重點(diǎn)的吧:

這個(gè)演示用的是lvgl負(fù)責(zé)繪圖,只需要寫個(gè)“簡(jiǎn)單”的回調(diào)就能支持新設(shè)備,就是這段my_disp_flush。

my_disp_flush代碼

然后,這段簡(jiǎn)單的代碼花了我好幾周時(shí)間,因?yàn)閯偨佑|設(shè)備開發(fā),當(dāng)然是從例程開始。

例程能有什么問題呢?最大的問題就是性能!

原始例程里的代碼我試著直接用,結(jié)果發(fā)現(xiàn)不要說每秒30幀,連10幀都無法保證。

仔細(xì)看了各種文檔資料,閱讀了幾遍源代碼,發(fā)現(xiàn)一些“小”問題。

看這段清屏程序,先不說這種用屏幕等大數(shù)組做清屏效率高低,就這句,交換高低字節(jié)?

字節(jié)序調(diào)換

這看著就有點(diǎn)不正常,研究了屏幕驅(qū)動(dòng)文檔發(fā)現(xiàn),它本該用16位接口傳輸像素?cái)?shù)據(jù),但是它用的居然是8位傳輸代碼。

小數(shù)據(jù)量無所謂,清屏這種像素顏色相同,可以提前反轉(zhuǎn)原始顏色的也無所謂,問題是真實(shí)環(huán)境下每像素反轉(zhuǎn)字節(jié)序?

那就效率太低了,這是在處理器本不富裕的情況下雪上加霜啊。

后來閱讀了代碼和顯示驅(qū)動(dòng)的開發(fā)手冊(cè),發(fā)現(xiàn)這個(gè)問題來自于8位傳輸,顯示驅(qū)動(dòng)的開發(fā)手冊(cè)里明確說明應(yīng)該用16位傳輸?shù)模晕易⑨屃俗止?jié)反轉(zhuǎn),換用16位傳輸(源代碼沒帶,我自己寫的)測(cè)試,果然一切正常。

16位傳輸

然后是演示代碼采用 “繪制” “傳輸” 循環(huán),而傳輸速度是每秒40兆位,也就是5兆字節(jié)。

而在后續(xù)測(cè)試中,讀取出的實(shí)際速度還要低一點(diǎn)點(diǎn)。

每屏幕的數(shù)據(jù)是112.5K字節(jié),也就是說在不繪圖的情況下,傳輸滿屏數(shù)據(jù)本身最高也就40多幀。

所以用DMA傳輸是必須的,在DMA傳輸像素?cái)?shù)據(jù)的時(shí)候,繪圖可以繼續(xù)。

初始化LVGL時(shí)初始化DMA

我還嘗試了利用雙核來分開處理繪圖和傳輸,但是想了想沒什么必要,可以把另一個(gè)核心留著做點(diǎn)別的事。

至于其他代碼,都是我現(xiàn)在做實(shí)驗(yàn)的,可以無視

另外,作為一個(gè)有100多年開發(fā)經(jīng)驗(yàn)的程序員,注釋就不要想了,必然是沒有(主要是懶)

有問題可以留言,但我未必回答的了,因?yàn)槲沂浅鯇W(xué) 附上代碼,請(qǐng)自取,純純的C代碼,在樹莓派上用vscode編寫調(diào)試, 鏈接: https://pan.baidu.com/s/1BMvz-oaHj_JPW32D0CeOzg?pwd=rffx 提取碼: rffx

微雪RP2040微控制器開發(fā)板帶1.28 LCD實(shí)現(xiàn)LVGL高效率繪圖測(cè)試的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
洛川县| 杭州市| 六安市| 陇西县| 郁南县| 财经| 香港 | 中山市| 个旧市| 仁怀市| 峨边| 晋宁县| 马山县| 新宾| 柳州市| 江西省| 琼海市| 建湖县| 合江县| 含山县| 衡山县| 长海县| 金昌市| 上高县| 鹤岗市| 法库县| 古蔺县| 大连市| 江阴市| 大名县| 乐昌市| 和田县| 睢宁县| 五常市| 丰原市| 闽侯县| 太仓市| 侯马市| 德清县| 五峰| 抚远县|