国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

ARM TrustZone技術(shù)解析:構(gòu)建嵌入式系統(tǒng)的安全擴(kuò)展基石

這篇具有很好參考價值的文章主要介紹了ARM TrustZone技術(shù)解析:構(gòu)建嵌入式系統(tǒng)的安全擴(kuò)展基石。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

ARM TrustZone技術(shù)解析:構(gòu)建嵌入式系統(tǒng)的安全擴(kuò)展基石,科技探索,Trustzone,TEE,armv9,armv8,ARM,嵌入式,安全

??個人主頁: Aileen_0v0
??熱門專欄: 華為鴻蒙系統(tǒng)學(xué)習(xí)|計算機(jī)網(wǎng)絡(luò)|數(shù)據(jù)結(jié)構(gòu)與算法|MySQL|
???個人格言:“沒有羅馬,那就自己創(chuàng)造羅馬~”

本文轉(zhuǎn)自 周賀賀,baron,代碼改變世界ctw,Arm精選, armv8/armv9,trustzone/tee,secureboot,資深安全架構(gòu)專家,11年手機(jī)安全/SOC底層安全開發(fā)經(jīng)驗。擅長trustzone/tee安全產(chǎn)品的設(shè)計和開發(fā)。文章有感而發(fā)。

說明: 在默認(rèn)情況下,本文講述的都是ARMV8-aarch64架構(gòu),linux kernel 64位

ARM TrustZone技術(shù)解析:構(gòu)建嵌入式系統(tǒng)的安全擴(kuò)展基石,科技探索,Trustzone,TEE,armv9,armv8,ARM,嵌入式,安全

1、背景:

隨著時代的發(fā)展、科技的進(jìn)步,安全需求的趨勢也越來越明顯,ARM也一直在調(diào)整和更新其新架構(gòu),很多都是和安全相關(guān)的。 如下列出了一些和安全相關(guān)的架構(gòu) ARM TrustZone技術(shù)解析:構(gòu)建嵌入式系統(tǒng)的安全擴(kuò)展基石,科技探索,Trustzone,TEE,armv9,armv8,ARM,嵌入式,安全

Trustzone做為ARM安全架構(gòu)的一部分,從 2008 年 12月 ARM 公司第一次 release Trustzone 技術(shù)白皮書。() 2013 年 Apple 推出了第一款搭載指紋解鎖的 iPhone:iPhone 5s,用以保證指紋信息安全的 Secure Enclave 技術(shù)據(jù)分析深度定制了 ARM trustzone 架構(gòu),印象中這大概是 Trustzone 技術(shù)第一次走進(jìn)大眾視線。到如今 Trustzone 技術(shù)已經(jīng)成為移動安全領(lǐng)域的重要基礎(chǔ)技術(shù),你也許不了解它的技術(shù)原理,但它一直默默為你守護(hù)你的指紋信息,賬戶密碼等各種敏感數(shù)據(jù)。 如下也列出了一張在Trustzone架構(gòu)下的一張指紋的框圖,這也是這些年(2015-至今)比較流行的一張軟件框圖。

ARM TrustZone技術(shù)解析:構(gòu)建嵌入式系統(tǒng)的安全擴(kuò)展基石,科技探索,Trustzone,TEE,armv9,armv8,ARM,嵌入式,安全

1.1、ARM Trustzone的安全擴(kuò)展簡介

從上文我們已經(jīng)知道, ARM Trustzone不具體指一個硬件,也不是一個軟件,而是一個技術(shù)架構(gòu),在支持ARM Trustzone的SOC中,需按照ARM Trustzone技術(shù)對各個子模塊進(jìn)行設(shè)計。如下便展示了一個SOC的Trustzone架構(gòu)下的設(shè)計框圖

ARM TrustZone技術(shù)解析:構(gòu)建嵌入式系統(tǒng)的安全擴(kuò)展基石,科技探索,Trustzone,TEE,armv9,armv8,ARM,嵌入式,安全 其中:

  • (1)、AMBA-AXI總線的擴(kuò)展, 增加了標(biāo)志secure讀和寫地址線:AWPROT[1]和ARPROT[1]
  • (2)、processor的擴(kuò)展(或者說master的擴(kuò)展),在ARM Core內(nèi)部增加了SCR.NS比特位,這樣ARM Core發(fā)起的操作就可以被標(biāo)記“是以secure身份發(fā)起的訪問,還是以non-secure身份發(fā)起的訪問”
  • (3)、TZPC擴(kuò)展,在AXI-TO-APB端增加了TZPC,用于配置apb controller的權(quán)限(或者叫secure controller),例如將efuse(OTP Fuse)配置成安全屬性后,那么processor以non-secure發(fā)起的訪問將會被拒絕,非法的訪問將會返回給AXI總線一個錯誤。
  • (4)、TZASC擴(kuò)展,在DDRC(DMC)之上增加一個memory filter,現(xiàn)在一般都是使用TZC400,或由SOC廠商自己設(shè)計一個這樣的IP,或叫MPU,或集成在DMC內(nèi)部,它的作用一般就是配置DDR的權(quán)限。 如果配置了DDR中某塊region為安全屬性,那么processor以non-secure發(fā)起的訪問將會被拒絕。
  • (5)、MMU/Cache對安全擴(kuò)展的支持 在軟件架構(gòu)的設(shè)計中,就分為: Non-secure EL0&1 Transslation Regime 和 Secure EL0&1 Transslation Regime,即normal world和secure world側(cè)使用不同的Transslation Regime,其實就是使用不同的TTBRx_ELn寄存器,使用不同得頁表。 注意:在armv7上,TTBRx_EL0、TTBRx_EL1是banked by Security State,也就是說在安全世界和非安全世界各有一組這樣的寄存器,所以在linux和tee中可以各自維護(hù)一張自己的內(nèi)存頁表. 在armv8/armv9上,TTBRx_EL0、TTBRx_EL1不再是banked了,但是world switch時會在ATF中switch cpu context, 所以從hypervisror或os的視角來看,依然還是兩套不同的TTBRx_ELn寄存器,linux和tee各有各的頁表。 而在TLB中,又為每一個entry增加了Non-secure屬性位,即標(biāo)記當(dāng)前翻譯出的物理地址是secure還是non-secure; cache的擴(kuò)展:在cache的entry中的TAG中,有一個NON-Secure Identifier標(biāo)記為,表示當(dāng)前緩存數(shù)據(jù)的物理地址是屬于non-secure還是secure。
  • (6)、gic對安全擴(kuò)展的支持,在gicv2、gicv3的版本中,都增加了對安全擴(kuò)展的支持. 以gicv3為例,將中斷劃分成了group0、secure group1和non-secure group1. 在軟件的配置下,group0和secure group1的中斷將不會target到REE(linux)中處理

1.2、ARM Trustzone的安全擴(kuò)展詳細(xì)解剖

1.3、 AMBA-AXI對Trustzone的支持

ARPROT[2:0]和AWPROT[2:0] 分別是讀通道和寫通道中的關(guān)于權(quán)限的信號,例如他們中的BIT[1]則分別表示正是進(jìn)行secure身份的讀或secure身份的寫操作。

ARM TrustZone技術(shù)解析:構(gòu)建嵌入式系統(tǒng)的安全擴(kuò)展基石,科技探索,Trustzone,TEE,armv9,armv8,ARM,嵌入式,安全

1.4Processor的SCR.NS比特位

SCR_EL3.NS 表示當(dāng)前processor的安全狀態(tài),NS=1表示是non-secure的,NS=0表示是Secure的 ARM TrustZone技術(shù)解析:構(gòu)建嵌入式系統(tǒng)的安全擴(kuò)展基石,科技探索,Trustzone,TEE,armv9,armv8,ARM,嵌入式,安全

2.TZC400和TZPC簡介

TZC400接在core和(DMC)DDR之間,相當(dāng)于一個memory filter。 TZC400一般可以配置8個region(算上特殊region0, 也可以說9個),然后可以對每一個region配置權(quán)限。例如講一塊region配置成secure RW的,那么當(dāng)有non-secure的master來訪問這塊內(nèi)存時,將會被TZC擋住。 ARM TrustZone技術(shù)解析:構(gòu)建嵌入式系統(tǒng)的安全擴(kuò)展基石,科技探索,Trustzone,TEE,armv9,armv8,ARM,嵌入式,安全

2.1 MMU對Trustzone的支持

首頁,在軟件架構(gòu)的設(shè)計中,就分為: Non-secure EL0&1 Transslation Regime 和 Secure EL0&1 Transslation Regime,即normal world和secure world側(cè)使用不同的Transslation Regime;
其實就是使用不同的TTBRx_ELn寄存器,使用不同得頁表 其次,在MMU使用的頁表中,也有NS比特位。
Non-secure Transslation Regime 只能翻譯NS=1的頁表項,secure Transslation Regime 可以翻譯NS=1和NS=0的頁表項。
即secure的頁表可以映射non-secure或secure的內(nèi)存,而non-secure的頁表只能去映射non-secure的內(nèi)存,否則在轉(zhuǎn)換時會發(fā)生錯誤 ARM TrustZone技術(shù)解析:構(gòu)建嵌入式系統(tǒng)的安全擴(kuò)展基石,科技探索,Trustzone,TEE,armv9,armv8,ARM,嵌入式,安全 在Page Descriptor中(頁表entry中),有NS比特位(BIT[5]),表示當(dāng)前的映射的內(nèi)存屬于安全內(nèi)存還是非安全內(nèi)存: ARM TrustZone技術(shù)解析:構(gòu)建嵌入式系統(tǒng)的安全擴(kuò)展基石,科技探索,Trustzone,TEE,armv9,armv8,ARM,嵌入式,安全

2.2 cache對Trustzone的支持

如下所示,以為cortex-A78為例,L1 Data Cache TAG中 ,有一個NS比特位(BIT[33]),表示當(dāng)前緩存的cacheline是secure的還是non-secure的 ARM TrustZone技術(shù)解析:構(gòu)建嵌入式系統(tǒng)的安全擴(kuò)展基石,科技探索,Trustzone,TEE,armv9,armv8,ARM,嵌入式,安全

2.3 TLB對Trustzone的支持

如下所示,以為cortex-A78為例,L1 Data TLB entry中 ,有一個NS比特位(BIT[35]),表示當(dāng)前緩存的entry是secure的還是non-secure的

ARM TrustZone技術(shù)解析:構(gòu)建嵌入式系統(tǒng)的安全擴(kuò)展基石,科技探索,Trustzone,TEE,armv9,armv8,ARM,嵌入式,安全

2.4 gicv的安全中斷

在gicv2/gicv3中,支持了安全中斷,配置有如下: (1)、Group分組(GICD_IGROUPRn) – gicv2 ?group0:安全中斷,由nFIQ驅(qū)動 ?group1:非安全中斷,由nIRQ驅(qū)動

(2)、Group分組(GICD_IGROUPRn)– gicv3 ?group0:安全中斷 ?non-secure group1:非安全中斷 ?secure group1:安全中斷

3.ARM Trustzone技術(shù)對軟件帶來的變化

ARM Trustzone技術(shù)對軟件框架帶來了變化

3.1、EL3 is AArch64:

ARM TrustZone技術(shù)解析:構(gòu)建嵌入式系統(tǒng)的安全擴(kuò)展基石,科技探索,Trustzone,TEE,armv9,armv8,ARM,嵌入式,安全

3.2、EL3 is AArch32:

ARM TrustZone技術(shù)解析:構(gòu)建嵌入式系統(tǒng)的安全擴(kuò)展基石,科技探索,Trustzone,TEE,armv9,armv8,ARM,嵌入式,安全
AArch32和AArch64 secure monitor的理解:

  • 如果secureos和monitor都是64位,secureos跑在el1, monitor跑在el3;- 如果secureos和monitor都是32位,secureos和monitor都跑在EL3(secureos在svc模式、monitor在svc模式),它倆共用頁表;- 如果monitor是64位,secureos是32位,那么secureos跑在svc模式(el1),monitor跑在el3,他倆不共用頁表

3.3、armv7:

ARM TrustZone技術(shù)解析:構(gòu)建嵌入式系統(tǒng)的安全擴(kuò)展基石,科技探索,Trustzone,TEE,armv9,armv8,ARM,嵌入式,安全

思考:通過MMU/TLB/Cache對安全內(nèi)存攻擊的可能性

在安全架構(gòu)的設(shè)計時,我們在Core和DDR之間增加了一個TZC做為memory filter,數(shù)據(jù)流為:Core ---> TZC---->DDR, 這種架構(gòu)下,core以非安全身份發(fā)起的對安全內(nèi)存的讀寫,將會被TZC擋住。

ARM TrustZone技術(shù)解析:構(gòu)建嵌入式系統(tǒng)的安全擴(kuò)展基石,科技探索,Trustzone,TEE,armv9,armv8,ARM,嵌入式,安全

但是這都是在理想的情況下,事實上Core發(fā)起對內(nèi)存的讀寫,未必經(jīng)過TZC未必到DDR,有可能到cache階段就完成了,即數(shù)據(jù)流變成了Core ---> MMU(TLB+Addtress Translation)---->Cache,那么這種情況下,沒有TZC的事了,你也許會說MMU/Cache中都有NS比特,但是你真的理解這里NS比特的用法嗎? 如果core以非安全身份對安全內(nèi)存發(fā)起的讀寫時,我強(qiáng)制將MMU頁表中的安全屬性標(biāo)記位強(qiáng)制改成NS=0,會如何呢?

ARM TrustZone技術(shù)解析:構(gòu)建嵌入式系統(tǒng)的安全擴(kuò)展基石,科技探索,Trustzone,TEE,armv9,armv8,ARM,嵌入式,安全

事實上我們只要理清原理、理清數(shù)據(jù)流 ,就不會問上面那么S13的問題了。 下面來開始剖析:

假設(shè)一個安全core 讀取了一個安全物理內(nèi)存0x2000_0000數(shù)據(jù)(虛擬地址可能是0x_xxxx_xxxx),那么將產(chǎn)生一下行為:

  • 在讀寫之前,勢必做好了MMU map,如物理地址0x2000_0000 MAP成了0x_xxxx_xxxx地址, 此時Page Descriptor中的atrribute中的NS=0- TLB緩存該翻譯,即TLB的entry中包含: 0x2000_0000、0x_xxxx_xxxxNS=0- 安全內(nèi)存0x2000_0000數(shù)據(jù)將會被緩存到cache中,entry中的TAG包含0x2000_0000、NS=0
    同時,我有一個非安全core 發(fā)起讀寫虛擬地址0x_yyyy_yyyy,我自行修改該頁表,讓0x_yyyy_yyyy強(qiáng)制映射到安全物理內(nèi)存0x2000_0000,此時有兩種配置: (1)、0x_yyyy_yyyy0x2000_0000, NS=0 (2)、0x_yyyy_yyyy0x2000_0000, NS=1 我們分別看下這兩種配置,是否能讀到安全內(nèi)存: 針對(1),非安全的core發(fā)起訪問,發(fā)現(xiàn)TLB中的條目是0x_yyyy_yyyy0x2000_0000, NS=0,自然不會被命中,然后使用Address Translation轉(zhuǎn)換,MMU發(fā)現(xiàn)非安全的Core要來訪問安全屬性NS=0 將會被直接拒絕掉。 針對(2),非安全的core發(fā)起訪問,由于NS=1,TLB可能會被命中,即能翻譯出0x2000_0000物理地址來,即使沒有被命中,在經(jīng)過Address Translation轉(zhuǎn)換,由于NS=1,此時也是可以正確轉(zhuǎn)換出正確的0x2000_0000物理地址。 然后接著會去cache中查詢這個地址,但是此時cache的entry中的NS=0,所以cache不會被命中,接下來就要走TZC流程了,很顯然,你一個非安全的core想訪問安全的內(nèi)存,TZC將會擋住你。
綜上所述:安全就是安全,不要再想漏洞了。
推薦
  • ARMv8/ARMv9架構(gòu)從入門到精通 --博客專欄
  • 《Armv8/Armv9架構(gòu)從入門到精通 第二期》 --大課程
  • 8天入門ARM架構(gòu) --入門課程
    ARM TrustZone技術(shù)解析:構(gòu)建嵌入式系統(tǒng)的安全擴(kuò)展基石,科技探索,Trustzone,TEE,armv9,armv8,ARM,嵌入式,安全

ARM TrustZone技術(shù)解析:構(gòu)建嵌入式系統(tǒng)的安全擴(kuò)展基石,科技探索,Trustzone,TEE,armv9,armv8,ARM,嵌入式,安全文章來源地址http://www.zghlxwxcb.cn/news/detail-838875.html

到了這里,關(guān)于ARM TrustZone技術(shù)解析:構(gòu)建嵌入式系統(tǒng)的安全擴(kuò)展基石的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 嵌入式學(xué)習(xí)---ARM中斷控制系統(tǒng)

    嵌入式學(xué)習(xí)---ARM中斷控制系統(tǒng)

    硬件中斷處理是實時系統(tǒng)設(shè)計的最重要、最關(guān)鍵的問題。 程序不斷地查詢各設(shè)備的狀態(tài),并做出相應(yīng)的反應(yīng)。該方式實現(xiàn)比較簡單,常用在比較單一的系統(tǒng)中,比如一個溫控系統(tǒng)中可以使用查詢方式不斷檢測溫度的變化。 特點:實現(xiàn)簡單;但 CPU利用率很低 ,不適合多任務(wù)的

    2024年02月03日
    瀏覽(55)
  • 【小黑嵌入式系統(tǒng)第二課】嵌入式系統(tǒng)的概述(二)——外圍設(shè)備、處理器、ARM、操作系統(tǒng)

    【小黑嵌入式系統(tǒng)第二課】嵌入式系統(tǒng)的概述(二)——外圍設(shè)備、處理器、ARM、操作系統(tǒng)

    上一課: 【小黑嵌入式系統(tǒng)第一課】嵌入式系統(tǒng)的概述(一)——概念、特點、發(fā)展、應(yīng)用 下一課: 【小黑嵌入式系統(tǒng)第三課】嵌入式系統(tǒng)硬件平臺(一)——概述、總線、存儲設(shè)備(RAMROMFLASH) 前些天發(fā)現(xiàn)了一個巨牛的人工智能學(xué)習(xí)網(wǎng)站,通俗易懂,風(fēng)趣幽默,忍不住分享

    2024年02月08日
    瀏覽(23)
  • 修改嵌入式 ARM Linux 內(nèi)核映像中的文件系統(tǒng)

    修改嵌入式 ARM Linux 內(nèi)核映像中的文件系統(tǒng)

    zImage 是編譯內(nèi)核后在 arch/arm/boot 目錄下生成的一個已經(jīng)壓縮過的內(nèi)核映像。通常我們不會使用編譯生成的原始內(nèi)核映像 vmlinux ,因其體積很大。因此, zImage 是我們最常見的內(nèi)核二進(jìn)制,可以直接嵌入到固件,也可以直接使用 qemu 進(jìn)行調(diào)試。當(dāng)然,在 32 位嵌入式領(lǐng)域還能見到

    2024年02月10日
    瀏覽(36)
  • [ARM 匯編]高級部分—ARM匯編編程實戰(zhàn)—3.3.1 嵌入式系統(tǒng)的基本概念

    [ARM 匯編]高級部分—ARM匯編編程實戰(zhàn)—3.3.1 嵌入式系統(tǒng)的基本概念

    嵌入式系統(tǒng)是一種特殊的計算機(jī)系統(tǒng),通常用于執(zhí)行特定的任務(wù)。它通常包含一個或多個微處理器、存儲器和外圍設(shè)備。與通用計算機(jī)系統(tǒng)相比,嵌入式系統(tǒng)具有體積小、功耗低、成本低和實時性強(qiáng)等特點。在這一部分,我們將介紹嵌入式系統(tǒng)的基本概念,并通過實例來展示

    2024年02月11日
    瀏覽(20)
  • ARM匯編第一次上機(jī)(順序、分支、單重循環(huán))【嵌入式系統(tǒng)】

    ARM匯編第一次上機(jī)(順序、分支、單重循環(huán))【嵌入式系統(tǒng)】

    2023-4-14 19:30:55 以下內(nèi)容源自《創(chuàng)作模板三》 僅供學(xué)習(xí)交流使用 ARM簡單程序設(shè)計【嵌入式系統(tǒng)】 第一點 關(guān)于 號 不會有人不知道? 我流程圖中寫的 R3=nums 是什么意思吧? 請看下面C語言程序 回答 號是 取地址 的意思哦 第二點 關(guān)于說明中的 R0++ 說明 此處R0用來遍歷數(shù)組的指針

    2023年04月15日
    瀏覽(20)
  • 【嵌入式項目】基于ARM+Linux的車載系統(tǒng)(完整工程資料源碼)

    【嵌入式項目】基于ARM+Linux的車載系統(tǒng)(完整工程資料源碼)

    ????????基于ARM+Linux的車載系統(tǒng)演示效果 基于ARM+Linux的車載系統(tǒng) ????????本項目計劃主要應(yīng)用于家用,辦公等領(lǐng)域轎車中實施的基于物聯(lián)網(wǎng)云平臺的車載系統(tǒng)項目,既能夠為車主在行駛過程中提供舒適的體驗,又能提供一定的安全保障。??? ????????基于ARM+Linux的車

    2024年03月26日
    瀏覽(88)
  • 1802_在Linux系統(tǒng)上開發(fā)ARM單機(jī)片機(jī)嵌入式軟件

    1802_在Linux系統(tǒng)上開發(fā)ARM單機(jī)片機(jī)嵌入式軟件

    ???????? 全部學(xué)習(xí)匯總: GreyZhang/little_bits_of_linux: My notes on the trip of learning linux. (github.com) 1. 在Linux上也有嵌入式的開發(fā)環(huán)境,或許還有很多。不過,我現(xiàn)在接觸到的大部分還是Windows居多。這一份文件介紹的是一個mbed platform這樣一個開源的ARM嵌入式開發(fā)環(huán)境??梢灾С諧以

    2024年02月07日
    瀏覽(22)
  • 構(gòu)建定制化的嵌入式 Linux 系統(tǒng):了解 Buildroot

    引言 Linux Buildroot及其在嵌入式系統(tǒng)開發(fā)中的重要性 為什么使用Buildroot可以幫助簡化Linux系統(tǒng)構(gòu)建過程 Buildroot概覽 Buildroot的基本概念和原理 Buildroot與其他類似工具的區(qū)別,如Yocto Project 準(zhǔn)備工作 下載和安裝Buildroot 介紹Buildroot的目錄結(jié)構(gòu) Linux Buildroot是一個開源項目,旨在幫助

    2024年02月13日
    瀏覽(25)
  • 合肥中科深谷嵌入式項目實戰(zhàn)——基于ARM語音識別的智能家居系統(tǒng)(二)

    合肥中科深谷嵌入式項目實戰(zhàn)——基于ARM語音識別的智能家居系統(tǒng)(二)

    目錄 基于ARM語音識別的智能家居系統(tǒng) 練習(xí)一 一、程序編譯 練習(xí)二: 二、文件IO 三、文件IO常用API接口函數(shù) 1、打開文件 open() 2、將數(shù)據(jù)內(nèi)容寫入文件 write() 3、關(guān)閉(保存)文件 四、編程示例 總結(jié) 我們上一篇講了,關(guān)于Linux系統(tǒng)的一些質(zhì)量,今天,我們實現(xiàn)在Linux系統(tǒng)

    2024年02月04日
    瀏覽(648)
  • 合肥中科深谷嵌入式項目實戰(zhàn)——基于ARM語音識別的智能家居系統(tǒng)(三)

    合肥中科深谷嵌入式項目實戰(zhàn)——基于ARM語音識別的智能家居系統(tǒng)(三)

    我們上一篇,我們實現(xiàn)在Linux系統(tǒng)下編譯程序,我們首先通過兩個小練習(xí)來熟悉一下如何去編譯。今天,我們來介紹一下LCD屏幕基本使用。 如何使用LCD屏幕? ?? ?1、打開開發(fā)板LCD設(shè)備驅(qū)動文件。 ?(/dev/fb0) ?? ?2、準(zhǔn)備顏色數(shù)據(jù)。 ?? ?3、寫入顏色像素點數(shù)據(jù)。 ?? ?4、關(guān)閉

    2024年02月04日
    瀏覽(96)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包