我不知道自己算是個什么機工程師,什么都做過一點,MCU、DSP、ARM、MIPS、嵌入式X86,經(jīng)常見到有人討論51好還是AVR好?PIC好還是AVR好?ATMEGA128比ARM差多少?8比32位怎么比的?
我可從來不為這些事煩惱,熟優(yōu)誰劣相信大家一定能找出大堆理由;
我用51的時候剛學過98,我98考試不及格,補考還是作弊過的,用51還連錯了373的輸入輸出,直接當573用了,因為人們總是把373的原理圖畫得和573的封裝一樣,結果畢業(yè)設計沒能成功;
由于成績差我沒能上研究生心里一直有疙瘩,直到一個朋友研究生畢業(yè)設計用8031做數(shù)據(jù)采集來向我垂詢的時候,才覺得不上有什么小不了的呢?因為他還在考研究生的時候,我已經(jīng)在領導搭建PC104控制DSP陣列的系統(tǒng)了;
我用PIC的時候是1996年,長條的帶EPROM窗口的28腳雙列直插PIC16C73,功能非常強大,帶AD和各種新奇的外圍,少得可憐的的指令集,象我這樣記心不好的人最合適用,盡管要經(jīng)常在BANK0和BANK1之間換來換去,但總的來說想用它干嗎都能實現(xiàn),只是在不加去藕電容的時候沒法啟動,4K程序空間好像已經(jīng)很大了,寫一個復雜的閉環(huán)AGC程序最多用去1K半,也不知道現(xiàn)在的PIC怎樣了,我以前叫她“P”“I”“C”,現(xiàn)在有人叫她“屁克”,不知道變化是不是那么大。
我在用TI的C30時,發(fā)現(xiàn)AD的SP2181有條BDMA總線可以只用一片8位的EPROM就能引導,甚至可以用IDMA接口完成所有的被連接,馬上換了對象,盡管定點比浮點少了很多樂趣;C31出來的時候我又盯上了ADSP21060,因為我們研究所的課題是不太在乎成本的,不過ADSP21062的四合體芯片還是太貴,一片起訂,三萬多一片;
在我離開研究所的時候,最大的遺憾莫過于沒有親手搭過C60,因為我不知道有誰可以用烙鐵焊BGA,那個時候我還只會焊直插的器件;
幾年后,那里的人還在用屁克16C73和ADSP2181,不知道還能不能買到;
我做的第一個ARM是TI的ARM+DSP的,去那公司上班第一天就學會了焊貼片器件,比焊插件還簡單,迅速,不過我焊得很慢,因為我的指甲老是撕不開盤裝電阻的塑料包皮;后來學會了先把他們放到一排買來的貼了標簽的塑料小匣子里,不過我還是焊得很慢,因為我取出的電阻有80%肚皮朝天,把他們翻過來可是不那么容易;
我做2410的時候,從第一次看到資料到系統(tǒng)原形可以運行只花了不到兩個月的時間;
在學會用C語言給嵌入式系統(tǒng)編程的時候,很多人已經(jīng)在用嵌入式操作系統(tǒng)了,現(xiàn)在,我老了,以前還可以用匯編寫FFT,現(xiàn)在卻根本一竅不通MPEG4了,所以我經(jīng)常提倡用硬件代替軟件,然而用高速的Xcale配現(xiàn)成的WindowsMediaPlayer做PMP豈不是最快捷簡單的方法嗎?只不過貴一些而已;
AVR快嗎?循環(huán)訪問下SRAM就知道了,效率還不如51;
IAR比ICC好嗎?以時間優(yōu)化為目標,你會發(fā)現(xiàn)他們的代碼量不相上下;
寄存器多好用嗎?匯編的時候就知道容易亂套了,總是不如A和W那么清爽,最慘的是不夠多的時候,最氣的是中斷的時候要保護那么多人質,這時候你會發(fā)覺ARM的架構真TMD的好,但是骨子里她根本跑不了那么快,CASH(E)有限啊!
我從來不覺得什么好什么不好,合適的就是好的,覺得啥合適就用啥,不就是CPU加些外圍嘛。
飛機剛發(fā)明的時候,飛行員可以造、開、和修飛機,后來可是不行了,能飛已經(jīng)不得了了,還別說造了,維護的都地位很高;
剛出道的時候,除了芯片不能做,想干啥干啥,現(xiàn)在可不行了,不過開不了飛機還可以打飛機嘛;
只要有一雙勤勞的手,想打哪架打哪架。