科學研究員指出,人們要在某個領域出類拔萃,無論是腦部手術或是銷售電腦,至少得花上10年的時間。
前提是,如果你在這10年當中投入1萬小時認真練習的話。簡單計算一下,10年跟1萬小時約等同於1年1,000小時(1星期19小時),或是1天要花2.7小時認真練習,才能夠贏過別人。
只要你每天投入3小時,而你所做的這份努力,也許是你為了達成目標所採取的行動當中成效最好的一個。
科學研究員指出,人們要在某個領域出類拔萃,無論是腦部手術或是銷售電腦,至少得花上10年的時間。
前提是,如果你在這10年當中投入1萬小時認真練習的話。簡單計算一下,10年跟1萬小時約等同於1年1,000小時(1星期19小時),或是1天要花2.7小時認真練習,才能夠贏過別人。
只要你每天投入3小時,而你所做的這份努力,也許是你為了達成目標所採取的行動當中成效最好的一個。
= =...做這個移植一開始因為粗心沒注意到害我浪費了一些時間。
這篇文章是我本人在網路上找的相關資料並且有實際做過才發出來的文章,絕對不是巴樂文,以下是我所做的內容。
一、核心修改
1-1、下載核心
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.14.1.tar.bz2
Linux Device Drivers ─
使用/proc檔案系統
/proc是核心模擬出來的軟體檔案系統,它是核心對於外界的資訊窗口。在/proc下的每一個檔案,各自連繫到核心裡的專屬函式,當user-process讀取/proc下的檔案時,對應的函式便會即時(real-time)產生檔案的“內容”。以/proc/modules為例,它總是會告訴你核心當已載入哪些模組。
但現在的發展趨勢,已經不在鼓勵於/proc下添增檔案,因為在核心開發團隊的眼中,/proc檔案系統的發展已經失控了,逐漸遠離其原本的用途─提供系統行程的運作狀態。新寫的驅動程式,應該改用sysfs來提供狀態。相較之下,建立/proc檔案要稍微簡單些,而且也比較適合偵錯用途。
/proc檔其實與一般檔案沒兩樣,同樣都是透過read()、write()系統呼叫來存取它們。如果你的驅動程式只提供能應付read()系統呼叫的作業函式,對應的/proc檔就是唯讀的,除非另外提供能應付write()系統呼叫的作業函式。
Linux Device Drivers ─
節制printk訊息產生速率
一般而言,正常運作狀態下不應該產生任何訊息,只有在發生了須要注意的異常狀態時,才可使用printk()。
但是printk()也是有被包含在無窮回圈裡的可能而導致嚴重的後果。對於需要偶爾輸出提醒訊息的情況,最好的解法是設立一個有調節作用的工具函式。
int printk_ratelimit(void);
Linux Device Drivers ─
Debug 訊息開關
在研發驅動程式的初期,printk()是輔助測試、偵錯新程式碼的好工具。到了正式釋出驅動程式的階段,就該拿掉這些無謂的printk()敘述或至少讓它們失效。
以下的範例提供一個簡便的方式,讓你可以一口氣拿掉所有偵測用途的printk()。
另外,也可以多增加一個不偵錯的空巨集,當有想註銷掉的錯誤訊息,可直接替換它的名稱。
ARM架構為(Advanced RISC machine),採用的是RISC(精簡指令集)運算架構,運用層面廣泛,從可攜式的手機、PDA,至硬碟控制器、汽車、甚至飛彈控制器等,均有採用該 架構的處理器,因智慧型手機、平板電腦掀起風潮,ARM架構成為PC業新寵兒。
相較於英特爾採用的x86架構,為CISC(複雜指令集)運算架構,再不斷加入指令集後,功能龐大;ARM架構讓處理器卻強調簡化,低功耗、小體積為其特色,也讓ARM架構在行動通訊產品市佔率居高不下,在平板電腦後,ARM架構也將進軍NB領域。
ARM 於1991年成立,該公司前身為Acorn Computer,出售IP(技術知識產權),授權廠家依照其IP,設計製造處理器,到1993年,TI、Cirrus Logic等知名業者採用該技術後,ARM在市場建立起知名度,受惠於手機應用,該公司ARM9核心已擁有超過200家的授權業者、ARM7也有150多 家的公司採用。
Linux Device Drivers ─
Register Character Device
要讓核心能提調你的驅動程式提供的作業方法,你必須配置並註冊一或多個struct cdev。用於配置struct cdev的函式是cdev_alloc(),你可再執行其配置一個獨立的cdev結構,然後將其ops欄位指向你的file_operations結構:
Struct cdev *my_cdev = cdev_alloc();
My_cdev->ops = &my_fops;
如果你的驅動程式需要將cdev嵌在你自己設計的一個特殊資料結構中,必須改用cdev_init()函式來初始化所得到的cdev:
Linux Device Drivers ─
Device Number
裝置的存取,是透過它們在檔案系統裡的名稱;這些名稱可成為特殊檔(special file)、裝置檔(device file)或檔案系統是的節點(node),但不管哪些說法意義都一樣。裝置檔一般來說都集中在/dev/目錄下。字元裝置會出現c字樣而區塊裝置則被標示為b。
在日期欄位之前兩個以逗號隔開的數值,由左而右,依序是裝置檔的(major number)和(minor number)。
[root@localhost ldd3]# ls -l /dev/
?? 0
crw-rw----+ 1 root root 14, 12 2012-01-30 09:17 adsp
crw------- 1 root root 10, 175 2012-01-30 09:17 agpgart
crw-rw----+ 1 root root 14, 4 2012-01-30 09:17 audio
crw------- 1 root root 5, 1 2012-01-30 09:18 console
crw-rw---- 1 root root 10, 63 2012-01-30 09:17 cpu_dma_latency
brw-rw---- 1 root disk 253, 0 2012-01-30 09:17 dm-0
brw-rw---- 1 root disk 253, 1 2012-01-30 09:17 dm-1
Linux Device Drivers ─
新增模組到Kernel中並客製化組態選單加入選項
1.選定模組資料夾
以“linux-2.6.21.x\drivers\char\hello\”為存放檔案的位置

這幾天有位朋友問我,為什麼在智慧型手機中要使用到NAND FLASH?
我對智慧型手機的硬體實際做法或許不是很全面了解,但我可以以嵌入式系統的角度來說明。
一塊開發版需要幾個必備的要素,
1. CPU(ARM、MIPS...等)
2. RAM

1、何謂SHELL CRIPT
shell,那是一個文字介面底下讓我們與系統溝通的一個工具介面。script 是『腳本、劇本』的意思。整句話是說, shell script 是針對 shell 所寫的『劇本!』。
shell script 是利用 shell 的功能所寫的一個『程式 (program)』,這個程式是使用純文字檔,將一些 shell 的語法與指令(含外部指令)寫在裡面,搭配正規表示法、管線命令與資料流重導向等功能,以達到我們所想要的處理目的。
所以,簡單的說, shell script 就像是早期 DOS 年代的批次檔 (.bat),也可以被說成是一個程式語言,且這個程式語言由於都是利用 shell 與相關工具指令,所以不需要編譯即可執行,且擁有不錯的除錯 (debug) 工具
2、script 的撰寫與執行