2013-10-09 2 views
3

마이크로 컨트롤러를 프로그래밍 한 적이 없습니다. 저는 Arduino를 가지고 놀았으며 프로그래밍 언어가 IDE에 의해 동적으로 생성 된 보일러 플레이트 코드와 함께 C라는 것을 발견했습니다. 그래서 : C/C++에서 Arduino/마이크로 컨트롤러를 사용하지 않고 Linux/Windows에서 운영 체제를 사용하지 않으면 어떻게 될까요? 표준 라이브러리 이외의 다른 프로그램을 사용해야합니까? 또는 malloc/free 및 setjmp/longjmp와 같은 특수 기능에 제한이 있습니까?운영 체제가없는 마이크로 컨트롤러에서 C의 한계는 무엇입니까?

openssl 또는 crypto ++와 Arduino Due (32 비트 암 프로세서 사용)와 같은 암호화 라이브러리를 컴파일하고 사용하고 싶습니다.

답변

6

컴파일러에서 부과 된 것 외에는 제한이 없습니다. 분명히 "운영 체제"가 없어도 "운영 체제 호출"을 만들 수는 없지만 누군가가 필요한 기능을 제공하는 라이브러리를 작성하는 한 참으로 "제한이 없습니다". 암호화 - 완료되었습니다. Malloc - 쉬워. TCP/IP - 알았어. Arduino 라이브러리가 많이 있습니다. 재미 있습니다. 그것을 위해 가라.

런타임 오류를 방지하는 것을 목표로하기 때문에 일반적으로는, (의 malloc/무료) 임베디드 플랫폼에서 동적 메모리를 피할 수 있지만 http://www.nongnu.org/avr-libc/user-manual/malloc.html

+2

에서 몇 가지 유용한 정보를 제공합니다. –

+1

@ MartinBeckett - 예! 그리고 당신이 기억을 "소유"하기 때문에, 당신은 공유 할 필요가 없으며, 기억은 소중합니다. 당신은 보통 질투심으로 그것을 지키기를 원합니다. 그리고 당신은 대부분의 할당을 하드 코딩 할 수 있습니다. 하지만 그것이 불가능하다는 것을 의미하지는 않습니다. "제한이 없다"는 것은 "좋은 생각"과 같지 않다. ... – Floris

+0

AVR에 malloc이 있고, 하버드 아키텍처 (IIRC)가 있고 mmu가 없다는 것에 놀랐다. –

관련 문제