2013-10-09 35 views
3

我從來沒有編寫過微控制器。我一直在玩Arduino,並且發現編程語言只是C語言,其中包含由IDE動態生成的樣板代碼。所以:在沒有操作系統的Arduino /微控制器上的C/C++和Linux/Windows上的C上,我不能做什麼?任何只使用標準庫的程序是否應該工作?還是有專門的功能,如malloc/free和setjmp/longjmp的限制?C對沒有操作系統的微控制器有什麼限制?

我問,因爲我想編譯和使用像openssl或crypto ++和Arduino Due(使用32位ARM處理器)的加密庫。

回答

6

沒有限制,除了由編譯器施加的限制。顯然,當你沒有「操作系統」時,你不能進行「操作系統調用」,但只要有人編寫了一個提供所需功能的庫,實際上「沒有限制」。加密 - 完成。 Malloc - 簡單。 TCP/IP - 知道了。很多Arduino庫。好有趣。去吧。

http://www.nongnu.org/avr-libc/user-manual/malloc.html

+2

一些有用的信息,儘管通常可以避免動態內存的嵌入式平臺(的malloc /免費)上,因爲你的目標是避免運行時錯誤。 –

+1

@MartinBeckett - 是的!而且既然你「擁有」了內存,你不必分享,而且內存是寶貴的,你通常想要嫉妒它,而且你可以硬編碼大部分分配。但這並不意味着它無法完成。 「沒有限制」與「這是一個好主意」不一樣...... – Floris

+0

我必須檢查,我很驚訝AVR有一個malloc,它是哈佛架構(IIRC),沒有mmu –

相關問題