1. 일반 규정 1.1 C 언어 버전 규정 모든 프로그램은 ISO C 표준인 C99 버전을 준수하도록 작성해야 한다. C++ 컴파일러를 이용할 때에도 선택한 ISO C 버전의 표준에 맞게 컴파일러 옵션을 설정해 주어야 한다. #pragma 같은 확장 키워드와 인라인 어셈블리어는 되도록 적게 사용하여야 하며, 하드웨어에 직접적으로 연결되는 소수의 장치 드라이버 모듈로 사용이 국한되어야 한다. 전처리기 지시자 #define은 키워드의 이름을 바꾸는 데 사용되어서는 안 된다. 예시 #define begin {// Don’t do something like this... #define end } // ... nor this. ... for (int row = 0; row < MAX_ROWS; row++) beg..
실시간 동작을 보장하는 방법 시스템이 의도한 대로 작동하도록 보장하는 가장 쉬운 방법 중 하나는 요구사항을 충족하면서도 가능한 단순함을 유지하는 것입니다. 이것은 단순하게 할 수 있는 일을 복잡하게 처리하고 싶은 충동에 저항하는 것을 의미합니다. 토스터기로 빵 한 조각을 굽기 위한 것이라면, 그 위에 디스플레이 장치를 달거나 여러분에게 날씨 정보를 알려주도록 만들지는 마세요. 단지 빵을 굽기위해 적절한 시간동안 전열선을 켜도록 하세요. 이 간단한 작업은 수 년 동안 코드나 프로그래밍 가능한 장치 없이도 잘 수행되어 왔습니다. 프로그래머로서 문제에 마주치게 되면 우리는 바로 MCU의 소스 코드를 수정하려는 경향이 있습니다. 그러나 제품의 일부 기능(특히 전기 기계 구성품이 있는 제품의 경우)은 코드 없이도..
타이밍 요구 사항의 범위 경험할 수 있는 타이밍 요구 사항의 범위를 설명하기 위해 아날로그-디지털 변환기(ADC)에서 판독값을 읽는 몇 가지 시스템을 살펴보겠습니다. 첫 번째 시스템은 인두기의 온도를 제어하기 위해 설정된 제어 시스템입니다(아래 그림 참조). 우리가 관심있는 부분은 MCU, ADC, 센서, 히터입니다. MCU는 아래 세가지 역할을 합니다. ADC를 통해 온도 센서 값을 읽어 옵니다. 폐쇄 루프 제어 알고리즘을 실행합니다(인두기 팁의 온도를 일정하게 유지하기 위해). 필요한 만큼 히터의 출력을 조정합니다. 아래 그림에서 확인할 수 있습니다. 인두기 팁의 온도가 놀라울 정도로 빠르게 변하지는 않기 때문에 MCU는 초당 50개의 ADC 값(50Hz)만 읽으면 됩니다. 히터 조절을 담당하는 제어..
Section 1: RTOS 개념 소개 실시간 시스템이란 무엇이며 실시간 운영 체제(RTOS)를 구성하는 주요 구성 요소는 무엇입니까? 첫 번째 섹션에서 대답할 질문들입니다. 이러한 전제조건이 되는 지식은 다음 장의 예제와 실습을 통해 우리가 쌓아갈 토대가 될 것입니다. 이미 다른 RTOS에 익숙하다면 이 섹션을 건너뛸 수 있습니다. 이 섹션은 다음 장으로 구성됩니다. 1장, 실시간 시스템 소개 2장, RTOS 타스크의 이해 3장, 타스크의 신호 전달 및 통신 방법 chapter.1 실시간 시스템 소개 실시간 시스템은 매우 다양한 구현 및 사례로 나타납니다. 이 책에서는 RTOS를 사용하여 마이크로컨트롤러(MCU)에서 실시간 프로그램을 생성하는 방법을 중점적으로 다룹니다. 이번 장에서는 RTOS가 무엇인..
임베디드 분야에서 널리 알려진 Michael Barr 라는 분이 쓰신 ≪Embedded C Coding Standard≫(2018년). Michael Barr 님은 이 외에도 ≪Programming Embedded Systems≫, ≪Embedded Systems Dictionary≫ 등의 저서가 있다. 그 중에서도 위 ≪Embedded C Coding Standard≫은 임베디드 프로그래밍을 할 때 버그나 실수를 방지하기 위해 프로그래머들이 지켜야할 표준을 사소한 것부터 나열하고 있으며, 다행히 eBook은 무료로 홈페이지에 공개하고 있다. 홈페이지 : barrgroup.com 다운로드는 무료로 할 수 있으나 먼저 가입을 해야 한다. 표준은 39가지 이며, 이 표준들을 앞으로 1페이지에 한 가지씩 정리..
인텔 4004, 4비트 프로세서. 최초의 프로세서로 1971년 출시. (저보다 형이네요...) 클럭 속도 : 740 ㎑ 2,250개의 트랜지스터로 구성. https://en.wikipedia.org/wiki/Intel_4004 Intel 4004 - Wikipedia From Wikipedia, the free encyclopedia Jump to navigation Jump to search 4-bit central processing unit Intel 4004White ceramic Intel C4004 microprocessor with grey tracesGeneral informationLaunchedlate 1971Discontinued1981Common manufacturer(s)Perfo..
이 책을 최대한 활용하기 위해 이 책의 예제를 다양한 사람들이 가능한 한 쉽게 작업할 수 있도록 모든 노력을 기울였습니다. 예제를 경험하므로써 이 책을 최대한 활용하기 위해서는 다음과 같은 하드웨어가 필요합니다. 인터넷에 액세스할 수 있는 Windows, MacOS 또는 Linux PC STM32 Nucleo-F767ZI 개발 보드 두 개의 Micro-USB 케이블 점퍼선—20~22AWG(~0.65mm) 사용된 여러 도구에 대한 자세한 설정은 각 장에 설명되어 있습니다. 이 책의 디지털 버전을 사용하는 경우 직접 코드를 입력하거나 GitHub를 통해 코드에 접근 가능합니다. 이렇게 하면 코드의 복사 및 붙여넣기와 관련된 잠재적인 오류를 방지할 수 있습니다. 이 책은 저수준의 임베디드 시스템 프로그래밍을 ..
이 책이 다루고 있는 내용은 무엇입니까? 이 책은 총 17장으로 구성되어 있으며, 4개의 섹션으로 나뉩니다. 이미 익숙한 내용이 있다면 이 책을 처음부터 읽을 필요는 없습니다. 예를 들어, RTOS 기본 개념과 실시간 시스템에 이미 익숙하다면, 4장 "적절한 MCU 선택"으로 바로 가셔도 좋습니다. 다음은 각 장에 대한 간략한 설명입니다. 1장 “실시간 시스템 소개”에서는 RTOS가 무엇이며, 언제 그리고 왜 RTOS를 사용해야 하는지에 대한 간단한 소개입니다. MCU 기반 RTOS를 대체할 수 있는 하드웨어 및 소프트웨에 대해서도 논의합니다. 2장 “RTOS의 Task 이해”에서는 RTOS Task와 슈퍼 루프를 비교하고, 두 가지를 모두 사용하여 병렬 작업을 수행할 수 있는 다양한 방법을 제공합니다...
서문 본 실습 가이드는 마이크로컨트롤러(MCU)에서 실시간 운영 체제(RTOS)를 실행하는데 있어 가장 중요한 기능적 지식을 제공합니다. 실제 하드웨어를 사용하는 실습 예제를 통해 RTOS 응용프로그램을 어떻게 구현하는지, 그리고 일반적인 성능과 개발 소요 시간 사이의 절충하는 방법에 대한 논의에 관심 있다면 이 책을 잘 선택한 것입니다. 우리는 FreeRTOS 커널을 사용하여 코드를 구현하고, 저가의 STM Neucleo 개발 보드에 실장된, 인기있는 STM32 ARM MCU를 활용하며, SEGGER 디버그 도구를 사용하여 코드를 디버깅하고 분석할 것입니다. 이 책에 사용된 모든 도구들은 취미 활동가나 전문가가 프로젝트를 시작할 때 쉽게 접근할 수 있고 실제 프로팀에서도 많이 사용하기 때문에 선택되었습..