原创 linux版本查詢

一、查看源碼的版本         在內核源碼目錄的根目錄下Makefile中有如下說明      1 VERSION = 2          2 PATCHLEVEL = 6          3 SUBLEVEL = 30     

原创 platform_device 和 platform_driver(平臺設備和平臺驅動)

      做Linux方面也有三個多月了,對代碼中的有些結構一直不是很明白,比如platform_device與platform_driver一直分不清關係。在網上搜了下,做個總結。兩者的工作順序是先定義platform_device

原创 register_chrdev 深入解析

首先我們在註冊函數裏面調用了register_chrdev(MEM_MAJOR,"mem",&memory_fops),向內核註冊了一個字符設備。 第一個參數是主設備號,0代表動態分配,這裏的MEM_MAJOR是1。第二個參數是設備的名字

原创 ARM7、ARM9、ARM11區別

1. 時鐘頻率的提高 雖然內核架構相同,但ARM7處理器採用3級流水線的馮·諾伊曼結構;而ARM9採用5級流水線的哈佛結構,ARM11爲8級流水線哈弗結構(從arm9開始都採用了哈弗結構)。增加的流水線設計提高了時鐘頻率和並行處理能力

原创 內核文檔介紹

       Linux內核源碼自帶了很多很優秀的文檔信息,那麼這些文檔的大概閱讀順序是什麼呢?  (http://lxr.linux.no/linux+v2.6.36/是一個在線閱讀Linux內核源碼的好地方)  第一部分:學會安裝使用

原创 字符設備 register_chrdev_region()、alloc_chrdev_region() 和 register_chrdev() .

1. 字符設備結構體   內核中所有已分配的字符設備編號都記錄在一個名爲 chrdevs 散列表裏。該散列表中的每一個元素是一個 char_device_struct 結構,它的定義如下:   static struct char_de

原创 APB

APB總線 APB簡介 APB(Advanced Peripheral Bus),外圍總線的意思。該總線協議是ARM公司提出的AMBA總線結構之一,幾乎已成爲一種標準的片上總線結構。 APB主要用於低帶寬的周邊外設之間的連接,例如UAR

原创 signal(SIGPIPE, SIG_IGN) 解析

                                                                                                          signal(SIGPIP

原创 select的使用解析

 Select在Socket編程中還是比較重要的,可是對於初學Socket的人來說都不太愛用Select寫程序,他們只是習慣寫諸如connect、 accept、recv或recvfrom這樣的阻塞程序(所謂阻塞方式block,顧名思義

原创 平臺設備驅動分析

鏈接地址 :http://blog.csdn.net/cnsecs/article/details/6695573 在設備驅動程序中經常會見到和platform相關的字段,分佈在驅動程序的多個角落,這也是2.6內核中比較重要的一種機制,把

原创 linux設備分類

縱覽linux/drivers目錄,大概還有35個以上的子目錄,每個子目錄基本上就代表了一種設備驅動,有atm、block、char、misc、input、net、usb、sound、video等。這裏只描述在嵌入式系統裏面用得最爲廣泛的

原创 linux內存管理

                                                                              手工釋放linux內存——/proc/sys/vm/drop_caches    

原创 Atmel ARM9啓動流程

Atmel ARM9啓動流程與Bootstrap的大小內幕           AT91SAM系列的ARM內置了一片bootrom, 如果選擇了合適的BMS電平(高電平), 那麼芯片啓動後會將bootrom映射到0x0地址. 啓動boot

原创 Make 工具常用命令

下面是Makefile中一些約定俗成的目標名稱及其含義: all編譯整個軟件包,但不重建任何文檔。一般此目標作爲默認的終極目標。此目標一般對所有源程序的編譯和連接使用"-g"選項,以使最終的可執行程序中包含調試信息。可使用 strip 程

原创 register_chrdev 和 class_create

在剛開始寫Linux設備驅動程序的時候,很多時候都是利用mknod命令手動創建設備節點,實際上Linux內核爲我們提供了一組函數,可以用來在模塊加載的時候自動在/dev目錄下創建相應設備節點,並在卸載模塊時刪除該節點,當然前提條件是用戶空