來講一個很簡單的技術講座,也讓喜歡來逛我的部落格的朋友,
也能感受到一些在系統開發上的技術成長。說成長也不敢當啦,應該說是技術交流吧。
我們都知道:在一些系統開發上,總是一些所謂『系列產品』的觀念,意思就是說:
在一些產品上,他們的核心技術是共同的,而在產品搭配周邊功能不同,而呈現出不同的功能。
譬如:我們的數位相機或是一些外接記憶卡功能的電子產品。往往有可能因為外加記憶卡的不同,
而在產品上必須設定不同的系統規格,但對於核心技術來說:他們還是相通的,
所以,我們在系統開發上所採用的韌體程式,就不可能去維持那麼多支不同功能的韌體程式了。
我們常常會採用所謂的一般系統開發平台上的 Complier Option 功能,來設定不同的組譯結果。
我們就以上述那個不同記憶卡以及所謂的系統開發平台所支持的功能來看這一個例子:
我們用的是:Keil C 的uVision 的系統開發平台,因為他也支持一般我們所常見的 8051 單晶片。
我們可以只定義一個開發Project...但他可以支持許多不同的功能選項:
譬如:我們從第一張圖示可以看到他包含不同的記憶卡的選項
(這些名稱都是我們自己定義的!)
(圖)
SD+NAND ...或是CF + NAND ...甚至只有單獨只支援單一的記憶卡功能。
所以在系統維護上,我們可以同時維護不同的系列產品,但可能只要維護一隻核心韌體程式就好了。
甚至也可以做版本支持度不同的維護。...這些對於我們一系列產品或產品延續性開發的一些技巧。
好了...我們該如何設定呢?!...首先我們要知道如何在同一個Project 中開立許多Complier Option:
(圖)
如上圖的選擇開啟維護視窗:
(圖)
在此維護視窗中,我們就可以設定不同系統功能或支持不同版本的 Complier Option了。
設定完不同的Complier Option 之後,我們就可以選擇不同的條件,來決定有哪一些副程式
是不用組譯進來的,以節省程式容量。二來,也不會讓我們的韌體系統程式過於龐大而難以維護。
(圖)
由上圖我們就看到了:在CF 卡的Complier Option 中:我們根本不需要組譯 SD 相關副程式。
所以,每一支付程式的圖像顯示不同組譯方式。(怎麼設定?自己玩一下就知道了!)
當然,有一些人也不一定會用這種方法來決定Complier Option...因為他們也喜歡在程式裡的
一些小角落來決定一些程式組譯上或是程式選項的不同:像下圖中,直接在程式中定義
組譯選項變數等等。 而這些程式小角落的組譯選項變數,
也是可以直接拉到整個Complier Option中的。
(圖)
譬如:在下圖中,一樣的 CF 記憶卡的組譯選項條件下,我們還可以利用不同的組譯選項變數
來決定不同的CF 記憶卡所支持的容量大小,或是不同廠牌或規格的CF 記憶卡:
(圖)
所以,如此的系統開發平台的選項功能設定,搭配不同的Complier Option ,
會讓我們在系統韌體程式的維護上,達到簡單容易維護的目的。
----
所以,我們從這一個例子中,我們可以看到一個很簡單的系統開發整合環境,
這一種整合出來的系統開發平台,不管對於一組韌體開發人員們,或是開發人員少,但是
系列相關產品多的韌體系統程式的維護來說,都是不錯的開發工具環境的設定。
當然啊...這一些設定的技巧,也不是說我說了才有這種東西,然後,您也會問說:
我怎麼知道的呢?!...這一些都是有機會去看別人的程式,或是您有機會進大公司磨練之後,
所累積的,....所以,我也常說:如果您有機會進大公司時,也不要吝於不學習,
大公司本來就是一個巨人,讓您有機會站在巨人肩膀上去看世界的啦。
但反過來,等您經歷這一段機會之後,那您自己會不會把握這樣的機會,
來建立屬於您自己的系統開發平台呢?!...
好了,講了這一點點經驗交流之後,就剛好讓我有點心有戚戚焉了...
因為:現在這一些單晶片MCU 的種類是越來越多了...每一家所謂的單晶片 MCU 的IC 設計公司,
就把這一個所謂我們系統開發人員所喜歡的系統開發平台給忽略了...
這些公司都以為我們這些系統開發人員是吃飽撐著,一天到晚就喜歡換MCU 來建立不同的
系統開發平台?! ....我說了:以前搞IC 或系統開發的錢好賺,這種天天換平台的事,
值得我們去鑽研的...但是現在呢?!不好意思,產品更新的速度一日千里,不要說:
換MCU 像吃飯這麼頻繁,就連系統版本更新速度也是日益頻繁 。
更何況:有時一些產品是之前工程師所留下的『遺毒』...後面承接的工程師的程度也未必
相提並論的。您也不能期望天天都有台清交優秀的畢業生來讓您請。
(說真的~這種東西就算是台清交畢業的又如何?沒有摸過或沒試過的就是不知道!)
所以啦 ...您們這些MCU 單晶片的IC 設計公司的老闆們,您們就饒了我們吧。
時代不同了,我們只想用簡單的方法來賺錢而已,
那些看起來彆彆扭扭的開發工具平台就不要拿出來吧!(雖然這種事情我以前也幹過~)
或是:想辦法去跟這些台面上作開發工具的公司合作吧。
(這倒是真的~國外人家也會找專業公司合作的 ...您看ARM 還不是搞IC 跟搞開發工具
是不同公司的!這一點我就覺得我們國內的這些單晶片MCU 的IC設計公司就不知道在想什麼?
好像總覺得好像自己也不比別人笨,這種東西我們自己也搞得出來,
說真的,作這種東西也沒啥規劃,也沒有定義明確的開發平台工具介面,就邊走邊改似的,
結果還不是就是喜歡壓榨員工來幹苦工...搞到最後做出來也沒比較好用!)
不要以為您單晶片MCU 有多少利潤給我們撈?靠省這種錢來賺錢的?未來一定有人會搶您生意的啦。
也不是您搞IC 設計的就比較聰明,我們搞系統的就是傻B 一群了。時代不同了囉。
真的~時代不同了....學校老師也不一定喜歡教學生寫韌體程式了啦,更何況學生也不一定想學啊。
所以啦,如果您們希望未來您們的MCU IC能大賣賺錢的話,
您們還是好好的『善待』我們這一群LKK 的老工程師們吧。
----
附記: 關於寫這一篇故事的源由,是因為上週去找一位通路商朋友時,他們跟我說:
有一家國內某知名的MCU IC 設計大廠,找他們談市場的一些應用產品市場,
還信誓旦旦的跟通路商拍胸脯保證:如果您們在應用產品市場上有需求的話,
我們公司一定會支持您們,那怕為您們重新開一棵MCU 型號也沒問題。
朋友說:我一點也沒有感受到他們的誠意,只感覺他們只是找不到好應用產品市場,
然後只是想跑來跟我騙一些應用產品的市場規格而已罷了,然後自己跑去作而已。
哈~哈~我聽了在心裡嘀咕說:果然,這些MCU 的IC 設計公司還真的以為別人搞系統應用的,
是傻B 一群...真的時代不同了啦。開IC 這種事在今日滿街都是IC 設計公司時代裡。
想作新生意?還是換個腦袋想想吧。