原创 U-boot分析與移植(6)----U-boot--Makefile

主要參考韋東山的《嵌入式Linux應用開發完全手冊》   如果要使用開發板 board/<board_name>,就先執行“make<board_name>_config”命令進行配置,然後執 行”make all“,就可以生成 如下3個

原创 U-boot分析與移植(2)----U-boot stage1分析

 我們要生成u-boot.bin文件,它首先依賴於很多.o文件和.lds鏈接腳本文件 我們只要找到對應的.lds鏈接腳本文件就可以分析u-boot的啓動流程。 1、打開u-boot-1.1.6\u-boot-1.1.6\board\smd

原创 U-boot分析與移植(5)----U-boot移植

網上很多很好很詳細的手冊可以參考如: mini2440之U-boot移植詳細手冊-20100419.pdf 移植u-boot-1.1.6到TQ2440文檔.pdf 移植u-boot-1.3.4到GT2440(第二版)-guolele出品.

原创 U-boot分析與移植(3)----U-boot stage2分析 .

 . 一來到void start_armboot (void)函數,馬上出現兩個很重要的數據結構gd_t和bd_t 1、gd_t : global data數據結構定義,位於文件 include/asm-arm/global_data.h

原创 malloc/free與new/delete的區別

  相同點:都可用於申請動態內存和釋放內存 不同點: (1)操作對象有所不同。 malloc與free是C++/C 語言的標準庫函數,new/del

原创 s3c2440硬件學習筆記----存儲控制器

 一、使用存儲控制器訪問外設的原理 1、S3C2440的地址空間 S3C2440對外引出27根地址線ADDR0-ADDR26,訪問範圍只有128MB,CPU對外還引出8根片選信號nGCS0-nGCS7,對應BANK0-BANK7,當訪問

原创 U-boot分析與移植(1)----bootloader分析

   一、Boot Loader 概念 就是在操作系統內核運行之前運行的一段小程序。通過這段小程序,我們可以初始化硬件設備、建立內存空間的映射圖,從

原创 U-boot分析與移植(4)----U-boot 添加命令

 我們初步瞭解U-Boot執行流程後,知道 U-Boot的每一個命令都是通過U_BOOT_CMD宏定義的。這個宏在include/command.h頭文件中定義,每一個命令定義一個cmd_tbl_t結構體。 /*命令宏U_BOOT_CMD

原创 U-boot分析與移植(1)----之bootloader分析

一、Boot Loader 概念就是在操作系統內核運行之前運行的一段小程序。通過這段小程序,我們可以初始化硬件設備、建立內存空間的映射圖,從而將系統的

原创 幾個筆試必備string函數(已經調過)

char *mystrchr(char *src, int letter) { assert(src != NULL); while((*src != letter)&&(*src)) src++;

原创 高級字符設備驅動--中斷下半部機制之workqueue(二)

  工作隊列workqueue 工作隊列(work queue)是另外一種將中斷的部分工作推後的一種方式,它可以實現一些tasklet不能實現的工作

原创 Linux設備模型(中)之上層容器

基本概念 總線  Linux設備模型是由總線(bus_type),設備(device),驅動(device_driver)這三個數據結構來描述的。 總線是處理器和一個或多個設備之間的通道。 在設備模型中, 所有的設備都通過總線相連, 甚至

原创 Linux設備驅動--塊設備(四)之“自造請求”

  前面, 我們已經討論了內核所作的在隊列中優化請求順序的工作; 這個工作包括排列請求和, 或許, 甚至延遲隊列來允許一個預期的請求到達. 這些技術

原创 Linux設備驅動--塊設備(三)之程序設計

 塊設備驅動註冊與註銷 塊設備驅動中的第1個工作通常是註冊它們自己到內核,完成這個任務的函數是 register_blkdev(),其原型爲:int register_blkdev(unsigned int major, const ch

原创 Linux設備驅動--塊設備(一)之概念和框架

基本概念   塊設備(blockdevice) --- 是一種具有一定結構的隨機存取設備,對這種設備的讀寫是按塊進行的,他使用緩衝區來存放暫時的數據,待條件成熟後,從緩存一次性寫入設備或者從設備一次性讀到緩衝區。 字符設備(Charact