原创 RO,RW,ZI 和scatter file詳解

要了解RO,RW和ZI需要首先了解以下知識:       (1)        ARM程序的組成             此處所說的“ARM程序”是指在ARM系統中正在執行的程序,而非保存在ROM中的bin映像(p_w_picpath)

原创 arm加載域和運行域的理解

般而言,一個程序包括只讀的代碼段和可讀寫的數據段。在ARM的集成開發環境中,只讀的代碼段和常量被稱作RO段(ReadOnly);可讀寫的全局變量和靜態變量被稱作RW段(ReadWrite);RW段中要被初始化爲零的變量被稱爲ZI段(Zer

原创 ldd3驅動程序學習1---理解scull設備

scull設備是一個操作內存的字符設備,不是真正的設備,只是向內核註冊爲字符設備,並使用內存來存取數據。 當用戶向其中寫數據時,它就申請空閒內存來存放用戶數據;當用戶讀取其數據時,便按順序讀取數據。 接下來兩個結構貫穿整個驅動,理解它是

原创 宏內核與微內核,Linux內核與Unix內核

操作系統內核可能是微內核,也可能是單內核(後者有時稱之爲宏內核Macrokernel)。按照類似封裝的形式,這些術語定義如下: 單內核:也稱爲宏內核。將內核從整體上作爲一個大過程實現,並同時運行在一個單獨的地址空間。所有的內核服務都在一個地

原创 ARM系統中斷向量表的動態配置

通常情況下32位ARM嵌入式系統的中斷向量表是程序編譯前設置好的。在編寫32位ARM 嵌入式系統的中斷 服務程序、設置和修改ARM體系結構的中斷向量表時,常感到相當麻煩,不得不修改彙編代碼,對不喜歡 使用匯編代碼編程的程序員尤其如此

原创 C/C++ 誤區:fflush(stdin)

1.       爲什麼 fflush(stdin) 是錯的 首先請看以下程序:                    #include <stdio.h> int main( void ) {     int i;     for (;;

原创 Qt-embedded-linux移植要點qt

  Qt-embedded-linux移植要點 1、安裝qt對系統的要求 安裝qt的過程在不同的平臺上會有所不同,主要關嵌入式linux平臺上如何安裝。若需要提供對OpenSSL的支持,需要通過單獨安裝OpenSSL Toolkit

原创 uboot鏈接分析

最近把boot的資料整理下,把我覺得boot比較核心的部分,完整的看了一遍,現在做個記號.我把我覺得我之前比較困惑的難點整理出來,也許大家一起討論下,也許和我一樣的新手就可以少走些彎路. BOOT的核心就是relocate,目前見到的典型

原创 配置Fedora core 6中yum光盤源 --去除無網絡不能打開軟件包管理的問題

新安裝的Fedora Core 6,添加刪除程序需要連接互聯網才能打開,對於無網絡的時候,可以採用以下方法從本地光盤安裝軟件包。 1、將從網上下載下來的5個光盤映像現掛載到linux下 a.掛載存放映像的磁盤 mount /dev/hd

原创 u-boot源碼宏 MK_STR

在分析u-boot源碼發現這樣的宏: /*  * Macros to transform values  * into environment strings.  */ #define XMK_STR(x)    #x #def

原创 U-Boot中關於TEXT_BASE,代碼重定位,鏈接地址相關說明

都知道U-BOOT分爲兩個階段,第一階段是(~/cpu/arm920t/start.S中)在FLASH上運行(一般情況下),完成對硬件的初始化,包括看門狗,中斷緩存等,並且負責把代碼搬移到SDRAM中(在搬移的時候檢查自身代碼是否在SDRA

原创 u-boot的Makefile分析435557749

U-BOOT是一個LINUX下的工程,在編譯之前必須已經安裝對應體系結構的交叉編譯環境,這裏只針對ARM,編譯器系列軟件爲arm-linux-*。 U-BOOT的下載地址: http://sourceforge.net/projects/u

原创 qt embedded配置選項

我的qt-everywhere-opensource-src-4.6.0.tar.gz是在主文件夾中.就是 你 $cd ~   然後那個位置,接下來解壓這個包包. ~$tar zxvf qt-everywhere-opensource-sr

原创 微內核和單內核

所有的Unix內核都同宗同源,並且提供相同的API,現代的Unix內核存在許多設計上的相似之處。Unix內核幾乎毫無例外的都是一個不可分割的靜態可執行塊(文件)。也就是說,它們必須以完整、單獨的可執行塊的形式在一個單獨的地址空間中運行。 單

原创 關於CPSR_cxsf

關於CPSR_cxsf msr cpsr_cxsf,r1        ;這裏的cxsf表示從低到高分別佔用的4個8bit的數據域 指令中有時還有出現cpsr_cf, cpsr_all, cpsr_c等,這裏:         c 指  C