임베디드 C 프로그램이란 무엇이며 초보자를위한 구조

문제를 제거하기 위해 도구를 사용해보십시오





이전에는 어셈블리 수준 프로그래밍을 사용하여 많은 임베디드 애플리케이션이 개발되었습니다. 그러나 그들은 이식성을 제공하지 않았습니다. 이러한 단점은 C, Pascal 및 COBOL과 같은 다양한 고급 언어의 출현으로 극복되었습니다. 그러나 임베디드 시스템에 대해 광범위하게 수용된 것은 C 언어였으며 계속해서 그렇게하고 있습니다. 작성된 C 코드는 더 안정적이고 확장 가능하며 이식 가능하며 실제로 이해하기 훨씬 쉽습니다. 임베디드 C 프로그래밍은 각각 내부에서 작동하는 프로세서의 영혼입니다. 임베디드 시스템 우리는 휴대폰, 세탁기, 디지털 카메라와 같은 일상 생활에서 접합니다. 각 프로세서는 임베디드 소프트웨어와 연결되어 있습니다. 가장 중요한 것은 임베디드 시스템의 기능을 결정하는 임베디드 소프트웨어입니다. 임베디드 C 언어는 다음을 위해 가장 자주 사용됩니다. 마이크로 컨트롤러 프로그래밍 .

C 언어 란?

C 언어는 1969 년 Dennis Ritchie에 의해 개발되었습니다. 이것은 하나 이상의 함수 모음이며 모든 함수는 특정 작업을 수행하는 명령문 모음입니다.
C 언어는 높은 수준의 응용 프로그램과 낮은 수준의 응용 프로그램을 지원하기 때문에 중간 수준의 언어입니다. 임베디드 C 프로그래밍에 대해 자세히 알아보기 전에 RAM 메모리 구성에 대해 알아야합니다.




C 언어의 주요 기능은 다음과 같습니다.

  • C 언어는 다양한 키워드, 데이터 유형, 변수, 상수 등으로 설계된 소프트웨어입니다.
  • Embedded C는 특정 하드웨어 아키텍처와 관련된 C로 작성된 프로그래밍 언어에 부여되는 일반적인 용어입니다.
  • Embedded C는 일부 추가 헤더 파일이있는 C 언어의 확장입니다. 이러한 헤더 파일은 컨트롤러에서 컨트롤러로 변경 될 수 있습니다.
  • 그만큼 마이크로 컨트롤러 8051 #include가 사용됩니다.

임베디드 C 프로그래밍이란?

모든 임베디드 시스템 기반 프로젝트에서 임베디드 C 프로그래밍은 마이크로 컨트롤러를 실행하고 선호하는 작업을 수행하는 데 핵심적인 역할을합니다. 현재 우리는 일반적으로 휴대폰, 세탁기, 보안 시스템, 냉장고, 디지털 카메라 등과 같은 여러 전자 장치를 사용합니다. 이러한 임베디드 장치의 제어는 임베디드 C 프로그램의 도움으로 수행 될 수 있습니다. 예를 들어, 디지털 카메라에서 카메라 버튼을 눌러 사진을 캡처하면 마이크로 컨트롤러가 이미지를 클릭하고 저장하는 데 필요한 기능을 실행합니다.



임베디드 C 프로그래밍

임베디드 C 프로그래밍

임베디드 C 프로그래밍은 모든 함수가 특정 작업을 실행하는 데 사용되는 명령문 집합 인 함수 집합으로 빌드됩니다. 임베디드 C 및 C 언어는 모두 동일하며 변수, 문자 세트, 키워드, 데이터 유형, 변수 선언, 표현식, 명령문과 같은 몇 가지 기본 요소를 통해 구현됩니다. 이러한 모든 요소는 임베디드 C 프로그램을 작성하는 동안 중요한 역할을합니다.

임베디드 시스템 설계자는 프로그램을 작성하기 위해 하드웨어 아키텍처에 대해 알아야합니다. 이러한 프로그램은 외부 장치를 모니터링하고 제어하는 ​​데 중요한 역할을합니다. 또한 인터럽트 처리, 타이머, 직렬 통신 및 기타 사용 가능한 기능과 같은 마이크로 컨트롤러의 내부 아키텍처를 직접 작동하고 사용합니다.


임베디드 시스템 프로그래밍

앞서 논의했듯이 임베디드 시스템의 설계는 하드웨어 및 소프트웨어를 사용하여 수행 할 수 있습니다. 예를 들어, 단순한 임베디드 시스템에서 프로세서는 시스템의 심장처럼 작동하는 메인 모듈입니다. 여기서 프로세서는 마이크로 프로세서, DSP, 마이크로 컨트롤러, CPLD 및 FPGA 일뿐입니다. 이러한 모든 프로세서는 프로그래밍 가능하므로 장치의 작동을 정의합니다.

임베디드 시스템 프로그램을 사용하면 하드웨어가 그에 따라 입력 및 제어 출력을 확인할 수 있습니다. 이 절차에서 임베디드 프로그램은 타이머, 인터럽트 처리, I / O 포트, 직렬 통신 인터페이스 등과 같은 프로세서의 내부 아키텍처를 직접 제어해야 할 수 있습니다.

따라서 임베디드 시스템 프로그래밍은 프로세서에 매우 중요합니다. 임베디드 시스템에는 C, C ++, 어셈블리 언어, JAVA, JAVA 스크립트, 비주얼 베이직 등과 같은 다양한 프로그래밍 언어를 사용할 수 있습니다. 따라서이 프로그래밍 언어는 임베디드 시스템을 만드는 데 핵심적인 역할을하지만 언어 선택은 매우 중요합니다.

임베디드 C 프로그램을 구축하는 단계

다음과 같이 임베디드 c 프로그램을 설계하는 데는 여러 단계가 있습니다.

  • 코멘트
  • 프로세서 지침
  • 포트 구성
  • 전역 변수
  • 핵심 기능 / 주요 기능
  • 변수 선언
  • 프로그램의 논리

코멘트

프로그래밍 언어에서 주석은 프로그램의 기능을 설명하는 데 매우 중요합니다. 주석 코드는 실행할 수 없지만 프로그램 문서를 제공하는 데 사용됩니다. 프로그램의 기능을 이해하기 위해 프로그램의 기능을 이해하는 간단한 방법이됩니다. 임베디드 C에서 주석은 단일 라인과 메인 라인 주석의 두 가지 유형으로 제공됩니다.

임베디드 C 프로그래밍 언어에서는 독자가 코드를 쉽게 이해할 수 있도록 코드에 주석을 추가 할 수 있습니다.

C = a + b / * 값이 다른 변수 C * /에 저장된 두 개의 변수 추가

한 줄 주석

일반적으로 프로그래밍 언어의 경우 한 줄 주석은 프로그램의 일부를 명확히하는 데 매우 유용합니다. 이러한 주석은 이중 슬래시 (//)로 시작하며 프로그래밍 언어 내의 어느 위치 에나 위치 할 수 있습니다. 이를 사용하면 프로그램 내에서 전체 행을 무시할 수 있습니다.

여러 줄 주석

여러 줄 주석은 코드 블록을 설명하는 프로그래밍 언어에서 단일 슬래시 (/) 및 별표 (/ *)로 시작합니다. 이러한 유형의 주석은 프로그래밍 언어 내 어디에서나 정렬 할 수 있으며 주로 프로그램 내의 전체 코드 블록을 무시하는 데 사용됩니다.

프로세서 지침

프로그램 코드에 포함 된 행은 해시 기호 (#)를 통해 이어질 수있는 전 처리기 지시문이라고합니다. 이 행은 전 처리기 지시문이지만 프로그래밍 된 명령문은 아닙니다.
실제 코드 컴파일이 시작되기 전에 전처리기를 통해 코드를 검사 할 수 있으며 일반 문을 통해 코드를 생성하기 전에 이러한 지시문을 해결합니다. 프로그래밍 언어 내에서 두 가지 지시문이 매우 유용하지만 몇 가지 특수 전 처리기 지시문을 사용할 수 있습니다.

다음과 같이.

#포함
#포함
Sbit LED = P2 ^ 3
본관()
{
LED = 0x0ff
지연()
LED = 0x00
}
#밝히다
#포함
#define LED P0
본관()
{
LED = 0x0ff
지연()
LED = 0x00
}

위의 프로그램에서 #include 지시문은 일반적으로 study와 같은 표준 라이브러리를 구성하는 데 사용됩니다. h는‘C’라이브러리를 사용하여 I / O 기능을 허용하는 데 사용됩니다. #define 지시문은 일반적으로 일련의 변수를 설명하고 매크로와 같은 특정 명령 내에서 프로세스를 실행하여 값을 할당하는 데 사용됩니다.

포트 구성

마이크로 컨트롤러에는 모든 포트에 서로 다른 핀이있는 여러 포트가 포함되어 있습니다. 이 핀은 인터페이스 장치를 제어하는 ​​데 사용할 수 있습니다. 이러한 핀의 선언은 키워드를 사용하여 프로그램 내에서 수행 할 수 있습니다. 임베디드 c 프로그램의 키워드는 표준이며 프로그램 내에서 비트 및 단일 핀을 나타내는 데 사용되는 비트, sbit, SFR과 같이 미리 정의되어 있습니다.

특정 작업을 수행하기 위해 예약 된 특정 단어가 있습니다. 이러한 단어를 키워드라고합니다. 표준이며 Embedded C에서 사전 정의됩니다. 키워드는 항상 소문자로 작성됩니다. 이러한 키워드는 기본 프로그램을 작성하기 전에 정의해야합니다. 키워드의 주요 기능은 다음과 같습니다.

#포함
스 비트 a = P 2 ^ 2
SFR 0x00 = PoRT0
비트 C
본관()
{
…………… ..
…………… ..
}

sbit

이것은 SFR 레지스터 내의 단일 비트에 액세스하는 데 사용되는 데이터 유형의 한 종류입니다.

이 데이터 유형의 구문은 다음과 같습니다. sbit 변수 이름 = SFR 비트

예 : sbit a = P2 ^ 1

p2.1을 'a'변수로 할당하면 프로그램의 어느 곳에서나 p2.1 대신 'a'를 사용하여 프로그램의 복잡성을 줄일 수 있습니다.

비트

이 유형의 데이터 유형은 주로 20h ~ 2fh와 같은 임의 액세스 메모리의 비트 주소 지정 가능 메모리를 허용하는 데 사용됩니다.

이 데이터 유형의 구문은 다음과 같습니다. 비트 변수의 이름

예 : 비트 c

주로 프로그램의 도움으로 무언가를 암기하는 데 사용되는 작은 데이터 영역 내의 비트 시리즈 설정입니다.

SFR

이러한 종류의 데이터 유형은 추가 이름을 통해 SFR 레지스터의 주변 포트를 얻는 데 사용됩니다. 따라서 모든 SFR 레지스터의 선언은 대문자로 수행 할 수 있습니다.

이 데이터 유형의 구문은 다음과 같습니다. SFR 변수 이름 = SFR 레지스터의 SFR 주소

예 : SFR port0 = 0 × 80

'port0'과 같이 0x80을 할당하면 프로그래밍 언어 어디에서나 port0 대신 0x80을 활용하여 프로그램의 난이도를 줄일 수 있습니다.

SFR 등록

SFR은 특수 기능 레지스터를 나타냅니다. 8051 마이크로 컨트롤러에는 256 바이트의 RAM 메모리가 포함되어 있으며, 이는 두 가지 주요 요소로 나뉩니다. 128 바이트의 첫 번째 요소는 주로 데이터 저장에 사용되는 반면 128 바이트의 다른 요소는 주로 SFR 레지스터에 사용됩니다. 타이머, 카운터 및 I / O 포트와 같은 모든 주변 장치는 SFR 레지스터 내에 저장되며 모든 요소에는 단일 주소가 포함됩니다.

글로벌 변수

키 함수가 전역 변수로 알려져 있기 전에 변수가 선언 된 경우. 이 변수는 프로그램 내의 모든 기능에서 허용 될 수 있습니다. 전역 변수의 수명은 주로 끝날 때까지 프로그래밍에 따라 다릅니다.

#포함
부호없는 int a, c = 10
본관()
{
……………
………… ..
}

핵심 기능 / 주요 기능

주요 기능은 프로그램을 실행하는 동안 핵심적인 부분이며 단순히 주요 기능으로 시작됩니다. 각 프로그램은 단순히 하나의 주요 함수를 사용합니다. 프로그램에 하나 이상의 주요 함수가 포함되어 있으면 다음에 컴파일러가 프로그램 실행을 시작할 때 혼란스러워집니다.

#포함
본관()
{
……………
………… ..
}

변수 선언

변수와 같은 이름은 값을 저장하는 데 사용되지만이 변수는 프로그램 내에서 사용되기 전에 먼저 선언되어야합니다. 변수 선언은 이름과 데이터 유형을 나타냅니다. 여기서 데이터 유형은 스토리지 데이터의 표현 일뿐입니다. 임베디드 C 프로그래밍에서는 메모리에 데이터를 저장하기 위해 정수, 부동 소수점, 문자와 같은 4 가지 기본 데이터 유형을 사용합니다. 데이터 유형 크기와 범위는 컴파일러에 따라 정의 할 수 있습니다.

데이터 유형은 정수, 문자, 부동 등 다양한 유형의 변수를 선언하기위한 광범위한 시스템을 나타냅니다. 임베디드 C 소프트웨어는 메모리에 데이터를 저장하는 데 사용되는 네 가지 데이터 유형을 사용합니다.

‘char’는 단일 문자를 저장하는 데 사용됩니다.‘int’는 정수 값을 저장하는 데 사용되고‘float’는 모든 정밀도 부동 소수점 값을 저장하는 데 사용됩니다. 32 비트 컴퓨터에서 다양한 데이터 유형의 크기와 범위는 다음 표에 나와 있습니다. 크기와 범위는 단어 크기가 다른 컴퓨터에 따라 다를 수 있습니다.

  • char / signed char 데이터 유형 크기는 1 바이트이고 범위는 -128에서 +128까지입니다.
  • unsigned char 데이터 유형 크기는 1 바이트이고 범위는 0에서 255까지입니다.
  • Int / signed int 데이터 유형 크기는 2 바이트이고 범위는 -32768에서 32767까지입니다.
  • 부호없는 int 데이터 유형 크기는 2 바이트이고 범위는 0 ~ 65535입니다.

본관()
{
부호없는 int a, b, c
}

Embedded C 프로그램의 구조는 다음과 같습니다.

  • 코멘트
  • 전 처리기 지시문
  • 전역 변수
  • 주요 기능

{

  • 지역 변수
  • 명세서
  • ………… ..
  • ………… ..

}

  • 재미 (1)

{

  • 지역 변수
  • 명세서
  • ………… ..
  • ………… ..

}

프로그램의 논리

프로그램의 논리는 프로그램의 행동에 대한 예측 가능한 출력 뒤에있는 이론에 나타나는 차선의 계획입니다. 임베디드 프로그램이 작동하는 이유에 관한 이론을 설명하고 다른 리소스의 작업의 인식 된 효과를 보여줍니다.

본관
{
LED = 0x0f
지연 (100)
LED = 0x00
지연 (100)
}

Embedded C 프로그램의 주요 요소

임베디드 시스템 개발을위한 프로그래밍 언어를 선택할 때 고려해야 할 주요 요소는 다음과 같습니다.

프로그램 크기

모든 프로그래밍 언어는 마이크로 컨트롤러와 같은 임베디드 프로세서가 매우 적은 양의 랜덤 액세스 메모리를 포함하는 일부 메모리를 차지합니다.

프로그램의 속도

프로그래밍 언어는 매우 빠르므로 최대한 빨리 실행해야합니다. 느리게 실행되는 소프트웨어로 인해 임베디드 하드웨어의 속도가 느려지면 안됩니다.

휴대 성

다른 임베디드 프로세서의 경우 유사한 프로그램을 컴파일 할 수 있습니다.

  • 간단한 구현
  • 간단한 유지 관리
  • 가독성

C 프로그램과 임베디드 C 프로그램의 차이점

임베디드 C와 C 프로그래밍의 차이점은 실제로 운영 환경 및 일부 확장과 크게 다르지 않습니다. 이러한 프로그래밍 언어는 ISO 표준이며 구문, 함수, 데이터 유형 등이 거의 유사합니다. C 프로그래밍과 임베디드 C 프로그래밍의 주요 차이점은 다음과 같습니다.

C 언어

임베디드 C 언어

일반적으로이 언어는 데스크톱 기반 응용 프로그램을 개발하는 데 사용됩니다.

임베디드 C 언어는 마이크로 컨트롤러 기반 애플리케이션을 개발하는 데 사용됩니다.
C 언어는 프로그래밍 언어의 확장이 아니라 범용 프로그래밍 언어입니다.Embedded C는 I / O 주소 지정, 고정 소수점 산술, 다중 메모리 주소 지정 등과 같은 다양한 기능을 포함하는 C 프로그래밍 언어의 확장입니다.

자연에서 네이티브 개발을 처리합니다.자연에서 교차 개발을 처리합니다.
하드웨어 아키텍처에 대해 독립적입니다.마이크로 컨트롤러 및 기타 장치의 하드웨어 아키텍처에 따라 다릅니다.
C 언어의 컴파일러는 운영 체제에 따라 다릅니다.임베디드 C 컴파일러는 OS 독립적입니다.
C 언어에서 표준 컴파일러는 프로그램 실행에 사용됩니다.임베디드 C 언어에서는 특정 컴파일러가 사용됩니다.
이 언어에서 사용되는 인기있는 컴파일러는 GCC, Borland turbo C, Intel C ++ 등입니다.이 언어에서 사용되는 인기있는 컴파일러는 Keil, BiPOM Electronics 및 green hill입니다.
C 언어의 형식은 자유 형식입니다.형식은 주로 사용되는 마이크로 프로세서의 종류에 따라 다릅니다.
이 언어의 최적화는 정상입니다.이 언어의 최적화는 높은 수준입니다.
수정 및 읽기가 매우 쉽습니다.수정 및 읽기가 쉽지 않습니다.
버그 수정은 쉽습니다.이 언어의 버그 수정은 복잡합니다.

임베디드 C 프로그램 예

다음은 몇 가지 간단한 Embedded C 프로그램입니다. 마이크로 컨트롤러 기반 프로젝트 .

예 -1

예 -1

예 -2

예 -2

예 -3

예 -3

예 -4

예 -4

장점

그만큼 임베디드 C 프로그램의 장점 g는 다음을 포함합니다.

  • 이해하기 매우 간단합니다.
  • 유사한 작업을 지속적으로 실행하므로 추가 메모리와 같은 하드웨어 변경이 필요하지 않습니다.
  • 한 번에 하나의 작업 만 실행합니다.
  • 임베디드 c에 사용되는 하드웨어 비용은 일반적으로 매우 낮습니다.
  • 임베디드 애플리케이션은 산업에 매우 적합합니다.
  • 응용 프로그램을 개발하는 데 시간이 덜 걸립니다.
  • 프로그램의 복잡성을 줄여줍니다.
  • 확인하고 이해하기 쉽습니다.
  • 한 컨트롤러에서 다른 컨트롤러로 이동할 수 있습니다.

단점

그만큼 임베디드 C 프로그래밍의 단점 다음을 포함하십시오.

  • 한 번에 하나의 작업 만 실행하지만 다중 작업은 실행할 수 없습니다.
  • 프로그램을 변경하면 하드웨어도 변경해야합니다.
  • 하드웨어 시스템 만 지원합니다.
  • 확장 성 문제가 있습니다.
  • 제한된 메모리와 같은 제한이 있으며 그렇지 않으면 컴퓨터의 호환성이 있습니다.

Embedded C 프로그램의 응용

그만큼 임베디드 C 프로그래밍의 응용 다음을 포함하십시오.

  • 임베디드 C 프로그래밍은 다양한 목적으로 산업에서 사용됩니다.
  • 애플리케이션에 사용되는 프로그래밍 언어는 고속도로의 속도 검사기, 신호등 제어, 가로등 제어, 차량 추적, 인공 지능, 홈 자동화 및 자동 강도 제어입니다.

우리는 초보자에게 쉽고 접근 가능한 방법을 성공적으로 제공하기를 바랍니다. 임베디드 C 프로그래밍 . 임베디드 C 프로그래밍에 대한 이해는 임베디드 기반 프로젝트를 설계하기위한 가장 필수적인 전제 조건입니다. 또한 임베디드 C 프로그래밍에 대한 더 나은 이해와 적절한 지식은 학생들이 보람있는 직업을 선택하는 데 크게 도움이됩니다.

독자의 질문, 제안 및 의견을 권장하고 환영합니다. 따라서 아래의 댓글 섹션에이 기사에 대한 질문과 피드백을 게시 할 수 있습니다. 아래 링크를 따라 납땜없는 프로젝트