原创 Linux設備驅動之poll機制

       應用程序調用的任何庫函數,最終將會調被庫函數封裝的系統函數 ,此過程中發生swi中斷,用戶進程從用戶狀態變成了核心態,當我們的應用程序調用pool() 函數時,最終調用的是 sys_poll() 函數。        sys

原创 Makefile 使用總結

  1. Makefile 簡介 Makefile 是和 make 命令一起配合使用的. 很多大型項目的編譯都是通過 Makefile 來組織的, 如果沒有 Makefile, 那很多項目中各種庫和代碼之間的依賴關係不知會多複雜. Mak

原创 代碼重定位解析

一  代碼的組成程序至少包含:代碼段+數據段代碼段:.text數據段:.data一般存儲全局變量,初值不爲0的經過初始化的全局變量        如:char g_char ='A';    //初值爲A的字符型全局變量只讀數據段:.ro

原创 ARM指令集詳解

ARM指令集詳解 1.       彙編 1.1.    通用寄存器   通用寄存器 37個寄存器,31個通用寄存器,6個狀態寄存器,R13堆棧指針sp,R14返回指針,R15爲PC指針, cpsr_c代表的是這32位中的低8位,也就是

原创 LwIP協議棧的數據包管理

      首先,談談數據包管理的重要性。我們知道TCP/IP協議機構中,每一層都被描述成獨立(各個層被封裝)的模塊,每一層負責完成自己獨立的事情。這樣在性能優良的處理器上跑TCP/IP協議是沒有問題的,一斷我們的處理器很LOW的時候,特

原创 關於volatile的幾點理解

       volatile翻譯成中文就是不穩定的、反覆無常的。它的功能簡單地說就是防止編譯器對代碼進行優化。比如如下程序:1234XBYTE[2]=0x55;XBYTE[2]=0x56;XBYTE[2]=0x57;XBYTE[2]=0

原创 S3c2440芯片MMU詳解

1.MMU簡介         MMU(Memory Management Unit),內存管理單元,主要職責:將虛擬地址映射爲物理地址,提供硬件機制的內存訪問權限檢查。 2.基本概念        虛擬地址(Virtual Addres

原创 Nor Flash的一般操作(通用)

    Nor Flash具有其獨特的數據保護機制,它可以像內存一樣讀,但是它不可以像內存一樣寫,這就會導致我們在向Nor Flash中寫數據時會稍顯麻煩。這篇文章介紹Nor Flash 的一般操作,適合大多數的Nor Flash芯片,筆

原创 LwIP協議棧的網絡接口管理

    本文論述的網絡接口屬於鏈路層的範疇。運行LwIP的嵌入式設備可以有很多個網絡接口,這些網絡接口的種類可以互不相同。有效的管理這些網絡接口就顯得尤爲必要。    在netif.h和netif.c文件中定義和實現了所有的和網絡接口相關

原创 三步搞定32位芯片中斷程序的編寫

(1)初始化       1.1 設置中斷源,讓它能夠發出中斷信號。       1.2 設置中斷控制器,讓它能夠把中斷信號傳遞給CPU,一般是設置中斷屏蔽寄存器,中斷優先級控制寄存器。       1.3 設置CPU,使之能夠接受中斷,

原创 LwIP協議棧的內存管理

case PBUF_POOL:p = memp_malloc(MEMP_PBUF_POOL);case PBUF_RAM:p = (struct pbuf*)mem_malloc(LWIP_MEM_ALIGN_SIZE(SIZEOF_ST

原创 深入理解nandflash基本特性

nandflash作爲嵌入式中的”磁盤”, 被廣泛的應用, 以(K9F2G08U0B)爲例,其他型號都差不多 nandflash的結構  nandflash的結構有頁(page), block(塊)的概念,其中頁是真實概念,而塊兒是虛擬

原创 C語言中清空數組的方法(VS2013)

在C語言中,有的時候需要清空數組,以待存儲接下的數據,常規的方法有: (1)循環方法         char a[ ]="aaaaaaaa";                                 //定義字符數組      

原创 Ubuntu下VI編輯器命令總結

vi編輯器有三種模式1)命令行模式(光標移動、複製、粘貼、刪除)(command mode)2)插入模式(編輯文本)                                    (insert m

原创 用串口實現簡單的printf函數

       在VC6中,打開printf函數的源代碼,發現這個函數的代碼量無比巨大,閒來無事,自己用C寫了一個簡單的printf函數,只實現了VC庫中printf函數的部分簡單功能,貼出自己寫的代碼只爲拋磚引玉,娛人娛己,僅此而已!