임베디드 프로그래밍 학습을 위한 최고의 플랫폼은 무엇일까요?[닫은]

StackOverflow https://stackoverflow.com/questions/88626

  •  01-07-2019
  •  | 
  •  

문제

저는 임베디드 프로그래밍(주로 C로, ASM도 공부하고 싶습니다)에 대해 배우고 싶은데, 어떤 플랫폼이 가장 좋을지 궁금합니다.나는 Atmel AVR을 사용하고 stk500으로 프로그래밍한 경험이 있으며 상대적으로 쉽다는 것을 알았습니다.저는 특히 AVR Studio와 레지스터 상태를 볼 수 있는 디버거를 좋아합니다.

하지만 시간을 내어 배울 수 있다면 업계에서 널리 퍼져 있는 것에 대해 배우고 싶습니다.나는 누군가가 더 나은 제안을 하지 않는 한 ARM을 생각하고 있습니다.

또한 몇 가지 참고 자료를 찾고 있는데 ARM 웹사이트에서 도서 섹션을 찾았습니다. 만약 어떤 책이 다른 책보다 기술적으로 더 나은 책이라면 미리 알려주시면 감사하겠습니다.

내가 찾고 있는 마지막 것은 STK500과 같은 몇 가지 버튼 등이 있는 프로토타입/프로그래밍 보드입니다.

감사합니다 =]

도움이 되었습니까?

해결책

"임베디드 프로그래밍"은 매우 광범위한 용어입니다.AVR은 해당 범주에 속하지만 사용하기 더 간단하고 덜 강력하다는 점에서 ARM보다 한 단계 낮습니다.

ARM을 가지고 놀고 싶다면 Nintendo DS나 Gameboy Advance를 구입하세요.내부 하드웨어에 비해 가격이 매우 저렴하며(대량생산의 경이로움), 둘 다 무료 개발 툴체인 컴파일할 수 있는 gcc를 기반으로 합니다.

임베디드 리눅스를 가지고 놀고 싶다면, 비글보드 가격은 150달러에 불과하고 수많은 기능을 갖추고 있어 좋은 옵션이 될 것으로 기대됩니다.

개인적으로 저는 AVR이 더 작은 크기의 8비트 플랫폼에 가장 적합하고, ARM이 더 크고 더 강력한 32비트 기반 플랫폼에 가장 적합하다고 생각합니다.많은 AVR 팬처럼 나도 PIC를 좋아하지 않습니다.거의 모든 면에서 더 나빠 보입니다.또한 모든 유형의 BASIC을 작성해야 하는 항목은 피하십시오.

다른 팁

그냥 가지고 놀고 싶다면 Arduino 플랫폼(http://www.arduino.cc).버전에 따라 ATmega168 또는 ATmega8을 기반으로 합니다.C와 유사한 언어를 사용하며 자체 IDE가 있습니다.

나 자신은 현재 9년 동안 임베디드 프로그래밍 분야에서 일했으며 TI MSP430, Atmel AVR(몇 가지 버전)에 대한 경험이 있으며 곧 ARM을 사용할 예정입니다.

내 제안은 이더넷 컨트롤러나 CAN 컨트롤러와 같은 프로세서에 몇 가지 추가 기능이 있는 제품을 선택하는 것입니다. 가능하면 2~3개도 구입하는 것이 좋습니다.임베디드 장치는 함께 사용하기에도 좋지만 일단 CAN을 통해 다른 유사한 장치와 통신하거나 네트워크에 접속할 수 있게 되면 훨씬 더 재미있게 사용할 수 있습니다.

ARM은 널리 사용되는 임베디드 플랫폼 중 가장 훌륭한 명령어 세트를 갖추고 있어 비직교 레지스터나 분기 지연 슬롯과 같은 이상한 세부 사항에 얽매이지 않고 임베디드 플랫폼용 소프트웨어 작성의 일반 원칙을 자유롭게 선택할 수 있습니다.많은 에뮬레이터가 있습니다. ARM 자체 에뮬레이터는 무료는 아니지만 주기가 정확합니다.다양한 프로그래밍 가능 ARM 기반 하드웨어도 저렴하고 쉽게 구할 수 있습니다.

ADI 검은지느러미 프로그래밍하기가 매우 간단한 아키텍처이기 때문에 또 다른 옵션이지만 해당 경로를 선택하면 상당히 무거운 DSP 작업도 수행할 수 있습니다.어셈블리 언어도 꽤 제정신인 데 도움이 됩니다.

검은지느러미 우표 보드는 저렴한(마지막으로 확인했을 때 ~$100) 방식이며 무료 GCC 도구와 uClinux를 지원합니다.

어떤 아키텍처를 선택하든 먼저 toolchain\SDK를 다운로드하고 샘플 프로젝트와 튜토리얼을 살펴보는 것이 좋습니다. 일반적으로 약간의 놀이를 해보세요.하드웨어를 건드리지 않고도 시뮬레이션을 통해 아키텍처에 익숙해질 수 있는 경우가 많습니다.

그만큼 TI MSP430 마이크로컨트롤러 프로그래밍 방법을 배우기 위한 훌륭한 플랫폼입니다.TI는 다양한 무료 도구 그리고 일부 저렴한 평가 보드 ($20부터 시작).게다가 이 제품은 저전력의 최신 마이크로컨트롤러입니다.

좋은 선택은 Microchip의 PIC18입니다.

  • 인터넷에는 꽤 많은 자료, 문서, 튜토리얼 및 프로젝트가 있습니다.

  • 무료 IDE 및 컴파일러.

  • 몇 분 안에 자신만의 플래시 라이터를 가져올 수 있습니다.(디버거가 작동하려면 더 열심히 노력해야 하지만)

  • 학생인 경우(또는 학생 이메일 주소가 있는 경우) Microchip에서 무료 샘플 칩을 보내드립니다.따라서 기본적으로 거의 아무것도 없는 완전한 개발 환경을 가질 수 있습니다.

  • PIC는 업계에서 매우 널리 퍼져 있습니다.특히 로봇의 컨트롤러로서 훨씬 더 많은 일을 할 수 있지만 어떤 이유에서는 그렇습니다.

아두이노 다른 플랫폼도 많이 있지만 요즘 초보자가 선택하는 플랫폼인 것 같습니다.나는 올리멕스 개인적으로 보드를 사용하지만 실제로는 초보자용이 아닙니다.

마이크로칩의 PIC CPU 제품군은 초보자, 특히 어셈블러로 프로그래밍하려는 경우에도 탁월합니다.

그런데 어셈블러는 예전만큼 많이 사용되지 않습니다.임베디드의 일반적인 규칙은 4k 이상의 메모리가 있으면 C를 사용하는 것입니다.이식성을 확보하고 코드를 더 빠르게 개발할 수 있습니다.

나는 그것이 당신의 기술 수준과 칩으로 무엇을 하고 싶은지에 달려 있다고 생각합니다.나는 일반적으로 사용 가능한 주변 장치에서 사용할 내장 칩을 선택합니다.USB 포트를 원한다면 USB가 내장된 포트를 찾고, 아날로그-디지털을 원한다면 ADC 등이 있는 포트를 찾으세요.간단한 애플리케이션이라면 8비트를 사용하고 심각한 숫자 처리가 필요한 경우에는 32비트를 사용하십시오.

TI의 비글보드를 추천해드리고 싶습니다.Omap3가 있습니다.이는 Cortex-A8 ARM11 CPU, C64x+ DSP 및 비디오 가속기이기도 합니다.

보드에는 값비싼 jtag 장치가 필요하지 않습니다.시작하려면 직렬 케이블과 SD 카드만 있으면 됩니다.보드 비용은 $150에 불과하며 매우 활동적인 커뮤니티가 있습니다.

www.beagleboard.org

귀하의 질문에 대한 답변이 다음과 같습니다. 이 질문.

게다가 임베디드 프로세서 산업은 매우 세분화되어 있으며 "데스크탑" 프로세서 산업을 위한 Intel/x86과 같은 주요 플레이어가 없습니다.ARM 프로세서는 큰 점유율을 차지하고 있으며 MIPS도 마찬가지이며 사용 가능한 칩(TI의 MSP430 등)과 같은 더 작고 구체적인 마이크로 컨트롤러가 많이 있습니다.

문서화에 관해서는 저는 하루 종일 임베디드 개발을 하고 있는데 (소프트웨어 개발자로서) 우리가 액세스할 수 있는 문서는 다소 드물습니다.가장 좋은 방법은 프로세서 제조업체 사이트에서 제공되는 설명서를 사용하는 것입니다.

보세요 처리 관련 Arduino 및 배선 보드.

그냥 재미있게 즐기고 싶다면 Parallax Propeller 칩을 사용해 보세요.HYDRA 게임 플랫폼은 정말 대단한 것 같습니다.현재 이를 위한 100달러짜리 C 컴파일러가 있습니다.

저는 BASIC 스탬프로 시작하여 SX 칩과 PIC를 거쳐 8051, 그 다음에는 68332, 다양한 DSP, FPGA 소프트 프로세서 등으로 올라갔습니다.

8051은 현실 세계에서 더 유용합니다 ...그 일은 사라지지 않을 것이다.수많은 파생 상품과 미친 것들이 있습니다.(DS80C400만 멀리하세요.) 에너지 산업에는 이런 것들이 넘쳐납니다.

작은 것부터 시작하세요.외부 RAM과 많은 레지스터가 있다면...그거랑 SBC랑 무슨 차이가 있나요?

몇 달 전에는 68HC05 및 Z80과 같은 8비트, 나중에는 AVR 및 MSP430(16비트)을 사용하여 작업했습니다.그러나 가장 최근 프로젝트는 ARM7에 있었습니다.몇몇 제조업체는 모든 색상과 크기(음, 실제로 색상은 아님)의 ARM 컨트롤러를 제공합니다.

ARM(7)은 8비트 아키텍처를 대체합니다.성능이 더 뛰어나고(대부분의 8비트보다 더 빠른 명령 주기의 32비트 RISC) 메모리가 더 많으며 여러 IO 구성으로 사용할 수 있습니다.저는 가격도 저렴한 NXP LPC2000 컨트롤러를 사용하여 작업했습니다(32비트의 경우 1달러 미만!).

유럽에 계시다면 http://www.olimex.com/dev/index.html 좋은 저가형 개발 보드가 있습니다.다른 지역에서도 작동합니다 :-)

재미있는 프로젝트를 테스트하려면 다음을 살펴보세요. xgamestation

그러나 보다 산업용으로 사용되는 원칩 솔루션 프로그래밍의 경우 다음을 참조하십시오. 사진

컴퓨터 아키텍처 과정에서는 PIC와 AVR을 모두 사용해야 했습니다.내 생각에는 PIC가 작업하기 더 쉬웠던 것 같은데, 아마도 PIC가 우리가 가장 많이 작업했고 익숙해지는 데 가장 많은 시간이 있었기 때문일 것입니다.우리는 AVR을 몇 번만 사용했기 때문에 완벽하게 이해할 수는 없었지만 지나치게 복잡하거나 적어도 다른 것보다 더 실망스럽지 않았습니다.

Microchip 웹사이트에서 마이크로프로세서 샘플을 주문하여 시작할 수도 있다고 생각합니다.

두 번째:

아두이노 플랫폼 http://www.arduino.cc

HTH

학습을 위해 AVR을 지나칠 수 없습니다.이 칩은 가격이 저렴하고 외부 부품 없이 작동합니다. 또한 포트에서 직접 LED를 구동하기에 충분한 전류를 공급합니다.

lady-ada's와 같은 값싼 프로그래머로 시작할 수 있습니다. USBTinyISP (키트당 USD$22) USB 포트에서 5V로 보드에 전원을 공급할 수 있습니다.무료 도구인 WinAVR(GCC 기반) 및 AVRStudio를 다운로드하여 소규모 프로젝트를 즉시 실행해 보세요.

예, AVR에는 제한 사항이 있습니다. 하지만 마이크로 컨트롤러용 소프트웨어 개발은 ​​주로 리소스를 관리하고 이러한 문제에 대처하는 것입니다.강력한 ARM 플랫폼을 위한 호비스트 프로젝트를 만들 때 스택 공간, RAM 또는 ROM 부족과 같은 문제가 발생할 가능성은 거의 없습니다.

즉, ARM은 업계에서 널리 사용되는 훌륭한 플랫폼이기도 하지만 학습을 위해서는 AVR을 적극 권장합니다.

저는 Microchip의 PIC18F 시리즈를 제안하고 싶습니다.방금 RealICE 회로 내 에뮬레이터를 사용하여 개발을 시작했지만 pickit2는 가격 대비 괜찮은 디버거입니다.AVR에 대해서도 이렇게 말할 수 있지만 웹 전체에서 이 장치에 대한 추종자가 많습니다.모든 PIC 관련 잡담 덕분에 버그가 있지만 제대로 작동하는 내장형 USB 장치를 며칠 내에 실행할 수 있었습니다.

PIC에 대해 내가 마음에 들지 않는 유일한 점은 많은 샘플 코드가 데모 보드에 매우 얽혀 있다는 것입니다.이로 인해 필요한 섹션을 분리하기가 어려워지고 애플리케이션을 위해 구축 및 실행되는 애플리케이션이 계속 유지될 수 있습니다.

Texas Instruments는 매우 저렴한 가격으로 매우 흥미로운 개발 키트를 출시했습니다.그만큼 eZ430-Chronos 개발 도구 USB 디버그 프로그래머와 USB 라디오 액세스 포인트를 포함하여 스포츠 시계의 디스플레이와 다양한 센서를 갖춘 MSP430이 포함되어 있습니다. 50$에

도 있습니다 다음을 포함하는 위키 많고 많은 정보.

나는 이미 StackExchange 제안을 만들었습니다. eZ430-Chronos 키트용.

에서 제공하는 개발자 키트를 사용해 보고 배워야 합니다. 임베디드 아티스트.키트를 받은 후 NXP에서 제공하는 교육용 비디오와 비디오를 확인하세요. 이 비디오는 최대한 자세하지는 않지만 많은 내용을 다루고 있습니다.ARM을 첫 번째 아키텍처로 학습하고 실용적인 작업을 시도할 때 발생하는 문제는 다음과 같습니다.

  • 개발사를 구매해야 합니다.전부.
  • 당신은 좋은 것이 필요합니다 조만간 ARM 시작 코드를 접하게 될 것이기 때문에 ARM 어셈블리를 배우려면 초보자에게 상당한 부담이 됩니다.내가 언급한 책은 모두 일부 C 프로그래밍을 다루고 있습니다.
  • 위에서 언급한 책을 다음과 같은 특정 프로세서에 대한 사용자 가이드와 결합하세요. 이 하나.위의 책과 함께 이것을 공부하는 것이 ARM 프로세스를 배우는 유일한 방법이므로 이것을 얻으십시오.상세히.
  • ARM 어셈블리에서 C 프로그래밍으로 전환하려면 다음을 읽어야 합니다. , 다른 ARM 프로세서를 다루지만 C 초보자에게는 더 쉽습니다.단점은 ARM 어셈블리에 대해 설명하지 않는다는 점이지만 이것이 첫 번째 책이 필요한 이유입니다.

쉬운 방법은 없습니다.

mikroElektronika는 좋은 ARM을 가지고 있습니다. 무대 C, 파스칼, 베이직 컴파일러 그것은 당신의 요구에 맞을 수도 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top