<ruby id="9ue20"></ruby>

  1. 
    

      国产午夜福利免费入口,国产日韩综合av在线,精品久久人人妻人人做精品,蜜臀av一区二区三区精品,亚洲欧美中文日韩在线v日本,人妻av中文字幕无码专区 ,亚洲精品国产av一区二区,久久精品国产清自在天天线
      網(wǎng)易首頁(yè) > 網(wǎng)易號(hào) > 正文 申請(qǐng)入駐

      手把手教你用位圖映射方式優(yōu)化灰度液晶控制器驅(qū)動(dòng)

      0
      分享至


      單色液晶控制器通常的寫顯示RAM方式是一次寫8個(gè)像素,容易實(shí)現(xiàn)MCU主存到控制器的位圖映射。但是支持灰度的液晶控制器不一定有這樣的操作方式,于是只用黑白二色的顯示時(shí),也不得不每個(gè)像素都要寫灰階編碼到控制器。但是在MCU主存中每個(gè)像素用8-bit甚至16-bit來表示,開銷就大多了,很多時(shí)候是不必要的。如果用二值的位圖存放顯示內(nèi)容,在顯示驅(qū)動(dòng)軟件中轉(zhuǎn)換,就可能實(shí)現(xiàn)和單色液晶在圖形庫(kù)上的兼容性。


      例如ST7529液晶控制器的顯存數(shù)據(jù)是5-bit灰度,采用并行接口(8080模式)驅(qū)動(dòng)時(shí),有16-bit表示3個(gè)像素的辦法和3個(gè)8-bit表示3個(gè)像素的辦法。這個(gè)控制器是給CSTN液晶設(shè)計(jì)的,所以總是要RGB 3個(gè)像素一起寫,作為FSTN的驅(qū)動(dòng)顯得有些別扭——列方向的坐標(biāo)只能以3像素為單位。如果能忍受這一點(diǎn),用8-bit數(shù)據(jù)模式,每次寫顯存操作就是更新一個(gè)像素,按列優(yōu)先模式能實(shí)現(xiàn)逐條掃描線的數(shù)據(jù)寫入。


      現(xiàn)在考慮類似ST7529這種控制器的位圖映射軟件驅(qū)動(dòng)。在MCU的SRAM中開辟一塊連續(xù)空間作為顯示區(qū)域內(nèi)容的位圖存儲(chǔ)(只顯示兩種顏色,每個(gè)像素1 bit),向控制器寫像素?cái)?shù)據(jù)時(shí)每次根據(jù)位圖中的一個(gè)bit,決定寫控制器的數(shù)據(jù)是兩種顏色代碼中哪一個(gè)。如果控制器是用MCU的內(nèi)存控制器(如STM32的FMC)連接的,寫操作就對(duì)應(yīng)到一條STR指令;如果不能用FMC,就要用一組GPIO輸出并行數(shù)據(jù),另一單獨(dú)GPIO產(chǎn)生寫脈沖。

      基本的顯示代碼:


      在寫每個(gè)像素?cái)?shù)據(jù)的時(shí)候,要進(jìn)行位運(yùn)算測(cè)試內(nèi)存中數(shù)據(jù)的某位是1還是0. 按照低地址數(shù)據(jù)在前,每個(gè)字中LSB在前的順序訪問整個(gè)位圖。取數(shù)據(jù)的時(shí)候一次取32 bit的效率要高于8 bit. 內(nèi)層循環(huán)就是逐位處理。在Cortex-m4上,以上代碼的實(shí)現(xiàn)效率約為12.2 時(shí)鐘周期每像素。

      這樣的代碼足夠簡(jiǎn)潔了。用位運(yùn)算是因?yàn)椴荒苤苯訉ぶ稴RAM的某一位…… 但是真的不能嗎?Cortex-m3/m4有bit-banding的功能,雖然我以前沒覺得有什么用,SRAM是處于bit-band區(qū)域中的。也就是,在SRAM中存儲(chǔ)了位圖,就有某一段地址是每個(gè)32-bit映射到位圖中一個(gè)bit的。按連續(xù)地址訪問就可以遍歷位圖中每個(gè)像素。于是顯示代碼就只需要一個(gè)循環(huán)了:


      針對(duì)ST7529,如果輸出是全黑和全白兩種顏色,數(shù)據(jù)接口上有效位是全0或者全1,還可以把條件判斷也省去,修改成這樣:


      代碼中直接輸出數(shù)據(jù) -p[n] , 因?yàn)閜[n]為1則寫數(shù)據(jù)就成了 0xFF,是滿足需要的。這樣又能少用指令了。實(shí)際測(cè)試的執(zhí)行時(shí)間減少到 8~9 時(shí)鐘周期每像素,有一個(gè)浮動(dòng)可能是CPU流水線的關(guān)系??匆幌戮幾g的結(jié)果:


      標(biāo)出的部分就是循環(huán)主體,一共7條指令,顯得沒有任何多余操作,實(shí)際執(zhí)行時(shí)間變化可能是總線的緣故。

      到這里,好象已經(jīng)優(yōu)化到頭了,不繞彎。

      回頭看,從原理上呢,根據(jù)每個(gè)像素判斷一下要寫什么數(shù)據(jù)是沒錯(cuò)的,但是如果寫的數(shù)據(jù)和上次一樣其實(shí)可以不用更新接口上的并行數(shù)據(jù),所以可以少一步操作?然而要增加這個(gè)條件判斷其實(shí)是又繞彎了,因?yàn)闇y(cè)試、保存前次結(jié)果和條件分支會(huì)消耗更多的周期。實(shí)際測(cè)試也是平均執(zhí)行時(shí)間到了 10.4 時(shí)鐘周期每像素。 程序如下:


      雖然上面這個(gè)嘗試改進(jìn)失敗,減少不必要的操作的思路是有價(jià)值的。實(shí)際的顯示驅(qū)動(dòng)就是寫連續(xù)一串(個(gè)數(shù)不確定)的前景色像素,再寫連續(xù)一串背景色像素,交替進(jìn)行的。假如SRAM存儲(chǔ)的不是位圖,而是按順序排列的兩種顏色各自連續(xù)的像素個(gè)數(shù)的序列,則顯示代碼有可能執(zhí)行更快。

      但是現(xiàn)在SRAM存儲(chǔ)的是位圖,只能在此前提下討論。那么,從位圖掃描的角度,統(tǒng)計(jì)連續(xù)的1個(gè)的個(gè)數(shù),再統(tǒng)計(jì)后面連續(xù)的0的個(gè)數(shù),再統(tǒng)計(jì)后面連續(xù)1的個(gè)數(shù)……如此下去也可以,只不過效率是個(gè)問題。不妨對(duì)比以下:


      這段程序?qū)?1"像素和"0"像素分組輸出,包含了測(cè)試統(tǒng)計(jì)和連續(xù)寫脈沖的過程,屬于是繞了彎路的做法,最后的執(zhí)行時(shí)間大約是 15.5 時(shí)鐘周期每像素. 比最基本的方法還要慢,也是可想而知的。

      如果不用bit-banding呢,像最基本的方法那樣每次先取一個(gè)字,那么程序還會(huì)可預(yù)期地多耗費(fèi)點(diǎn)時(shí)間:


      上面這段程序?qū)嶋H測(cè)試大約平均 20.4 時(shí)鐘周期每像素, 是明顯慢多了。

      但之所以要這么改寫,是我想嘗試一下能否快速地找出連續(xù)的1或0的個(gè)數(shù)——Cortex-m3/m4有CLZ (Count Leading Zeros)指令。在一個(gè)32-bit字之內(nèi),用這條指令直接得到從最高位開始往下有多少個(gè)連續(xù)的0. 它能省去一個(gè)循環(huán)的位測(cè)試。

      還是要嘗試的,下面的代碼看起來過于復(fù)雜了??赡苓€有可優(yōu)化的地方。


      調(diào)試查錯(cuò)過后,上面這段代碼在我用的測(cè)試位圖(文本字符為主)上達(dá)到了平均約 8 時(shí)鐘周期每像素的效率,追上了前面用bit-band的最快的代碼。不枉這份努力啊。這種方式,執(zhí)行時(shí)間與顯示內(nèi)容是關(guān)聯(lián)的,一般圖形界面的話像素顏色連續(xù)出現(xiàn)的時(shí)候多,所以應(yīng)該是適用的。

      到了這個(gè)地步,覺得還有更快的可能嗎?其實(shí)使用CLZ指令得以提升效率的原因是減少了循環(huán)次數(shù),上面這個(gè)程序仍然有循環(huán):除了不可避免的從SRAM中取數(shù)據(jù)之外,連續(xù)產(chǎn)生多少次寫脈沖是用循環(huán)來實(shí)現(xiàn)。而后者還有優(yōu)化的可能:

      1. 不用GPIO翻轉(zhuǎn)的方式,用硬件自動(dòng)產(chǎn)生N個(gè)脈沖。STM32的TIM1/TIM8等定時(shí)器的PWM能做到,或者用一個(gè)定時(shí)器作為另一個(gè)輸出PWM的定時(shí)器的門控。我暫時(shí)還沒有實(shí)驗(yàn),好象用的板子GPIO連接缺少條件。

      2. 如果用了FMC接口的話可以用借用這個(gè)思路,用DMA內(nèi)存到內(nèi)存的方式快速寫。

      3. 循環(huán)展開,這要費(fèi)一些代碼空間了。在上面的程序中,連續(xù)的寫脈沖一般不會(huì)太長(zhǎng)。比如說,在32個(gè)以內(nèi)就完全展開循環(huán):


      用這個(gè) wr_pulses() 函數(shù)代替前一段代碼中的產(chǎn)生WR脈沖的循環(huán),實(shí)現(xiàn)部分的循環(huán)展開,之后…… 執(zhí)行速度提升到了 6 時(shí)鐘周期每像素的水平。

      當(dāng)然,要求刷屏刷得快簡(jiǎn)單地把時(shí)鐘頻率提上去就是了,是否要糾結(jié)這種優(yōu)化是MCU玩家自己決定,本文只是假期時(shí)候的一點(diǎn)研究分享。關(guān)鍵點(diǎn):一是bit-band的使用,二是CLZ指令的使用。這兩個(gè)特性都得要m3/m4起才有,m0是沒有的(現(xiàn)在國(guó)產(chǎn)m4也很便宜了嘛)。

      歡迎將我們?cè)O(shè)為“星標(biāo)”,這樣才能第一時(shí)間收到推送消息。

      歡迎關(guān)注EEWorld旗下訂閱號(hào):“汽車開發(fā)圈”

      掃碼添加小助手回復(fù)“進(jìn)群”

      和電子工程師們面對(duì)面交流經(jīng)驗(yàn)

      特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。

      Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

      相關(guān)推薦
      熱點(diǎn)推薦
      比亞迪、特斯拉、小鵬、理想、蔚來、廣汽埃安,集中辟謠

      比亞迪、特斯拉、小鵬、理想、蔚來、廣汽埃安,集中辟謠

      觀察者網(wǎng)
      2026-05-09 15:39:10
      入朝前夕,毛主席聽取林帥建議:換掉13兵團(tuán)主將!兩年后才知高明

      入朝前夕,毛主席聽取林帥建議:換掉13兵團(tuán)主將!兩年后才知高明

      搜史君
      2026-05-08 13:00:16
      四川大學(xué)華西醫(yī)院多學(xué)科接力,成功為八旬老人拆除10厘米“胸腔炸彈”

      四川大學(xué)華西醫(yī)院多學(xué)科接力,成功為八旬老人拆除10厘米“胸腔炸彈”

      封面新聞
      2026-05-07 09:12:13
      賴清德跪拜日本殖民者八田與一,妄稱要對(duì)日本“飲水思源”,網(wǎng)紅“館長(zhǎng)”:不肖子孫罪逆天

      賴清德跪拜日本殖民者八田與一,妄稱要對(duì)日本“飲水思源”,網(wǎng)紅“館長(zhǎng)”:不肖子孫罪逆天

      海峽網(wǎng)
      2026-05-09 10:57:38
      臺(tái)軍購(gòu)案火速通過,鄭麗文賴清德24小時(shí)內(nèi)表態(tài)如演雙簧

      臺(tái)軍購(gòu)案火速通過,鄭麗文賴清德24小時(shí)內(nèi)表態(tài)如演雙簧

      阿鼵評(píng)論哥
      2026-05-09 14:10:23
      國(guó)際足聯(lián)徹底懵了!三次降價(jià)卻被中國(guó)一句話堵得啞口無言顏面盡失

      國(guó)際足聯(lián)徹底懵了!三次降價(jià)卻被中國(guó)一句話堵得啞口無言顏面盡失

      荊楚寰宇文樞
      2026-05-08 23:17:53
      表決結(jié)果59比0,柯建銘選擇力挺藍(lán)白,趙少康喊無辜,指向鄭麗文

      表決結(jié)果59比0,柯建銘選擇力挺藍(lán)白,趙少康喊無辜,指向鄭麗文

      奇思妙想生活家
      2026-05-09 12:18:29
      “中國(guó)孕婦泰國(guó)墜崖案”當(dāng)事人王暖暖被送醫(yī)搶救,自稱完不成任務(wù)不許下直播

      “中國(guó)孕婦泰國(guó)墜崖案”當(dāng)事人王暖暖被送醫(yī)搶救,自稱完不成任務(wù)不許下直播

      現(xiàn)代快報(bào)
      2026-05-09 12:58:15
      先訪華再訪日?美方故技重施,中方斬釘截鐵,特朗普能否來華?

      先訪華再訪日?美方故技重施,中方斬釘截鐵,特朗普能否來華?

      基斯默默
      2026-05-08 11:19:06
      800G過時(shí)了?中天科技為何敢逆勢(shì)重注,直追中際旭創(chuàng)!

      800G過時(shí)了?中天科技為何敢逆勢(shì)重注,直追中際旭創(chuàng)!

      Thurman在昆明
      2026-05-09 15:30:21
      中吉烏鐵路突生變數(shù)!俄想空手套白狼?烏國(guó)不干了,總理火速赴華

      中吉烏鐵路突生變數(shù)!俄想空手套白狼?烏國(guó)不干了,總理火速赴華

      軒逸阿II
      2026-05-08 18:17:06
      嫁入豪門的女同學(xué)突然加微信曬不差錢!網(wǎng)友預(yù)測(cè):下一步就是借錢

      嫁入豪門的女同學(xué)突然加微信曬不差錢!網(wǎng)友預(yù)測(cè):下一步就是借錢

      另子維愛讀史
      2026-05-09 10:01:47
      自己錄音不讓游客錄,上海迪士尼被指“雙標(biāo)”!客服:介意錄音可以不來電…

      自己錄音不讓游客錄,上海迪士尼被指“雙標(biāo)”!客服:介意錄音可以不來電…

      北京商報(bào)
      2026-05-08 16:09:22
      300308,股價(jià)大漲,市值一度破萬億!全球803名員工,獲“獎(jiǎng)”14億元股票!

      300308,股價(jià)大漲,市值一度破萬億!全球803名員工,獲“獎(jiǎng)”14億元股票!

      證券時(shí)報(bào)e公司
      2026-05-09 14:36:34
      消化科醫(yī)生呼吁:停止食用1雞蛋,或會(huì)加重胃病,請(qǐng)撤下餐桌

      消化科醫(yī)生呼吁:停止食用1雞蛋,或會(huì)加重胃病,請(qǐng)撤下餐桌

      荷蘭豆愛健康
      2026-05-09 14:23:11
      侯友宜正式向大陸攤牌:將統(tǒng)一模式強(qiáng)加于臺(tái)灣人,主流民意不接受

      侯友宜正式向大陸攤牌:將統(tǒng)一模式強(qiáng)加于臺(tái)灣人,主流民意不接受

      杰絲聊古今
      2026-05-06 14:10:21
      特斯拉日本社長(zhǎng)熱愛健身,報(bào)名參加健美比賽!

      特斯拉日本社長(zhǎng)熱愛健身,報(bào)名參加健美比賽!

      下水道男孩
      2026-05-08 22:06:17
      “起初偷一兩件,后來用假貨代替,最后直接懶得補(bǔ)”,深圳一珠寶公司直播中控多次偷拿黃金樣品涉案金額超100萬,被判有期徒刑三年十個(gè)月

      “起初偷一兩件,后來用假貨代替,最后直接懶得補(bǔ)”,深圳一珠寶公司直播中控多次偷拿黃金樣品涉案金額超100萬,被判有期徒刑三年十個(gè)月

      瀟湘晨報(bào)
      2026-05-09 13:21:10
      魔幻現(xiàn)實(shí)!中國(guó)船東的船幫伊朗運(yùn)油,轉(zhuǎn)頭就被伊朗扣了

      魔幻現(xiàn)實(shí)!中國(guó)船東的船幫伊朗運(yùn)油,轉(zhuǎn)頭就被伊朗扣了

      老馬拉車莫少裝
      2026-05-09 13:02:50
      德媒:罕見苔蘚癱瘓北歐最大軍用機(jī)場(chǎng)

      德媒:罕見苔蘚癱瘓北歐最大軍用機(jī)場(chǎng)

      參考消息
      2026-05-08 15:25:06
      2026-05-09 16:28:49
      EEWorld電子工程世界 incentive-icons
      EEWorld電子工程世界
      即時(shí)參與討論電子工程世界最火話題,搶先知曉電子工程業(yè)界資訊。
      288文章數(shù) 22關(guān)注度
      往期回顧 全部

      科技要聞

      美國(guó)政府強(qiáng)力下場(chǎng) 蘋果英特爾達(dá)成代工協(xié)議

      頭條要聞

      香港富豪孫女被綁架 綁匪拿到2800萬后逃跑8人花11萬

      頭條要聞

      香港富豪孫女被綁架 綁匪拿到2800萬后逃跑8人花11萬

      體育要聞

      成立128年后,這支升班馬首奪頂級(jí)聯(lián)賽冠軍

      娛樂要聞

      50歲趙薇臉頰凹陷滄桑得認(rèn)不出!

      財(cái)經(jīng)要聞

      Meta瘋狂擁抱人工智能:?jiǎn)T工苦不堪言

      汽車要聞

      軸距加長(zhǎng)/智駕拉滿 阿維塔07L定位大五座SUV

      態(tài)度原創(chuàng)

      旅游
      親子
      藝術(shù)
      家居
      公開課

      旅游要聞

      滿目青翠入畫來 棗莊楊峪初夏景致美不勝收

      親子要聞

      什么牌子的奶粉好?君樂寶奶粉以靠譜品質(zhì)回應(yīng)寶媽牽掛

      藝術(shù)要聞

      齊白石 紫藤蜜蜂

      家居要聞

      菁英人居 全能豪宅

      公開課

      李玫瑾:為什么性格比能力更重要?

      無障礙瀏覽 進(jìn)入關(guān)懷版 主站蜘蛛池模板: 国产女孩精品在线播放| 国产AV午夜精品一区二区三区| 国产成人亚洲综合图区| 樱花影院电视剧免费| 最大AV网站| 伊人狠狠丁香婷婷综合色| 国产精品一区二区 尿失禁| 亚洲18禁一区二区三区| 日韩av区| 亚洲精品久久久久玩吗| 亚欧成人一级片在线播放| 狠狠色噜噜狠狠狠7777奇米| 偷拍精品一区二区三区| 在线 欧美 中文 亚洲 精品| 亚洲高清国产自产拍av| 熟女丝袜av| 久章草这里只有精品| 日韩精品久久久久成人影院| 四虎永久免费精品国产| 男女性高爱潮免费网站| 亚洲中文字幕成人综合网| 亚洲最大日韩精品一区| 亚洲一区二区三区在线播放| 亚洲AV日韩AV永久无码网站| 日韩欧美一区二区三区免费观看| www.youjizz.com国产| 国产AV影片麻豆精品传媒| 99久久国产一区二区三区| 超碰10000| 亚洲熟妇无码一区二区三区导航| 蝴蝶伊人久久中文娱乐网| yw.193.c㎝国产在线观看| 久久午夜无码免费| av美女网站| 无码人妻一区二区三区线| www免费视频com| 亚洲3p| 国产亚洲av夜间福利香蕉149| 我国产码在线观看av哈哈哈网站| 国产亚洲精品97在线观看| 久热伊人精品国产中文|