본문 바로가기

dev, tech224

C의 데이터형의 분류 기본 데이터형(basic type) : 문자형, 정수형, 부동형, 열거형 유도 데이터형(derived type) : 배열, 함수, 구조체, 공용체, 포인터 void형 문자형(character type) - 음수 표현 능력에 따라, char signed char (-127~127) unsigned char (0~255) - 크기는 모두 1바이트로, 바이트 정의에 의해 8비트 이상으로 구성된다. - 사용 중인 1바이트의 크기를 알기 위해서는 의 CHAR_BIT 매크로 값을 조사하면 된다. - 일반 char형은 signed char나 unsigned char 중 하나와 똑같은 범위를 갖는데, 이는 임플리멘테이션에 따라 달라지므로, char의 음수 표현 여부에 의존하면 이식성을 얻을 수 없다. 하지만, C에서의.. 2006. 6. 16.
<img src="http://blogimgs.naver.com/nblog/ico_scrap01.gif" class="i_scrap" width="50" height="15" alt="본문스크랩" /> Device Driver 및 makefile 1. Device Driver 1) Device Driver의 정의 ◦ Device Driver란 물리적인 하드웨어 장치를 다루고 관리하는 소프트웨어로서 사용자 어플리케이션이 드라이버에게 요청을 하면, 드라이버는 하드웨어를 구동시켜서 목적을 달성한다. 장치와 시스템 메모리 간에 데이터의 전달을 담당하는 내부 기능을 수행하며, Major Number와 Minor Number를 이용하여 각각의 장치들을 구분하여 사용한다. 2) Device Driver들의 공통적인 특성 ◦ 디바이스 드라이버는 커널의 한 부분이므로, 커널의 다른 코드와 마찬가지로 잘못되면 치명적인 피해를 줄 수 있다. ◦ 리눅스 커널이나 자신이 속한 서브 시스템에 표준 인터페이스를 제공해야 한다. ◦ 메모리 할당, 인터럽트 전달, Wait q.. 2006. 6. 10.
<img src="http://blogimgs.naver.com/nblog/ico_scrap01.gif" class="i_scrap" width="50" height="15" alt="본문스크랩" /> Multitasking Operation ◦ 목적 ➠PicoKernel을 이용한 프로그래밍을 통해 Multitasking Operation을 이해한다. 1. 프로그램의 설계 및 목적1) 프로그램의 목적 본 프로그램의 목적은 사용자의 간단한 메모의 저장 및 백업에 있다. 2) 인터페이스의 설계 프로그램이 실행되면, 하나의 스레드는 exitcode가 나올 때까지 지속적으로 사용자로부터 문자열을 입력 받는다. 그리고 다른 하나의 스레드는 입력 받는 동시에 파일로 저장을 함에 목적을 둔다. 나머지 하나의 스레드는 메모의 작성이 완료되고 exitcode로 인해 상위 스레드가 동작을 멈추면 그동안의 입력되었던 파일을 MiniNoteXXX의 형태로 백업을 하도록 하였다. 스레드간의 문자열 교환을 위해 inputitem이라는 전역변수를 선언하여 문자열을 입력.. 2006. 6. 10.
<img src="http://blogimgs.naver.com/nblog/ico_scrap01.gif" class="i_scrap" width="50" height="15" alt="본문스크랩" /> 크로스 컴파일과 툴 체인 1. 크로스 컴파일1) 크로스 컴파일의 정의 크로스 컴파일은 하나의 시스템에서 실행되는 컴파일러가 다른 시스템에서 사용될 실행 파일을 만들고 이 시스템이 같은 운용 환경을 사용할 수 없을 때 발생한다. 하나의 예로, 호스트에서 C언어나 어셈블러로 작성된 소스 코드를 호스트와 다른 기종에서 사용될 수 있는 기계어로 번역할 때 사용한다. 또한 목표 시스템에 컴파일 툴이 없거나 개발자가 호스트 시스템의 강력한 퍼포먼스 또는 방대한 리소스를 사용할 때도 유용하다. 일반적으로 컴파일러는 자신의 시스템에 맞는 바이너리코드를 만든다. 예를 들어 x86의 시스템에서 gcc를 사용하여 컴파일을 하게 되면, x86의 바이너리가 생긴다. 그러므로 타겟 보드에서 직접 응용프로그램이나 커널 컴파일을 할 수가 없다. 이유는 저장.. 2006. 6. 10.