Chapter 1. VxWorks BSP 파일 구성 .h : 이 파일은, 반드시 그럴 필요는 없지만, 일반적으로 BSP 디렉터리와 같은 이름을 갖는 헤더 파일로,하드웨어에 관련된 각종 상수와 파라메터 값을 선언한다. config.h : 이 파일은 BSP의 소프트웨어적인 각종 상수 값들을 갖과 있으며, 만들어 지는 VxWorks 이미지에포함될 각종 운영체제 라이브러리 등도 여기에서 결정된다. 이 파일에서 ../all/configAll.h 파일을 포함하는데,그 파일에 선언된 정의들을 고치지 않는 것이 좋고, 꼭 그파일에 선언된 정의들을 고치지 않는 것이 좋고, 꼭그파일에 선언된 내용을 바꿔야 한다면 config.h 파일에서 정의된 내용을 #undef 하고 나서 다시 정의하는것이 좋다. romInit.s : ..
앞 예제의 소스를 메시지 큐를 포함하여 수정하였다. 메시지 큐 외의 설명은 앞예제를 참고한다. main() 함수에서 메시지 큐를 생성하고, Task1 이 5초에 한번씩 Task2에게 메시지 큐를 보낸다. msgQCreate()함수의 인자로 사용되는 메시지 큐 정보인 메시지큐 개수와 메시지의 길이를 MAX_MSG 10, MAX_MSG_LEN 128 각각 정의 하였다. msgQCreate()함수를 통해 생성할 메시지 큐 핸들러의 옵션을 저장할 변수이다. 구조체 포인터 타입으로 선언되어 있으며 구조체는 아래와같이 정의되어 있다. [main 함수] msgQCreate()함수를 사용하여 메시지 큐를 생성한다. 함수의 원형은 아래와 같다. 첫번째 인자는 메시지의 개수이고, 두번째 인자는 메시지의 길이다. 세번 째 ..
• 앞 예제에서 설명한 Task 생성 및 232 디바이스에 대해서는 설명을 생략 하도록한다. • 타이머를 생성하여 원하는 주기로 Task를 호출하는 예제이다. • 세마포어를 생성하고 Task 가 블록킹 되어있다가 타이머에 의해 원하는 주기마다 세마포어 ID를 건네받은 Task 가 수행된다. • taskLib.h 는 semBCreate()함수 옵션을 사용하기 위해 등록 하였다. • 바이너리세마포어를 생성하는 semBCreate()함수는 생성된 세마포어 핸들을 반환한다. • 반환되는 핸들을 저장하기위해 semID1, semID2 변수를 선언하였다. • SEM_ID 타입은 아래와 같이 구조체 포인터로 typedef 되어있다. • semaphore 구조체는 세마포어 핸들 및 옵션, 상태를 저장하고있다. [ ma..
VxWorks OS에서 RS232 통신 사용하기 Task1, Task2 두개를 생성하여 Task1 은 232디바이스를 열어 메시지를 보내고 Task2는 단순히 카운터를 세는 test 코드를 작성하고 결과를 확인 하였다. main.c fcntl.h 는 open() 함수의 2번째 인수인 flag를 사용하기 위해 등록 하였다. ioLib.h 는 BAUDRATE 를 설정하기 위하여 ioctl()함수를 사용하기 위해 등록 하였다. main()함수의 반환형STATUS 는 VxWorks 에서 사용되는 type이며 따라가보면 int형 인 것을 아래와 같이 알 수 있다. OK 와ERROR 는 아래와 같이 define 되어 있다. 메인에서는 taskSpawn()함수로 Task 2개를 생성하고 에러처리를 한다. myTask..
2013.05.15 VxWorks 강의 정리 목차 VxWorks OS 구성 이론 • 소프트웨어 개발자의 목적은 위 와 같은 SBC 하드웨어의 회로를 살려서 각 기능들을 수행하는 소프트웨어를 탑제하는 것 이다. • 예를들어 위와 같이 PCB기판을 소프트웨어 엔지니어가 받으면 난감할 수 밖에 없다. 이러한 하드웨어를 살리기 위해서는 기능이 문제가 아니라 메모리와 모듈들이 제대로 동작하는지가 우선이 된다. • SBC는 다행히도 제조사에서 Boot ROM에 BSP 포팅을 해준다. • Boot ROM이 실행되고 나면 플래시메모리에 있는 VxWorks Image커널이 동작한다. • window NT를 예를 들면 아래와 같은 형태로 구성되어 있다. • VxWorks 에서도 위와 같은 형태로 OS를 만드는 과정을 거쳐..
목차 Task 사전 의미 태스크 (Task) 컴퓨터에서 처리를 할 경우 처리의 단위는 두 가지의 보는 법이 있다. 하나는 OS(오퍼레이팅 시스템) 에 외부에서 주어지는 일의 단위이며, 이것을 잡(job)이라 한다. 다른 쪽은 OS가 자원을 할당하여 처리를 할 경우의 일의 단위이며 이것을 태스크라고 한다. 태스크의 개념은 자원의 효율적 사용, 다중 처리에서의 스루풋의 향상을 도모하기 위해 생긴 것이며, 각 프로그램은 태스크를 거쳐서 컴퓨터 자원을 할당하여 주행하는 것으로 된다. 태스크에는 각종 상태가 있으며, 이들을 제어하는 프로그램을 태스크 관리 프로그램이라고 하고 OS의 주요기능의 하나이다. - naver 지식백과 참조 Task Control Task에 대한 라이브러리는 taskLib이다. 이러한 루틴..
2012.05.10 VxWorks 강의 목차 FTP 통신 연결 LAN을 사용하기 위해서는 아래 그림과 같이 FTP Server 를 실행하여 사용할 수 있다. ( .out 파일을 Target에 다운로드 하기위해서는 LAN 통신이 필요하다. ) Project 생성 DKM : 가장 많이 사용하는 Project 이다. VIP : 실제로 개발하는 커널 RTP : 리얼 타임 프로세서 Project. (Linux 와 가장 흡사한 형태) VxWorks 의 shell 에서 process 가 실행중일 경우 shell에서 다른 명령을 내릴 수 없다. Host shell 을사용하면 독립적인 명령진행이 가능하다. Shell 활용 💡 shell의 스크립트를 잘 활용하여 개발하면 유연한 프로그램이 될 수 있다. Shell 명령 i..