事情大概要從4年前說起,作者偶然在網路上發現一家中國的單晶片設計公司,他們4K快閃記憶的STC 51族系晶片,價格不到0.5美元,實在便宜到爆。當下決定要弄幾顆來玩玩。如果合用的話以後的專案也多一個選擇。
初玩8051晶片,首要之事是確定8051的C編譯程式,網路上朋友多數使用KEIL C51,花了幾天的功夫弄到了KEIL的C51網路版(破解?),又用了一個星期的時間去熟悉KEIL,KEIL的C51沒有什麼不好,只是作者自命清高,總以為如果有合法的C51可用,就不要去動這些來源怪怪的C51開發系統。在試用KEIL期間,又發現網路版KEIL還附贈了一個病毒,更加堅定作者的決心。
其實真正考慮使用免費的C51自由軟體,是因為作者慣用NOTEPAD++這套文書處理程式,它真是一套很棒的軟體。更讓作者覺得與有榮焉的是NOTEPAD++還是台灣仔的著作(愛用國貨?)。讓作者放棄慣用的NOTEPAD++,去使用KEIL內建的EDITOR,實在是百般不願。另一個原因是作者以前開發STM32族系的單晶片時,曾經用過ARMGCC(也是一套很好的自由軟體),對自由軟體留下很好的印象。
至於要找什麼樣的C51編譯器,才稱得上是堪用的C51編譯器,作者列下了簡單幾個條件。
1。必須有完整的ASSEMBLER(組合語言編譯器)。
2。必須有LINKER程式,可以LINK兩個或以上的目的檔。(OBJ FILE)
3。原始程式可以使用C和組合語言,編譯後產生的目的檔可以互相參考(REFERENCE)。
至於是否為整合型編譯器系統(內建EDITOR,可以在寫好原始碼後立刻進行編譯),則完全不用考慮。ARMGCC也不是整合型編譯系統,但同樣可以寫出很好的程式碼。依作者的使用經験,是不是整合型開發系統,其實一點都不重要。