如果不怕碰java, 也可以選Android...既然有碰過C#, Java應該不難入手才對
如果想要從底層開始研究, beagle board是個不錯的切入點, 網路上的資源也不少. 這樣可以學習從底層建構完整的Android OS (其實就是Linux). 有許多需求是要你從OS開始建構的...(之前參加過類似的案子, 所以應該是有需求)
我其實沒碰kernel這一塊, 所以這方面請你自己找找吧(有稍微study, 但是沒有實際開發, 編譯kernel不算數的)
書的話...我通常會先推:
http://www.books.com.tw/exep/prod/booksfile.php?item=0010418239
另一個常用到的網路資源是:
http://www.gnu.org/software/libc/manual/
不過我記得Android裡面的libc是google自己做的?
toolchain可以考慮用(有持續在更新, 有免費版可用):
http://www.codesourcery.com/
一些可能有用資料:
http://www.arm.com/community/software-enablement/linux.php
http://www.busybox.net/
http://www.debian.org/ports/index
beagle board:
http://beagleboard.org/
http://beagleboard.org/project/0xdroid/
jserv的部落格有許多好文:
http://blog.linux.org.tw/~jserv/
等等...其他你再慢慢找吧...以上都是ARM...如果你要開發MIPS...不知道有沒有像beagleboard這樣的開放硬體平台可以用
不過實際上開發時, 許多廠商會提供專用的SDK, 還需要研究這些SDK怎麼使用XDD
.net為主,可以考慮Windows Mobile
http://msdn.microsoft.com/zh-tw/windowsmobile/default.aspx
iPhone 正夯,要不要來啊?
若是您所想要接觸的Embedded System是沒有OS的,那麼您可以從MCU韌體設計切入,比方說TI MSP 430或者Microchip 的PIC單晶片。
而從MCU韌體設計切入,那麼您還需要從電子電路開始瞭解,建議您可以去書局或是網路上買陳龍英的電子學來看,或者到TI與Microchip的官網找尋相關的電子檔案來看,基本這二家都有提供相當豐富的資訊,只是都是英文而已。
若是您想要從有OS架構的Embedded System切入,那您可以選擇的有Linux與Windows,我是比較推崇Linux,原因很簡單,就目前的就業市場上來說,由於Android的崛起,目前台灣的廠商大多在徵求linux與Android的人才居多。
若是從Linux切入的話,您所要懂的知識包含linux系統的架構、學習 linux程式開發工具,以從中了解系統程式的概念、了解Embedded Linux的架構、toolchain使用與程式移植技巧、了解上層應用程式如何與Driver進行溝通,要學的東西不少,建議您可以找building embedded linux system與linux device driver的書籍來看,這二本都是O'Reilly的書籍。
若是您覺得看書要花很多時間,又不能持久的看書,也擔心看書會有卡住看部下去的狀況,那您可以找一下網路教學影片吧!
介紹您一個好地方,您可以去看看:http://www.powercam.cc/ittraining
若你想花一些經費快速學會可以轉業科技業可以參考這的培訓課程
http://www.ittraining.com.tw/etd/course/embedded_subsidy1.html?ref=79