原创 container_of宏分析

1. 背景概要 最近這幾天在忙於研究spi驅動,在看spi核心代碼(spi.c)時,發現一個container_of宏,不甚瞭解,於是深入研究之。這不看不知道,一看嚇一跳啊,一跟進去又給你整個更復雜的宏。好的,廢話不多說,直接上代碼: /

原创 android系統移植之概述

1. 概述 移植工作一般的主要不外乎做以下這些事情: A、有的現成好的直接選配 這個工作主要是熟悉該源碼的編譯系統,就是源碼自動化編譯是怎麼組織的。

原创 SPI驅動之子系統架構及重要數據結構

據個人所知,Linux下SPI一直是處於被“忽略”的角色,市場上大部分板子在板級文件裏面都沒有關於SPI的相關代碼(例如,mini2440),而大部分講解驅動的的書籍也沒有專門的一章來講述關於Linux下SPI方面的內容(例如,宋寶華的L

原创 OpenGL入門學習——第三課 繪製幾何圖形的一些細節問題

在第二課中,我們學習瞭如何繪製幾何圖形,但大家如果多寫幾個程序,就會發現其實還是有些鬱悶之處。例如:點太小,難以看清楚;直線也太細,不舒服;或者想畫

原创 struct與union內存分配問題

今天在調試代碼時,關於struct與union內存分配問題產生了疑惑,故上網查詢了相關資料,記於此,以便日後查看。 struct與union在內存分配的時候,主要區別如下: 前者按照結構體內定義的數據順序來進行分配內存的,分配的基本單位(

原创 I2C總線協議及時序圖詳解

1. I2C協議概述 I2C(Inter-Integrated Circuit)總線是一種由PHILIPS公司開發的兩線式串行總線,用於連接微控制器及其外圍設備。I2C總線產生於在80年代,最初爲音頻和視頻設備開發,如今主要在服務器管理中

原创 SPI驅動之主控制器驅動程序

嵌入式微處理器訪問SPI設備有兩種方式:使用GPIO模擬SPI接口的工作時序或者使用SPI控制器。使用GPIO模擬SPI接口的工作時序是非常容易實現的,但是會導致大量的時間耗費在模擬SPI接口的時序上,訪問效率比較低,容易成爲系統瓶頸。這

原创 SPI驅動之UT4412BV01上SPI驅動的移植

平臺信息: 內核:linux3.0.15 系統:android/android4.0 平臺:UT4412BV01(samsung exynos4412) 最近項目需要,需要在UT4412BV01上移植SPI驅動,板子需要驅動SPI設備,上

原创 OpenGL入門學習——第九課 使用混合來實現半透明效果

今天介紹關於OpenGL混合的基本知識。混合是一種常用的技巧,通常可以用來實現半透明。但其實它也是十分靈活的,你可以通過不同的設置得到不同的混合結果,產生一些有趣或者奇怪的圖象。 混合是什麼呢?混合就是把

原创 OpenGL入門學習——第十一課 紋理的使用入門

我們在前一課中,學習了簡單的像素操作,這意味着我們可以使用各種各樣的BMP文件來豐富程序的顯示效果,於是我們的OpenGL圖形程序也不再像以前總是隻顯示幾個多邊形那樣單調了。——但是這還不夠。雖然我們可以

原创 android系統移植之全過程

Android開發環境篇 1. 安裝 Required Packages Android requires the following system packages: flex: This lexica

原创 OpenGL入門學習——第十六課 在Windows系統中顯示文字

本課我們來談談如何顯示文字。 OpenGL並沒有直接提供顯示文字的功能,並且,OpenGL也沒有自帶專門的字庫。因此,要顯示文字,就必須依賴操作系統所提供的功能了。 各種流行的圖形操作系統,例如Windo

原创 OpenGL入門學習——第六課 動畫的製作

今天要講的是動畫製作——可能是各位都很喜歡的。除了講授知識外,我們還會讓昨天那個“太陽、地球和月亮”天體圖畫動起來。緩和一下枯燥的氣氛。 本次課程,我們將進入激動人心的計算機動畫世界。

原创 OpenGL入門學習——第十四課 OpenGL版本和OpenGL擴展

OpenGL從推出到現在,已經有相當長的一段時間了。其間,OpenGL不斷的得到更新。到今天爲止,正式的OpenGL已經有九個版本。(1.0, 1.1, 1.2, 1.2.1, 1.3, 1.4, 1.5

原创 android系統移植之文件系統分析

Android文件系統具有什麼樣的結構?我們如何才能將這一文件系統分離出來?又能以何種方式掛載文件系統呢?這些問題都會在文中找到具體的解決答案。 用過Linux的朋友可能對開源的系統有一個非常好的印象。那