筆者最近有緣擔任外聘講師。來參加的學員大部份是失業或被裁員資遣者;只有極少部份原是電子業員工,但自己想要學新技能,以利日後轉型;而被公司派來受訓者只有一位,可能是因為我的課程是安排在下午,所以與公司的上班時間衝突所致。我講授兩個課程:C程式設計、ARM單晶片系統架構。
為甚麼要講「C程式設計」呢?因為這個班是嵌入式系統程式設計班,而目前最有名的嵌入式作業系統非Linux莫屬了。不管是桌上型Linux或嵌入型Linux原都是用C語言設計的,因此之故,C程式設計是這個班級的基礎技能。不幸的是,現在的電子相關科系學生都已經不精通C程式設計了,最大的原因是他們已經習慣於使用比較容易設計的套裝軟體,譬如:VB、Delphi、PowerBuilder等。而這些套裝軟體都只適合開發視窗程式或資料庫程式,但是因為進入門檻低,所以僧多粥少,只懂得套裝軟體的人註定是要過「苦日子」了。但是,想要回頭重學C語言,是需要毅力的。而且要進入電子業從事韌體設計工作,必須要兼備硬體的知識才能勝任,這個門檻不是每個想學嵌入式系統程式設計的人都能克服的。
為甚麼要講「ARM單晶片系統架構」?因為ARM系統單晶片(SoC)席捲全球市場,所向披糜;而Samsung的ARM核心系統單晶片更為國內電子業界大量採用。我講課所用的晶片正是大家熟悉的S3C4510B(Samsung乙太網路系統單晶片)。
說到這裡,筆者真為國內業者抱屈。因為就性能而言,國產的ARM系統單晶片(例如:華邦電子的W90N740)並不會比Samsung差,Samsung之所以能成功,就是他們加入ARM的應用教育計畫,藉ARM的高知名度成功地打進學校。現在國內許多大專院校都是使用Samsung的系統單晶片來教育學生學習ARM指令和嵌入式Linux。學生版或稱作教育版雖然和企業版或完整版相較甚遠,但是,只要這些學生習慣使用特定品牌的產品,將來他們都是這些品牌的最佳代言人,而且其應用市場的規模也會因此而擴大。
目前在國內CPU市場中,國產的4位元或8位元微控制器都有教育版為各學校採用,但是16位元或32位元卻都是外商的天下。因此,國內業者應該好好地規劃他們的晶片應用教育計畫,先以國內學校為目標,再推行到中國大陸及其它地區。其中的訣竅,應該可以從Samsung的成功因素中探究出來。
要規劃好系統單晶片的應用教育計畫必須先準備好幾個重要工具:一是作業系統、二是開發工具。前者目前幾乎是Linux莫屬。而開發工具則包含軟體和硬體開發工具。軟體開發工具是指編譯器(compiler)、組譯器(assembler)、連結器(linker)、載入器(loader)、整合開發環境(IDE)。硬體開發工具就是指ICE(In-Circuit Emulator)和公板。
可惜當前國內業者都一窩蜂地從事OEM產品或晶片設計製造,很少有人從事上述的開發工具設計製造。反觀國外,設計這些工具的廠商很多,而且都不斷地隨著各種系統單晶片的更新而推陳出新。因為ARM目前沒有將其Multi-ICE委外製造,所以國內業者勢必要自行研發或和國外廠商合作設計出類似Multi-ICE的工具出來,否則因為Multi-ICE的售價高昂,教育版是不可能用它的。不過,縱使沒有ICE,只要有軟體開發工具和公板也會受到學生們的歡迎。例如:Hitool的試用版雖然只能使用一個月,但是可以不需要ICE,使用軟體模擬的方式,就能讓學生學習ARM指令和設計驅動程式。國內業者應該和這樣的軟體公司合作,在自己的晶片應用教育計畫下,共同推出彼此的產品,開拓市場,創造雙贏的局面。