[Semaphore Examples] ㆍ1초에 60번 호출되는 타이머 함수이다.ㆍ60Hz 주기로 세마포어 ID를 건넨다.ㆍ주석처리된 logMsg는 1초에 60번 출력될 것으로 예상할 수 있다. ㆍ1초에한번 카운터에 2를 더해서 printf로 출력하는 Task이다 ㆍ바이너리 세마포어를 생성하고 보조시스템 클럭을 60Hz주기로 설정한후 타이머 함수에 연결한다. ㆍShell 에서 호출하면 시스템클럭, Task, 세마포어를 삭제하는 함수이다.
Overview. [멀티플렉싱(multiplexing)] Select 함수 사용법. VxWorks define … VxWorks define … ㆍint n : 검색 대상이 되는 파일 디스크립터의 수 (+1) ※ 보다 효율적인 수행을 할 수 있도록 범위를 설정한다. select 함수의 첫 번째 인자로 file descriptor의 수를 넘겨줄 경우 일반적으로 file descriptor는 생성될 때마다 값이 1씩 증가 함으로 가장 큰 file descriptor값에 1을 더해준다. ㆍfd_set *readfds : 입력 스트림에 변화가 발생하였는지 확인(수신할 데이터가..
VxWorks shell 단축키 정리 ㆍVi 와 같이 편집 키를 사용하여 명령줄을 편집한다. ㆍ[ESC] 키를 통해 편집 모드로 전환. ㆍ[Ctrl] + U 라인을 지운다. ㆍ편집 모드에서 몇 가지 유용한 명령어는 아래를 참고. KeyDescriptionKBackward through history bufferjForwards through history bufferhMove cusor to the leftlMove cusor to the rightaAppend after cusorAAppend at end of lineiInsert before cursorIInsert at beginning of linercReplace current character with character cxDelete cur..
📌 VxWorks 6.x의 Simulator에서 네트워크를 사용하기 위해서는 별도의 설정이 필요하다. WRTAP 설정 제어판을 연다. 하드웨어 추가 마법사를 실행한다. "예, 하드웨어를 이미 연결했습니다." 를 선택한다. "새 하드웨어 장치 추가" 를 선택한다. "목록에서 직접 선택한 하드웨어 설치(고급)" 을 선택한다. "네트워크 어댑터" 를 선택한다. %WindRiver%vxworks-6.x\host\x86-win32\bin 폴더에 있는 wrtap.inf 를 선택한다. ex) C:\WindRiver\vxworks-6.8\host\x86-win32\bin "WindRiver WRTAP"을 선택한다. 설치를 수행한다. vxsimnetd 수행 %WindRiver%vxworks-6.x\host\x86-win..
목차 userInit() 함수의 동작 분석 롬에서 실행되는 롬 레지던트 이미지가 아닌경우, usrInit() 함수가 최초로 램에서 실행되는 함수이다. 따라서, 혹시 romStart()에서 램으로 복사한 이미지에 문제가 있을경우 이곳으로 제어권을 넘기는 순간 시스템이 비 정상적으로 동작을 하게 된다. 물론, 그런 경우엔, JATG 디버거 등을 이용해서 램을 테스트해 보거나 하는 방법이 필요할 것이다. 여기서는 램에 복사된 이미지가 이상이 없다고 가정을 하고, 실행 과정을 설명하도록 하겠다. 한가지 주의할 것은, romStart()에서 설명한 바와 같이, usrConfig.c 파일에 들어있는 usrInit() 함수의 경우에도, 특별한 문제가 없을 경우 수정을 할 필요가 없다는 것이다. 물론 디버깅 메시지 출..
romStart( ) 함수의 동작 분석 romStart( ) 함수의 동작 분석 romInit.s 로부터 제어권을 넘겨받아서 실행되는 romStart( ) 함수의 동작을 분석해 보도록 한다.어셈블러 ROM 초기화 코드에서 하는 가장 중요한 일은, 시스템의 RAM 영역을 사용 가능한 형태로 만들어놓는 것이다. 그렇게 해야 CPU 의 스택 포인터 값을 그 RAM 영역으로 설정 할 수가 있고, 스택 포인터가설정이 되어야 비로서 C함수를 수행할 준비가 되는 것이다. romStart( ) – 최초로 수행되는 C함수romInit.s에 있는 어셈블러 함수에 의해서 최소한의 보드 초기화가 완료되고, RAM 영역이 사용 가능한상태가 되서 romStart( ) 함수로 제어권이 넘어오게 된다. 209 void romStart..