發表文章

目前顯示的是 6月, 2018的文章

[原創] 使用SDCC開發新唐N76E003 1T 8051

圖片
新唐科技2017年推出了一顆新的1T 8051 MCU,在一個TSSOP-20的封裝裡提供高達18PIN的I/O接腳,並且與STM8S003 pin to pin相容。內建1T 8051核心,具18KB Flash程式記憶體、1KB SRAM(256Byte + 768Byte XRAM),周邊包含6通道16-bit PWM、8通道12-bit ADC、SPI介面、I2C介面及兩組UART,小小一顆功能卻非常強大,可說是麻雀雖小,五臟俱全。 N76E003開發板 : http://goods.ruten.com.tw/item/show?21819007454427 另外傳統的8051指令週期為12T,也就是一條指令至少要12個時脈來完成。大部分的指令都可以在1到2個指令週期完成,而除法這種較複雜的指令則要4個指令週期來完成。所以傳統的8051每條指令所需的時脈會是12的倍數。 然後新唐的1T 8051意思就是指令週期為1T,一條指令至少要1個時脈來完成,而每個指令所需的時脈都會是1的倍數,好處是程式的執行速度可能比較快,缺點是如果在優化timming較不容易計算每條指令所花費的時間。 http://www.keil.com/dd/docs/datashts/intel/ism51.pdf 不過一點較可惜的部分新唐官方提供的BSP僅支援keil c51和IAR,以大家拿手的keil來說免費評估版本code size具2KB限制,除非花錢去買正版軟體不然18KB的flash也只能看著流口水,且礙於code size限制這麼多功能可能也發揮不起來,於是著手研究看看如何使用sdcc進行開發。 一、SDCC SDCC: Small Device C Compiler,一套開源的微控制器C語言編譯器,起初僅針對MCS-51系列的微控制器所開發,現在除了MCS-51以外已經支援Z80、STM8、PIC14、PIC16等常見的微控制器。 我們可以從官網下載並安裝最新版本的SDCC: http://sdcc.sourceforge.net/snap.php#Windows 安裝結束後可以勾選add to system path以便我們能夠直接在cmd或ps中直接使用sdcc。完畢後要重新開機才會套用環境變數。 二、使用SDCC別於Keil C51的部