- Jul 16 Fri 2010 02:17
-
建議有氧運動和重力訓練先後
- Jul 12 Mon 2010 11:05
-
軀動程式開發
軀動程式本身是屬於「軟體硬介面」的程式設計技術,不管是學習WinCE或是Embedded Linux,最精彩的部份絕對是驅動程式莫屬。由於嵌入式系統整體來看,除了軟體開發外,也包含硬體的客制化,因此驅動程式在嵌入式系統技術領域中,佔了舉足輕重的地位。
學習驅動程式需要確實瞭解硬體的規格與微處理器架構,並且工程師還要能分得清楚哪些東西是介面(interfacing)也就是與硬體無關的程式(machine-independent);以及哪些是站在第一線做硬體控制的程式(machine-dependent)。各種軟體硬介面與滙流排也都要精通。
現在的嵌入式系統學習主軸
現今嵌入式系統的實作,幾乎都會加入嵌入式作業系統(embedded OS)的元素,有了作業系統,我們都可以為目標裝置「寫軟體」。總合來看,如果要學習所謂的嵌入式系統,從熱門的WinCE或Embedded Linux領域切入是相當不錯的選擇。
驅動程式是「寫軟體」與「做硬體」的 “connectivity”,因此現今資訊業界最熱門的嵌入式系統學習主軸為驅動程式的設計。
WinCE驅動程式
WinCE驅動程式的核心人物當然就是在WDM(Windows Driver Model)身上了。WDM是Windows 98/2000之後的驅動程式架構,WDM是一個嚴密的分層(layered)架構,架構層間以IRPs(I/O Request Packets)做通訊。
WDM驅動程式分為三種類型:bus driver、function driver與filter driver。Bus driver是device-independent的驅動程式,主要在驅動I/O bus,例如:PCI bus driver、USB bus driver;function driver是 “device” 的驅動程式,我們常講的「驅動程式設計」大部份都是講 function driver,function driver 主要在驅動各種裝置,因此大多是由裝置廠造商撰寫並提供給使用者安裝,function driver 的設計大多著墨在「讀/寫」外部裝置。Filter driver是非必要的驅動程式,主要在過瀘 I/O requests。
WDM驅動程式的設計是使用Windows DDK,學習資源豐富並且完整;相較於Linux驅動程式,WDM驅動程式的學習材料較系統化。
Linux驅動程式
Linux驅動程式採取嚴謹的分層式架構設計(layered architecture),利用分層的架構設計來徹底區分generic device driver(machine independent)與machine dependent driver。
Linux驅動程式採用分層架構的觀念設計,透過「註冊」與「回呼」的機制來清楚地區分每一層的關係。分層架構的實作必須在下層將自己註冊給上層,上層再回呼下層;上層的驅動程式必須提供註冊函數供下層呼叫,下層驅動程式所使用的註冊函數也將決定自己的上層架構。
與 user application 如何互動,是撰寫驅動程式時所要考慮的重要一環,因此在撰寫驅動程式時,要提供什麼「功能」給應用程式引用,就必須事先定義清楚。Linux的generic device driver層已經幫我們把這些功能定義清楚了。Linux驅動程式如何透過 I/O port 或 I/O memory來控制裝置,也就是與晶片組的溝通,方式是使用 Linux kernel 所提供的I/O函數來存取並控制實體硬體裝置。
Linux驅動程式的學習困難度較高,並且也沒有像是Windows DDK這樣的完整開發工具;但是若能掌握正確的學習步驟,要邁向高手之路並非遙不可及。
-- 作者/陳俊宏 (jollen)
原文刊載於 Run! PC 雜誌 8 月號
歡迎任意轉貼引用.但請務必註明出處
- Jul 06 Tue 2010 15:18
-
開放源碼的雲端系統
• Hadoop 是 Apache Top Level 開發專案
• 目前主要由 Yahoo! 資助、開發與運用
• 創始者是Doug Cutting,參考Google Filesystem,以Java開發,提供HDFS與MapReduce API。
• 2006年使用在Yahoo內部服務中
• 已佈署於上千個節點。
• 處理Petabyte等級資料量。
• Facebook、Last.fm、Joost … 等
- Jul 06 Tue 2010 14:35
-
雲端運算演進
而雲端運算已被視為繼Web2.0之後的一波科技產業的重要商機。據美林證券估計,未來五年內全球雲端運算市場規模將達到九百五十億美元,占全世界軟體市場的12 %。雲端運算背後龐大的商機潛力,使Google、IBM、微軟、Yahoo、Amazon、甲骨文(Oracle)、惠普、戴爾、昇陽(Sun)等各種科技大廠,都在今年大舉跨入雲端運算領域,搶占先機。
而其國際大廠概況如下:
- Jul 01 Thu 2010 02:28
-
別人開診所經驗
我懷老大時老公正好在籌備他的牙醫診所. 雖然他以前也是自己開, 但屬於設備舊, 沒裝潢的鄉下診所; 而新的診所是和兩個朋友合資他掛負責人, 裝潢, 設備都比較講究些; 很多事情還是不太一樣.
首先是裝潢; 可以找專門設計裝潢診所的公司, 他們有很多以前裝潢的case可供參考; 價格差距很大, 我老公是挑較便宜的來做, 而當時又比較偷懶沒去監工; 現在過了2年, 就可以看出建材品質與設計和實用之間的落差(如管線預留, 電壓需求, 照明, 病歷櫃, 櫃台空間, 插座位置, 衣櫃等). 建議自己先做功課, 去一些診所參觀, 確定自己的需要, 才能和設計師有良好的溝通. 做好以後若不合用要改是很麻煩的事而且會影響設計的整體感!!
其次員工是開業後最頭痛的問題. 我老公這兩年來有登報, 上網104, 111找人, 有時候找來一些很差的人, 連偷錢, 約假病人, 簽到不實的都有. 還有員工之間又愛比較, 女生小心眼又多, 有時老闆還要當協調人. 所以應徵新進時要花多一點時間聊聊, 覺得不太對的就不要勉強用, 免得到時請神容易送神難, 尤其是開店的特別強調以和為貴. 剛開始時的遊戲規則要訂好, 制度福利明確才能長冶久安. 此外, 無可避免的小診所一定會面臨員工愛跳巢, 因為很少有人會把這種工作當成是終身職業. 當然若福利薪資高於同業甚多自然又另當別論. 看妳捨不捨得付嘍! 最好妳能在那幫忙, 免得小姐一請假就鬧空城計或想歪主意. 若要請醫師比小姐更複雜, 因為涉及醫療行為的問題.
- Jun 24 Thu 2010 22:05
-
This is real love.
- Jun 23 Wed 2010 22:38
-
Linux之Proc檔案系統
- Jun 22 Tue 2010 22:37
-
移植Android核心重點
- Jun 18 Fri 2010 00:46
-
ASUS P750硬體拆解

我們都知道Android核心是Linux,要編譯一個能在P750執行的核心就要搞定Linux上的Driver,例如螢幕、觸碰屏、鍵盤按鈕等等,完成這些Driver的編寫Android才能正常運作。而編寫Driver可以分兩步驟執行,第一步是先了解P750使用的IC,第二步驟就是了解控制電路與接線。本篇先來簡單的─了解P750使用的IC,要達到這個目的最直接的方式當然是把P750解體,所幸P750算是非常好拆的機子,拆解如下描述:
- Jun 15 Tue 2010 15:42
-
Porting Android in P750流程
- Jun 16 Tue 2009 09:52
-
LINQ to SQL
http://www.asp.net/learn/linq-videos/
Part 1: Introduction to LINQ to SQL
Part 2: Defining our Data Model Classes
Part 3: Querying our Database
Part 4: Updating our Database
Part 5: Binding UI using the ASP:LinqDataSource Control
Part 6: Retrieving Data Using Stored Procedures
Part 7: Updating our Database using Stored Procedures
Part 8: Executing Custom SQL Expressions
Part 9 - Using a Custom LINQ Expression with the <asp:LinqDatasource> control