原创 內核鏈接腳本

1、 arch/arm/kernel/vmlinux.lds 文件的生成 通過頂層Makefile中的規則生成vmlinux是根據arch/arm/kernel/vmlinux.lds這個腳本鏈接生成的。 arch/arm/kerne

原创 QC AMSS 的大致編譯過程

編譯ARM9的source有兩種方式:在windows(cmd.exe)下編譯 ,在linux下編譯。因爲我們沒有linux下的RVCT2.2的lic

原创 Linux內核訪問外設I/O資源的方式

我們知道默認外設 I/O 資源是不在 Linux 內核空間中的(如 sram 或硬件接口寄存器等),若需要訪問該外設 I/O 資源,必須先將其地址映射到內核空間中來,然後才能在內核空間中訪問它。 Linux 內核訪問外設

原创 linux移植的重要數據結構

對於嵌入式 Linux 系統來說,有各種體系結構的處理器和硬件平臺,並且用戶需要根據需求自己定製硬件板。只要是硬件平臺有些變化,即使非常小,可能也需要做一些移植工作。內核移植是嵌入式 Linux 系統中最常見的一項工作。 內核移

原创 s3c2410電源管理

linux中,電源管理,分爲apm,acpi兩種電源管理方式,兩者不建議同時使用。而對於S3c2410來說, 電源管理是採用apm. 我們就先看下apm: apm提供了一種用戶可控制的通信方式,註冊設備: apm註冊了

原创 define用法

  #define用法    #define指令   在你的程序裏,你可以使用#define指令給一個常量取一個有意義的名字。     語法的兩種形式是:          #define 標識符 被標識符替代的字符串         #

原创 MSM平臺上的AMSS

AMSS的source實際上是QC BREW(Binary Runtime Environment ForWireless)平臺的的底層部分,去掉了爲應用程序提供接口的AEE(application executionenvironmen

原创 Git常用命令

採用Git的開發流程 按原來的經驗,自己總結的。 有什麼不對的地方,請大家指教。謝謝~~~ 導入新項目(server IP: 192.168.128.64) cd test git init git add . (爲test目錄下所有文

原创 MACHINE_START宏

在Mach-s3c2410.c文件中,有如下的宏定義:   MACHINE_START( SMDK2410, "SMDK2410" ) /* @TODO: request a new identifier and switch t

原创 ARM Linux靜態映射分析

分析一下靜態映射機制的原理並通過GPIO和USB、LCD等的靜態映射作爲例子來說明如何通過這種靜態映射的方式訪問外設資源。 內核提供了一個重要的結構體struct machine_desc ,這個結構體在內

原创 QC AMSS的編譯問題

  因爲我們沒有購買Linux下的RVDS,因此Modem部分的源代碼AMSS只能在windows下編譯。在參考高通的參考文檔和網上的技術博客之後,我

原创 TCP握手/揮手的過程分析

TCP連接建立 在TCP/IP協議中,TCP協議提供可靠的連接服務,採用三次握手建立一個連接。 服務器必須準備好接受外來的連接。這通過調用socket、 bind和listen函數來完成,稱爲被動打開(passive open)。 第一

原创 linux Kernel中斷處理流程

Kernel 中斷處理圖 1. Linux 定義了名字爲irq_desc 的中斷例程描述符表:(include/linux/irq.h)     struct irqdesc irq_desc[NR_IRQS];

原创 常用文件重定向命令

常用文件重定向命令 command > filename 把把標準輸出重定向到一個新文件中 command >> filename 把把標準輸出重定向到一個文件中(追加) command 1 > fielname 把把標準輸出重定向到一

原创 ARM平臺的GPIO

首先是代碼中的幾個宏定義:       2.6.31內核:arch/arm/mach-2410/include/mach/regs-gpio.h   #define S3C2410_GPIONO (bank,off