본문 바로가기
코스웨어/16년 스마트컨트롤러

20160321_장진웅_업무일지_펌웨어 실습

by 알 수 없는 사용자 2016. 3. 21.
728x90
반응형

함수호출 개념--------------------------


함수호출     -프로그래머(S/W) -> 함수       Call(함수)

-회로(H/W) -> 인터럽트 함수   INT(인터럽트)

-운영처리OS(S/W) -> 콜백함수 Call back

 

APP 

 오락

 APP

 익스플로러, 계산기, 탐색기

 드라이버

 드라이버

 O.S

 Window(커널)

 H/W

 H/W


 

 



Java는 임베디드를 목표로 제작. 하지만, 지금은 웹, 안드로이드를 위해 쓰이는 중이다.

안드로이드 + 리눅스 = 안드로이드. Java virtual machine + O/S = Java -> 이것으로 어떤한 O/S에서도 Java를 사용할 수 있다.

애뮬레이터(플랫폼)

 



시리얼(직렬): 속도 느리다. 그러나 하드웨어가 심플 ex) USB

패러럴(병렬): 속도 빠르다. 그러나 하드웨어가 복잡 ex) 버스

 

LAN(Local Area Network)

WAN(wide Area Network)

 

반이중: 한쪽이 전송을 보내면 반대편은 전송을 보내지 못한다. ex) 무전기

전이중(Full Duplex): 양쪽이 송수신이 가능하다. ex) 전화기

 

Synchronous 동기

Asynchronous 비동기

 

<비동기>

                          T

          ---------------------->

                          R

          <----------------------

                          G

          -----------------------

                          클럭

master ----------------------- slave

 

USART(U Synchronous Asynchronous Recieve Transmit)

 

한번에 보내는 단위를 프레임이라고 한다.

 

<노이즈>



먼거리로 이동하게 되면 처음에 5V를 출력하면 받는 곳에서 1V정도 밖에 안된다.

그런데 전선에 간섭이 일어나게 되어 노이즈가 생긴다.

 

 

<패리티 비트>



마지막에 비트를 남겨둬서 0 혹은 1을 맞춰서 1을 짝수로 맞추어 준다.

즉, 짝수가 돼야하는데 홀수가 되면 자료가 잘못된 것을 확인할 수 있다.

 




<데이터 오버런>

데이터가 너무 많이 와서 쌓여버린 것을 의미한다. 덮어써서 앞의 데이터가 삭제되는 것이다.

예를 들어서 연탄배달할 때 너무 많이 오게되면 앞의 연탄을 제대로 쌓지 못하는 것이다.

 

<Framing Error Detection>

Data가 잘못되면 Data Error

Frame이 잘못되면 Frame Error

 

<새로운 C언어>

#include <stdio.h>

#define F_cpu 16000000

int main()
{
 printf("%d \n", F_cpu);
 return 0;
}

이렇게 하면 도스창에 16000000이 출력 된다. 하지만

#include <stdio.h>

//#define F_cpu 16000000

int main()
{
 printf("%d \n", F_cpu);
 return 0;
}

 

 

 

이렇게 컴파일하면 'F_cpu': 선언되지 않은 식별자입니다. 이런 오류가 뜬다.

하지만 도스창에 cl /DF_cpu=16000000 main.c 이렇게 하면 출력이 잘 나온다.

 

 

728x90