📌 VxWorks 공유 데이터의 일반적인 사용 사례는 하나이상의 RT에서 PS 커널 작업과 같은 다른 메모리 공간에서 Task 사이에 정보를 공유하는 것이다. 최초에 공유메모리 생성시 OM_CREATE옵션을 사용하고, 접근시에는 0을사용한다. 🔔 생성 SD_ID SdId; int *pValue; SdId = sdOpen(“/SharedData”, 0, OM_CREATE, 1000, 0, SD_ATTR_RW | SD_CACHE_OFF, (void **)&pValue); * pValue = 0x12345678; 🔔 접근 SD_ID SdId; int *pValue; SdId = sdOpen(“/SharedData”, 0, 0, 1000, 0, SD_ATTR_RO | SD_CACHE_OFF, (void **)&..
목차 userInit() 함수의 동작 분석 롬에서 실행되는 롬 레지던트 이미지가 아닌경우, usrInit() 함수가 최초로 램에서 실행되는 함수이다. 따라서, 혹시 romStart()에서 램으로 복사한 이미지에 문제가 있을경우 이곳으로 제어권을 넘기는 순간 시스템이 비 정상적으로 동작을 하게 된다. 물론, 그런 경우엔, JATG 디버거 등을 이용해서 램을 테스트해 보거나 하는 방법이 필요할 것이다. 여기서는 램에 복사된 이미지가 이상이 없다고 가정을 하고, 실행 과정을 설명하도록 하겠다. 한가지 주의할 것은, romStart()에서 설명한 바와 같이, usrConfig.c 파일에 들어있는 usrInit() 함수의 경우에도, 특별한 문제가 없을 경우 수정을 할 필요가 없다는 것이다. 물론 디버깅 메시지 출..
앞 예제의 소스를 메시지 큐를 포함하여 수정하였다. 메시지 큐 외의 설명은 앞예제를 참고한다. main() 함수에서 메시지 큐를 생성하고, Task1 이 5초에 한번씩 Task2에게 메시지 큐를 보낸다. msgQCreate()함수의 인자로 사용되는 메시지 큐 정보인 메시지큐 개수와 메시지의 길이를 MAX_MSG 10, MAX_MSG_LEN 128 각각 정의 하였다. msgQCreate()함수를 통해 생성할 메시지 큐 핸들러의 옵션을 저장할 변수이다. 구조체 포인터 타입으로 선언되어 있으며 구조체는 아래와같이 정의되어 있다. [main 함수] msgQCreate()함수를 사용하여 메시지 큐를 생성한다. 함수의 원형은 아래와 같다. 첫번째 인자는 메시지의 개수이고, 두번째 인자는 메시지의 길이다. 세번 째 ..
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..
[2013.05.09] VxWorks 강의 목차 VxWorks Overview 실시간 운영체제 개요 실시간 운영체제 (RTOS-Real Time Operating System)는 코드 실행을 시간에 따라 정확히 관리하고, 시스템 자원을 관리하고, 응용 프로그램 개발을 위한 일관된 기반을 제공하는 일종의 프로그램. 임베디드 시스템이 가지는 특성 중 실시간적인 요소를 충족하기 위해서 나온 운영체제. RTOS 에서 가장 중요한 부분은 스케쥴러(Scheduler)로서 실시간 시스템의 여러가지 기능들을 관리하는 태스크들에게 CPU time 을 할당해주는 기능을 함. 분류 세부내용 응답시간이 시스템에 미치는 영향 Hard Real Time System - 실시간 적으로 처리되지 않으면 치명적인 결함을 발생하는 실시..