Pi로 애플리케이션을 개발하는 것의 차이는 소프트웨어 개발 툴체인의 차이뿐만 아니라 하드웨어 차이로 인해 마이크로 컨트롤러로 애플리케이션을 개발하는 것과 매우 다르거 나 다소 유사 할 수 있습니다.
8 비트에서 64 비트 프로세서에 이르기까지, 몇 K의 RAM에서 몇 기가 바이트의 RAM에 이르는 광범위한 마이크로 컨트롤러가 있습니다. 더 유능한 마이크로 컨트롤러는보다 Pi 같은 경험을 제공합니다. 성능이 떨어지는 마이크로 컨트롤러는 그렇지 않습니다.
Pi를 사용하더라도 Windows 10 IoT 운영 체제 개발과 Raspian, Mate 또는 기타 Linux 기반 OS 개발과는 큰 차이가 있습니다. Windows 10 IoT에는 UWP (Universal Windows Program) 환경을 대상으로하는 원격 디버거가 포함 된 Visual Studio 툴체인을 사용하는 개발 PC가 필요합니다. Pi에서 사용 가능한 도구를 사용하여 Pi에서 Raspian 또는 Mate의 개발을 실제로 수행 할 수 있습니다.
제한된 응용 프로그램 프로토콜은 작고 제한된 장치가 가지 환경의 인터넷과 사용을 위해 사용된다. 다양한 마이크로 컨트롤러 하드웨어 및 소프트웨어에 대한 아이디어를 얻기 위해 CoAP 프로토콜 구현 에 대한이 페이지 는 대상 환경에 대한 아이디어를 제공합니다. iOS, OSX 및 Android와 같은 잘 알려진 OS와 함께 모호하게 들었던 Contiki 운영 체제에 대해 언급합니다 . 언급 된 프로그래밍 언어는 Java, JavaScript, C, C #, Ruby, Go, Erlang, Rust 및 Python입니다.
마이크로 컨트롤러 개발에 사용되는 툴 체인은 제조업체 및 개발 커뮤니티 및 오픈 소스 이니셔티브에서 사용할 수있는 리소스 종류에 따라 다릅니다. 어떤 경우에는 크로스 어셈블러를, 다른 경우에는 C 크로스 컴파일러를 얻거나, 다른 경우에는 모든 종소리와 휘파람 및 에뮬레이터를 사용하여 Windows 10 IoT 용 Visual Studio 도구 체인과 유사한 멋진 도구 체인을 얻습니다.
마이크로 컨트롤러의 실제 개발 환경에는 EEPROM 프로그래머와 소프트웨어 도구를 사용하여 새 이미지를 만들어 장치로 푸시하거나 장치가 직렬 연결 또는 새 연결을 통해 새 이미지를 다운로드 할 수 있도록 필요한 연결성을 가질 수 있습니다. 네트워크 연결.
필자는 컴파일러가 K & R 또는 C98과 같은 구형 표준 만 지원할 수 있지만 대부분의 마이크로 컨트롤러에는 C 크로스 컴파일러가 있다고 생각합니다. 마이크로 프로세서의 특정은 예를 들어, 기능에 대한 C 크로스 컴파일러는 종종 표준이 아닌 키워드가 far
하고 near
자신의 세그먼트 메모리와 기존의 8080 개 8086 프로세서 포인터 키워드를.
FORTH 프로그래밍 언어 와 같은 마이크로 컨트롤러를 대상으로하는 특수 언어도 있습니다 . 이러한 언어는 종종 베어 메탈을 대상으로하는 런타임 디자인을 가지므로 언어 런타임 이외의 운영 체제는 없습니다.
운영 체제의 범위는 실제 존재하지 않는 Linux에서 베어 본 Linux에 이르기까지 freeRTOS 또는 Windows Embedded 와 같은 특수 OS 또는 완전한 Linux 또는 Microsoft Windows에 이르기까지 다양 합니다. Raspberry Pi 용이 SourceForge 프로젝트 MINIBIAN을 참조하십시오 . 또한이 eBook, Baking Pi : 운영 체제 개발 을 참조하십시오 . 어셈블러에서 Raspberry Pi의 기본 OS 개발에 대해 설명합니다.
Visual Studio를 사용 하여 사물 인터넷을 프로그래밍하는 Visual Studio Magazine의이 기사에서는 사용 가능한 여러 장치에 대한 개요와 Windows 및 Linux 용 Visual Studio IDE 사용에 대한 개요를 제공합니다.
현재 상용화되고 프로그래밍 가능하며 네트워크로 연결 가능한 마이크로 컨트롤러 장치가 엄청나게 늘어나고 있습니다. 매우 낮은 수준에서는 Texas Instruments와 같은 다양한 기존 칩 제조업체의 다양한 간단한 16 비트 및 32 비트 장치가 있습니다. (SensorTag 개발 키트로 약간의 연주를했으며 많은 재미가 있기 때문에 Watch DevPack도 훌륭한 학습 도구 세트라고 생각합니다.)
잘 알려진 마이크로 컨트롤러 장치로는 Arduino, BeagleBoard 및 Raspberry Pi가 있습니다. 이러한 환경은 모두 광범위한 커뮤니티 지원을 제공하며 수많은 기성품 외부 센서, 모터, 서보 및 기타 상상할 수있는 모든 것에 연결할 수 있습니다. Limor "Ladyada"Fried가 설립 한 전자 학습 학습 저장소 인 Adafruit는 자체 경량 깃털 개발 보드 라인과 함께 이러한 보드에 대한 모든 종류의 주변 장치를 제공합니다.
...
Microsoft .NET Framework 및 Visual Studio에 익숙한 개발자에게 가장 흥미로운 장치는 Windows 10 IoT Core 호환 환경 일 수 있습니다. 이들은 C #, Visual Basic, Python 및 Node.js / JavaScript를 포함한 다양한 언어로 작성된 UWP (Universal Windows Platform) 앱을 지원하는 x86 및 ARM 기반 장치입니다. Windows 10 IoT 코어는 Raspberry Pi, Arrow DragonBoard 410C, Intel Joule 및 Compute Stick 및 MinnowBoard를 포함한 장치를 지원합니다. Askey TurboMate E1 웨어러블과 같은 흥미로운 제품 플랫폼도 있습니다.
마이크로 컨트롤러 애플리케이션의 특정 예
자동화 된 커피 메이커의 마이크로 컨트롤러 보드 이미지입니다. 이것은 중국에서 제조 된 자동 커피 메이커의 표준 구성 요소 인 것으로 보입니다. 제조업체의 웹 사이트는 PCB에 인쇄되어 있습니다.
이미지는 두 가지보기로 구성됩니다. 왼쪽의 그림은 마이크로 컨트롤러 및 지원 회로가 포함 된 보드의 뒷면입니다. 오른쪽의보기는 LCD 화면과 현재 시간을 설정하고 시작 시간 프로그래밍과 같은 작업을 수행하는 데 사용되는 버튼 세트가있는 보드의 전면입니다.
오른쪽의보기는 커피 메이커 앞의 개구부에 맞는 캐리어에 맞습니다. 하단 PCB의 스위치는 로커 암 스위치로 작동됩니다. 특별한 목적으로 보이는 LCD는 현재 시간과 상태를 표시하고 커피 메이커의 설정을 변경할 때 사용자 인터페이스를 표시하는 데 사용됩니다. 빨간색 LED는 커피 메이커가 실제로 커피를 만드는시기를 표시하고 조명을 다시 꺼서 완료했을 때 표시하는 데 사용됩니다.
마이크로 컨트롤러는 8 비트 마이크로 컨트롤러 인 ELAN Microelectronics Corp EM78P447NAM (데이터 시트) 입니다. 기본 통계 중 일부는 작고 최소한의 장치가 무엇인지 보여 주지만 의도 된 목적에 잘 작동합니다. 의도는 소프트웨어를 개발 한 다음 제조 과정의 일부로 Write Once ROM에 다운로드하는 것입니다.
• 저전력 소비:
* Less then 2.2 mA at 5V/4MHz
* Typically 35 µA, at 3V/32KHz
* Typically 2 µA, during sleep mode
• 칩 ROM의 4K × 13 비트
• OTP 메모리 코드의 침입을 방지하기위한 3 개의 보호 비트
• 사용자 요구 사항을 수용 할 수있는 하나의 구성 레지스터
• 칩 레지스터 148 × 8 비트 (SRAM, 범용 레지스터)