2013年10月31日星期四

歡迎光臨 !!

這是一個 分享 知識、技術 的園地,
也是 筆記自己過往的紀錄,
免的年紀大,會忘記!! 囧~~~
以上 部落格主人 AYO 阿佑

感謝各位網民的支持與愛護,
今後仍然請各位大大們,經常瀏覽敝站  淚奔~~~

============================================
更新日期: 2013/08/30
賀~~~ 開站 1558 天,瀏覽累計人數終於超過 84 萬人
統計資料
累計人數:840383
發表文章:202
回應數量:1239
留言數量:1855
============================================

更新日期: 2013/08/02
賀~~~ 開站 1531 天,瀏覽累計人數終於超過 83 萬人
統計資料
累計人數:830425
發表文章:202
回應數量:1229
留言數量:1845
============================================

更新日期: 2013/07/11
賀~~~ 開站 1509 天,瀏覽累計人數終於超過 82 萬人
統計資料
累計人數:822305
發表文章:202
回應數量:1220
留言數量:1839
============================================


Embedded System_嵌入式系統淺談


================================================
Embedded System_嵌入式系統淺談
by AYO 阿佑

================================================
前言:

Embedded System 嵌入式系統,隨著手機進入 3G 新時代,
而逐漸的熱門,甚至很多人爭相進入這一行,


但是 Embedded System 其實很早就有了唷!! 並不是新名詞,
所以並非新奇的玩意!


Embedded System 嵌入式系統,其實只是個說法,並非真正的執行方式,
請務必要弄清楚喔! 不然.. 有可能被內行人笑話的!


好比說.. 我要賺很多很多錢,享受好的生活! 這是說法!
拼命努力的工作、兼差、投資 等等,則是 實際上的執行方式!


所以.. Embedded System 這是一種說法,並非實際執行方式!
那什麼是 Embedded System 實際執行方式呢?
以下咱們就來談一談!


================================================
Embedded System 嵌入式系統,到底是什麼?

嵌入式系統(Embedded System),

是一種「完全嵌入受控器件內部,為特定應用而設計的專用計算機系統」,

根據英國電器工程師協會( U.K. Institution of Electrical Engineer)的定義,

嵌入式系統為控制、監視或輔助設備、機器或用於工廠運作的裝置。

與個人計算機這樣的通用計算機系統不同,

嵌入式系統通常執行的是帶有特定要求的預先定義的任務

Embedded System 應用範圍為何呢?

應用範圍其實超級廣泛,3G手機、機上盒(MOD、STB)、
智慧型家電、Switch、Router、
或者是 Live CD (WinXPE WinCE Knoppix Ubuntu)、PDA、
車用導航設備 等等...數不勝數...


或者這麼說,並非標準的電腦主機設備,但是有螢幕、有輸入設備、
可以提供人類操作的設備,幾乎都是 Embedded System 囉!


由此可知,Embedded System 應用範圍超級廣,
也有很多讀者問 AYO阿佑 想投入這行,到底要準備些什麼呢??


這麼說好了.. 由於 Embedded System 範圍廣泛,
得問您自己 對哪一種 Embedded System 有興趣,
也許您的興趣在 3G手機,也許您的興趣在 Robot 機器人,
那開發的範疇,就會不太相同囉!


Embedded System 需要具備哪些知識、技能,才能入門呢?

這麼說.. Embedded System 絕對脫離不了自行開發,所以 100% 要寫程式,
而寫程式的話.. 開發環境要最單純,各類平台接受程度最高,又是可攜式的...
就是 C Language (C 語言) 囉!!


但是 AYO阿佑 建議,努力學習 C 語言即可,C++ 到不太有必要!

理由:
1. 您會 C 語言,到 C++環境,當然能夠開發,並且沒有不同
   (因為 C++ 開發環境,向上對應 C 語言)


2. 您會 C++,到 C 語言開發環境,並不是不能開發,會變的綁手綁腳,
   因為 C++ 有許多獨有的 Library,C 語言開發環境,並沒有預設含入,
   所以反而會不順


3. Embedded System 定義已經講清楚了! 非電腦主機環境,
   甚至有些只有很小的 EEPROM,電可擦拭可編程唯讀記憶體
   (Electrically-Erasable Programmable Read-Only Memory),
   所以不可能塞很多東西,因此不要的東西,
   或者不常用的套件(逼著找常用的套件不常用的套件),
   因為這樣所以變得要不斷的對程式瘦身、微化


Embedded System 會使用哪些作業系統呢?

基本上來說 Windows、Linux 都有人用,
但是 Windows 使用的話,需要付費,因此很多做 Embedded System 的廠商,
會選擇使用 Linux,因此 業界 Linux 比較多人用,當然入門門檻相對更高!


Windows 例如說..
Windows CE、Windows Mobil(手機、PDA 用的 Embedded System)


Linux 例如說..
Ubuntu(這已經是相當完整的成品)、
Linux Android (常用於手機的 Embedded System)


由此可知,兩大作業系統家族,都是有人用的,
甚至 iPhone 因為此產品是 Apple 公司的,
因此採用的是 自家的 Mac (麥金塔架構)


但是以泛用性來說.. 擇一投入的話,
應該是 Linux 比較好,相對的門檻會更高


Embedded System 想要研究? 開頭第一步怎麼做?

基本上正式入門第一步,會開始寫 驅動程式,沒錯! 就是驅動程式!

但是因為 寫驅動程式 門檻太高,甚至這啥東西? 驅動程式 搞不好還沒聽過!

所以 AYO阿佑 會建議 :

1. C 語言 練起... 這最簡單!
2. Linux、Windows 擇一,完全搞清楚開機架構,
   如何從電源啟動、開機過程、到開機整個完成
3. 再來寫驅動程式


由於 Embedded System 涵蓋範圍很廣,
一般都變成需要知道 電子領域、電腦領域、甚至電機領域,
單單這三個各自的領域就都很廣泛了,更別提要跨領域了解!


萬事起頭難!
會建議從大家比較常看、常接觸的,電腦、電子領域開始,會最 OK 囉!


================================================
篇後語:
呼~~~這篇寫好長!! 不過..這僅僅是皮毛淺談喔!!
Embedded System 可以講的東西太多!


AYO阿佑 充其量也只是 後學末進,
很多功力高深的前輩,搞不好看到這篇文章,
還會笑 AYO阿佑 說,菜鳥~~ 寫這些玩意~~ 是要來搶飯碗嗎!! 囧~~~~


AYO阿佑 懂得也不是非常多 (跟很多前輩相比,在下仍然是 菜鳥!)
只是希望短短一篇文章,
能夠讓 完全不懂 Embedded System 的讀者,能夠有個初步的了解!


了解了大概狀況之後! 再來衡量 您是否想入行! 或者想接觸!
因為蠻多讀者對 Embedded System 的了解,
以為這只是一個軟體,還是以為這是一個工具而已!


NO... Embedded System 是一個橫跨多個專業領域的一門學問,
可以說是一個 ""冰山"",別以為 水面上看起來是一個小冰塊,
撞上去! 可以連 號稱永不沉沒的 鐵達尼號都沉了


結論有 三:
1. Embedded System 跟山一樣高大,學習務必小心為之,別摔著了!
2. Embedded System 是一個說法,並非實際方式
3. Embedded System 是一個高深的學問,別小看它! 會被前輩們笑話的!


================================================
歡迎轉載,但請務必說明原出處

歡迎參觀 AYO 阿佑 個人的電腦技術園地
http://tw.myblog.yahoo.com/kain-0913/