『壹』 contiki系統在stm32F103平台上運行hello-world問題
是的 我也遇到了,應該是printf的時間庫函數問題,我還了另外平台的庫就可以了。
另外,今天剛了解到,官方用的應該是SDCC編譯器 估計和編譯器有關
『貳』 gcc編譯器可以用於單片機的開發嗎
可以的,需要交叉編譯。我們公司就在做這個。原來使用sdcc做的編譯器,現在改為gcc了。
『叄』 51單片機中 C語言 P2^3與P2.3的區別
P2^3表示的就是P2.3,但在KeilC中P2.3的表述是不合法的。其實這只是編譯器的語法而已。
『肆』 sdcc版是啥意思
SDCC(Small Device C Compiler)是一個優化的 ANSI - C交叉編譯器,目標CPU為基於Intel 8051, Maxim 80DS390, Zilog Z80 和Motorola 68HC08 的單片機。
SDCC同時帶有一個源代碼級調試工具SDCDB,使用的是Daniel's s51模擬器當前版本。SDCC是由Sandeep Dutta 所寫的,並依據GPL license 發行。
sdcc的特點:
1、SDCC的sdas和sdld 是基於ASXXXX的交叉編譯工具和鏈接工具,他們都是免費開源的軟體,依據GNU General Public License (GPL) 發布。
2、有針對特定MCU的編程語言擴展,可以高效的使用基本的硬體資源。
3、有大量的標准優化,如全局字表達式削減,循環優化(無任何操作的循環優化,歸納變數循環優化,逆循環優化), 常量合並的傳播,復制傳播,死代碼刪除, 'switch'語句的轉移表優化。
4、針對特定MCU的優化,包括全局寄存器分配演算法。
5、特定MCU後端適應能力,能夠很好的適配其他的8位的MCU。
(4)sdcc編譯器開發stm32擴展閱讀:
交叉編譯出現和流行是和嵌入式系統的廣泛發展同步的。常用的計算機軟體,都需要通過編譯的方式,把使用高級計算機語言編寫的代碼(比如C代碼)編譯(compile)成計算機可以識別和執行的二進制代碼。
比如,在Windows平台上,可使用Visual C++開發環境,編寫程序並編譯成可執行程序。這種方式下,我們使用PC平台上的Windows工具開發針對Windows本身的可執行程序,這種編譯過程稱為native compilation,中文可理解為本機編譯。
然而,在進行嵌入式系統的開發時,運行程序的目標平台通常具有有限的存儲空間和運算能力,比如常見的 ARM 平台,其一般的靜態存儲空間大概是16到32MB,而CPU的主頻大概在100MHz到500MHz之間。
這種情況下,在ARM平台上進行本機編譯就不太可能了,這是因為一般的編譯工具鏈(compilation tool chain)需要很大的存儲空間,並需要很強的CPU運算能力。
為了解決這個問題,交叉編譯工具就應運而生了。通過交叉編譯工具,我們就可以在CPU能力很強、存儲空間足夠的主機平台上(比如PC上)編譯出針對其他平台的可執行程序。
要進行交叉編譯,要在主機平台上安裝對應的交叉編譯工具鏈(cross compilation tool chain),然後用這個交叉編譯工具鏈編譯我們的源代碼,最終生成可在目標平台上運行的代碼。