Time of Update: 2018-12-05
電容屏與電阻屏的區別 1.電阻觸控螢幕 ① 它們都是一種對外界完全隔離的工作環境,不怕灰塵、水汽和油汙 ②可以用任何物體來觸摸,可以用來寫字畫畫,這是它們比較大的優勢 ③電阻觸控螢幕的精度只取決於A/D轉換的精度,因此都能輕鬆達到4096*4096? 比較而言,五線電阻比四線電阻在保證解析度精度上還要優越,但是成本代價大,因此售價非常高。 1.1四線電阻屏 四線電阻類比量技術的兩層透明金屬層工作時每層均增加5V恒定電壓:一個豎直方向,一個水平方向。總共需四根電纜。
Time of Update: 2018-12-05
最近調試R61509V這顆LCM驅動晶片時,出現在純色測試畫面下畫面重新整理有殘留(tearing effect,即TE)的問題。根本原因是主控寫映像資料的速度與LCM刷屏的速度不一致造成的,具體是刷屏速度要快於主控寫速度。好在很多LCM驅動晶片都有一個Fmark腳,用來與主控同步,當Fmark發出一個訊號給主控時,主控才開始寫一幀資料,這樣就可以保證兩邊同步。講述前首先對幾個概念描述:(1)刷屏速度
Time of Update: 2018-12-05
前面講了那麼多線性區底層分配的細節,現在讓我們討論怎樣分配一個新的線性地址區間。為了做到這點,do_mmap()函數為當前進程建立並初始化一個新的線性區。不過,分配成功之後,可以把這個新的線性區與進程已有的其他線性區進行合并。static inline unsigned long do_mmap(struct file *file, unsigned long addr, unsigned long len, unsigned long prot, unsigned long flag,
Time of Update: 2018-12-05
線性表(List):零個或多個資料元素的有限序列。線性表的順序儲存結構,指的是用一段地址連續的儲存單元依次儲存線性表的資料元素。線性表的順序儲存結構,說白了,就是在記憶體中找了塊地方,通過佔位的形式,把一定記憶體空間給佔了,然後把相同資料類型的資料元素依次存放在這塊空地中。既然線性表的毎個資料元素的類型都相同,所以可以用C語言(其他語言也相同)的一維數組來實現順序儲存結構,即把第一個資料元素存到數組下標為0的位置中,接著把線性表相鄰的元素儲存在數組中相鄰的位置。
Time of Update: 2018-12-05
FM搜台非常少, 該問題要分成兩類,第一類: 如果手動調節每個電台,都能收聽到清晰的電台, 只要改變搜台的停台閥值就能使搜台數量增加,另一類: 手動調節到一個訊號差的電台, 跟品牌手機的FM 進行比較,發現FM 效果明顯比品牌手機的FM 效果差,比如說品牌手機清晰無雜音, 而自己的機器FM 效果很差, 都是雜音,這個原因是FM 受到幹擾導致的, 必須通過修改硬體參數來解決該問題;FM 受到幹擾, 有三個途徑,1, 從天線輸入端引入了雜訊;2, 從電源供電端引入了雜訊;3, 從地上引入了雜訊;4
Time of Update: 2018-12-05
在上一篇博文對控制記憶體處理所用的資料結構和狀態資訊有了基本理解以後,我們來看一組對線性區描述符進行操作的低層函數。這些函數應當被看作簡化了do_map()和do_unmap()實現的輔助函數。這兩個函數將在後面的相關博文中進行描述,它們分別擴大或者縮小進程的地址空間。這兩個函數所處的層次比我們這裡所考慮函數的層次要高一些,它們並不接受線性區描述符作為參數,而是使用一個線性地址區間的起始地址、長度和訪問限權作為參數。 1
Time of Update: 2018-12-05
核心通過不同的介面向使用者輸出核心資訊。我們可通過這些介面訪問和修改核心參數。共有三種介面,其中兩種是procfs和sysfs虛擬檔案系統,第三種是sysctl命令。啟用procfs虛擬檔案系統的核心選項是"Filesystems-->Pseudofilesystems-->proc file
Time of Update: 2018-12-05
從前面的博文中我們已經知道,把一塊存放slab結構的記憶體區映射到一組連續的物理頁是最好的選擇,這樣會充分利用快取並獲得較低的平均訪問時間。不過,上面的方式主要是針對那些使用非常頻繁的核心資料結構——如task_struct、inode來設計的。如果對記憶體區的請求不是很頻繁,那麼,通過連續的線性地址,而不是物理地址來訪問非連續的物理頁框這樣一種分配模式就會很有意義了。這種模式的主要優點是避免了外片段,而缺點是必須打亂核心頁表。此外,非連續記憶體區的大小必須是4096 的倍數。Linux
Time of Update: 2018-12-05
一、介紹Inotify 是檔案級的事件監控機制,作為 dnotify 的有效替代。dnotify 是較早核心支援的檔案監控機制。Inotify 是一種強大的、細粒度的、非同步機制,它滿足各種各樣的檔案監控需要,不僅限於安全和效能。inotify 可以監視的檔案系統事件包括: IN_ACCESS,即檔案被訪問 IN_MODIFY,檔案被 write IN_ATTRIB,檔案屬性被修改,如 chmod、chown、touch 等 IN_CLOSE_WRITE,可寫檔案被 close IN_
Time of Update: 2018-12-05
上一篇博文我們會看到,核心使用一種新的資源成功實現了對進程動態記憶體的延遲分配。當使用者態進程請求動態記憶體時,並沒有獲得請求的頁框,而僅僅獲得對一個新的線性地址區間的使用權,而這一線性地址區間就成為進程地址空間的一部分。這一區間就叫做“線性區”。本博,我們就來詳細討論這個線性區。 1 線性區資料結構 Linux通過類型為vm_area_struct的對象實現線性區,它的欄位如下所示:struct vm_area_struct { struct mm_struct * vm_mm; /*
Time of Update: 2018-12-05
從本博開始,我們就要慢慢深入到進程管理乃至整個核心的核心概念——進程調度裡邊了。這裡,先把相關概念理一理。 剛接觸Linux,我們就講了,它是一個分時系統,卻由具備即時系統的特性。所以與任何分時系統一樣,通過一個進程到另一個進程的快速切換,達到表面上看來多個進程同時執行的神奇效果。我們已經在前面的博文中講過了進程切換的本身已,從本博開始,我們將進入進程管理最最最重要的部分——進程的調度,主要關心什麼時候進行進程切換及選擇哪一個進程來運行。借鑒了ULK-3的方法,為了敘述起來更簡單,我們仍以 80
Time of Update: 2018-12-05
MCU-LCD屏分析2011-04-12 10:57:39| 分類: linux學習 | 標籤:mcu lcd rgb 顯存 單片機 |字型大小大中小 訂閱 在嵌入式的主流 LCD屏中主要支援兩大類的硬體介面,一種是常見的RGB介面,另外一種是MCU介面.後面因為最早是針對單片機的領域在使用,因此得名.後在中低端手機大量使用,其主要特點是價格便宜的. MCU-LCD介面的標準術語是Interface 80,因此在很多文檔中用I80 來指MCU-LCD屏。
Time of Update: 2018-12-05
Linux一直堅持採用對稱式多處理模式,這意味著,與其他CPU相比,核心不對一個CPU有任何偏向,但是,多處理器機器具有很多不同的風格,而且發送器的實現隨硬體特徵的不同而有所不同,我們將特別關注下面三種不同類型的多處理器機器:(1)標準的多處理器體繫結構直到最近,這是多處理器機器最普通的體繫結構。這些機器所共有的RAM晶片集被所有CPU共用。(2)超執行緒超執行緒晶片是一個立刻執行幾個執行線程的微處理器;它包括幾個內部寄存器的拷貝,並快速在它們之間切換。這種由Intel發明的技術,使得當前線程在
Time of Update: 2018-12-05
菜菜最近做了一個Hello,World的RPM包,由於什麼都不懂,所以做了一整天,有點感想,在這裡把我的製作方案和經驗和大家分享一下。RPM是Redhat Package Manage的縮寫,將Source Code簡單地封裝成檔案,在最終產生的RPM包中有兩個檔案檔案,一個是ix86.rpm,另外一個是src.rpm,ix86檔案包含軟體發行者選擇發布的應用必須的檔案,而src檔案則包含Source
Time of Update: 2018-12-05
介紹在最近對雲端運算的所有關注中,儲存更多地被視為基礎平台。時至今日,許多雲端運算提供的僅僅局限於CPU核心的集合,定量的記憶體配置,低轉速儲存,或者還有一些面向互連網的IP技術。近來,出現了有趣的與雲端運算和儲存相關的進階技術,特別是使用 Web
Time of Update: 2018-12-05
核心使用do_munmap()函數從當前進程的地址空間中刪除一個線性地址區間。 1
Time of Update: 2018-12-05
COW技術初窺:在Linux程式中,fork()會產生一個和父進程完全相同的子進程,但子進程在此後多會exec系統調用,出於效率考慮,linux中引入了“寫時複製“技術,也就是只有進程空間的各段的內容要發生變化時,才會將父進程的內容複寫一份給子進程。那麼子進程的物理空間沒有代碼,怎麼去取指令執行exec系統調用呢?在fork之後exec之前兩個進程用的是相同的物理空間(記憶體區),子進程的程式碼片段、資料區段、堆棧都是指向父進程的物理空間,也就是說,兩者的虛擬空間不同,但其對應的物理空間是同一個
Time of Update: 2018-12-05
展示了單鏈表的基本結構:head指標是鏈表的頭指標,指向第一個節點,每個節點的next指標域指向下一個節點,最後一個節點的next指標域為NULL,在圖中用0表示。下面先來看程式(棧的鏈式儲存實現,另外一個實現點這裡)和對應的輸出(注意輸出前進行了鏈表反轉(見《單鏈表反轉》,否則程式後面的while迴圈輸出的順序是250,200,100),接著來剖析器: C++ Code 1234567891011121314151617181920212223242526/* linkedlist.h */#
Time of Update: 2018-12-05
堆棧的訪問規則被限制為Push和Pop兩種操作,Push(入棧或壓棧)向棧頂添加元素,Pop(出棧或彈出)則取出當前棧頂的元素,也就是說,只能訪問棧頂元素而不能訪問棧中其它元素。現在我們用堆棧解決一個有意思的問題,定義一個二維數組:int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1,
Time of Update: 2018-12-05
圖的遍曆和樹的遍曆類似,我們希望某一頂點出發訪遍圖中其餘頂點,且使每一個頂點僅被訪問一次,這一過程就叫做圖的遍曆(Traverse Graph)。圖的遍曆方法一般有兩種,第一種是深度優先遍曆(Depth First Search),也有稱為深度優先搜尋,簡稱為DFS。第二種是《廣度優先遍曆(Breadth First