본문 바로가기
Embedded Software는 무한 Loop

대부분의 Embedded System은 특정한 목적을 가진 System이 대부분 이니까, 그 목적을 달성 할 수 있도록 한 개의 Software가 동작하는 게 정석이었죠. 그러니까 대부분 무한 Loop를 이용해서 구현이 되고요. 그 무한 loop내부에서 Embedded System의 기능이 대부분 구현되고요, Hardware Control도 그 안에서 모두 구현된답니다.

결국엔 Embedded System이 죽지 않는 한 무한~히 Loop를 돌면서 자신의 역할을 하게 되고요. System이 죽을 때까지 그 짓만을 계속 하게 되는 거죠. 그러니까, 무엇이 되었든,

while (1)
{

뭐라뭐라뭐라

}

의 형태로 이루어 져 있고요. 뭐라뭐라뭐라 하는 것을 죽을 때까지 실행하는 형태인 거죠. 이렇게 생긴 Software 하나만 Embedded System에서는 동작을 하고요, 어랏 좀 이상한가요.
이제까지는 Hello World를 예제로 Software를 설명했지만, 실제 Embedded System은 Hello World를 화면에 뿌리기 보다는, System을 켜면 무한히 전등을 깜박거린다든가, LED를 깜박거린다던가 하는 일을 하게 되는 거죠. 가령, main() 함수에 접어들면 무한히 자신의 목적에 맞는 짓만 하는 거죠.

void main ()
{

   Lamp_init();

   while (1)
   {
      Lamp_on();
      wait (100); /* wait 100uS */
      Lamp_off();            wait (100); /* wait 100uS */
   }
}

이런 식으로 생겨먹은 거죠. 100uS동안 Lamp가 켜져 있고, 100uS동안 Lamp가 꺼져 있고를
반복하는 Embedded System Software인 거죠. 이런 Software야 말로 ARM core를 사용한 System에서는 SVC mode를 쓰건, IRQ mode를 쓰건, System mode를 쓰건, 먼 상관 이냐는 것이죠. - 내가 Lamp만 잘 반짝거려 주면 되는데, 말이야. -

Embedded System Software를 이해 하려면 이 concept을 잘 이해해야 해요.

실은 이런 간단한 Embedded System을 Software까지 넣으면서 만들지는 않겠죠. 보통 ASIC (Application Specific Integrated Circuit, 주문형반도체라고도 하죠)으로 만들어요. 하지만, Program이 가능한 Embedded System이라면 위의 무한 Loop를 Lamp가 깜빡 거리는 걸로 만든다던가, Motor가 돌아가는 걸로 만든다던가 하는 여러 가지 기능으로 바꿔 치기 할 수 있겠죠. 그것이 바로 Software의 힘이에요.

 
 
Linked at 친절한 임베디드 시스템 개발자.. at 2009/09/11 00:04

... ⓑ Embedded Software는 무한루프 ... more

친절한 임베디드 시스템 개발자 되기 강좌 글 전체 리스트 (링크) -



댓글





친절한 임베디드 개발자 되기 강좌 글 전체 리스트 (링크) -