본문 바로가기

OS/vxworks

(31)
VxWorks6.6에서 Gratuitous ARP 발행 목차 Gratuitous ARP란? Gratuitous ARP가 필요한 상황 VxWorks에서의 구현예 결과 화면 Gratuitous ARP란?# Gratuitous ARP는 다음의 경우에 사용된다. 1. IP 충돌을 감지할 때 2. 타장비들의 ARP 테이블을 갱신할 때 3. 스위치에게 해당 장비의 MAC 주소가 스위치의 특정 포트를 사용함을 알려줄 때 4. Ethernet 장비 또는 링크가 연결되었을 때 - Gratuitous ARP를 자주 발생하는 호스트의 경우 Ethernet 장비 또는 케이블의 문제가 발생했다고 볼수 있다. Gratuitous ARP가 필요한 상황# http://cafe.naver.com/neteg.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=7..
Vxworks에서 Telnet 클라이언트 제어하기 설명 리모트에 있는 텔넷 서버에 접속하여, 원하는 커맨드를 받고 응답을 받아 수행시키는 프로그램을 작성해야 했다. 텔넷 클라이언트를 직접 구현하지 않았으며, Vxworks에서 기본으로 제공하는 telnet을 쉘에서 수행하여 read/write하는 예제이다. 해당 기능을 확인하는 용도로 만들었으며, 좀더 세밀하여 연결을 유지하고 연결 종료를 확인하는 소스는 추후 업데이트하기로 한다. 예제소스 #include #include #include #include #include #include #include #define MAX_LEN 1024 extern int shellTaskName; char commandBuff[100]; char recvBuff[100]; #define TELNET_CMD "telne..
Workbench 메모리 할당 늘리기 MemScope를 사용하다가 Workbench가 버벅되며 메모리 부족에러를 내며 죽는 현상이 발생하여, 구글 검색결과 아래와 같이 해결할 수 있었다. eclipse.ini 파일을 찾아서 수정하라고 하는데, Workbench에는 해당 설정파일을 찾을 수가 없었다. 아래와 같이 해결하였다. -Xms : 초기 힙 사이즈 -Xmx : 최대 힙 사이즈 C:\WindRiver\workbench-3.0\wrwb\platform\eclipse\wrwb-x86-win32.exe -vmargs -Xms256m -Xmx1024m
MemScope 활용 개요 소프트웨어 디버깅시 가장 까다로운 에러중의 하나가 메모리 관련된 것이 메모리 누수(Leak)일 것이다. VxWorks 6.6에서는 MemScope를 제공하여, 메모리 전반에 걸친 디버깅 정보를 제공해주는 매우 유용한 툴이다. Workbench를 구입했다면 기본적으로 사용할 수 있다. 준비사항 첨부된 메뉴얼의 2.2 Requirements를 잘 읽어보고, 자신의 환경에 맞도록 설정해주어야 한다. 테스트 하려는 시스템의 경우 PowerPC를 사용하므로 메뉴얼에 나와있는대로 Kernel Configuration에서 다음의 옵션을 활성화해준다. operating system components >> kernel components >> Allow 32-bit branches to handlers 실행 타켓..
Raw Socket :: 패킷을 구성하여 전송하자. Vxworks 6.x에서 Raw Socket을 사용하여, IP/UDP 헤더를 조작하여 해당 패킷을 전송하는 예제이다. UDP 체크섬은 0을 채워 전송하였다. #include #include "vxLib.h" #include "ipProto.h" #include "netinet/in.h" #include "netinet/in_systm.h" #include "netinet/if_ether.h" #include "netinet/ip.h" #include "netinet/ip_icmp.h" #include "netinet/udp.h" #include "sys/socket.h" #include "sockLib.h" #include "inetLib.h" static int s_iIpId = 0; #pragma p..
VxWorks에서 arpLib 사용 VxWorks에서 이더넷 헤더의 mac 어드레스를 조작하기 위하여 arpLib를 사용하였다. 간단히 사용방법을 적는다. 10.100.10.2 : vxworks 임베디드 보드 10.100.10.90 : 노트북 상황은 이렇다. 10.100.10.90에서 네트워크에 존재하지 않는 10.100.10.3으로의 arp를 요청하였을때 10.100.10.2의 vxworks에서 arpLib를 사용하여 10.100.10.3 arp 요청이 왔을때 특정 맥 주소로 응답하게 하는 것이 목적이다. 이를 위하여 vxworks의 arpLib를 사용한다. 전반적인 API는 링크를 확인한다. 커널 옵션에서 아래의 컴포넌트를 추가한다. Network Components >> Network Utility Components > arpLib..
vxWorks Standalone 시스템 구축 vxWorks로 개발한 이후에 Stand-alone 으로 시스템을 구동시키고자 할때 쓰이는 방법을 소개하고자 한다. 흔히 사용하는 방법으로는 vxWorks의 커널 프로젝트에서 usrAppInit.c 함수에 사용자의 Entry-point를 적으면 된다. 하지만, 이 방법을 사용하고자 하려면 사용자의 이미지가 vxWorks 커널에 포함되어야 하는 단점이 존재한다. 목표로하는 Stand-alone 시스템은 사용자이미지를 .out 의 형태로 유저 플래쉬에 저장하며 커널 로드시 해당 라이브러리를 동적으로 로딩하고, Entry-point의 심볼을 동적으로 찾아 수행하도록 하는데 있다. 볼드체로 된 부분이 추가된 부분이다. define 문으로 동작형태를 구분하고 있다. /* usrAppInit.c - stub app..
PPC9A 부트롬 복구 1. PPC9A 점퍼세팅을 바꿔 Recovery Boot로 부팅하도록 세팅한다. E14는 In으로 E12는 out으로 설정 2. PPC9A 점퍼세팅을 바꿔 Boot Flash와 User Flash Write를 활성화한다. E15를 In으로 설정 3. Recovery Boot로 부팅하여 U-Boot가 뜨는것을 확인한다. 4. Host컴퓨터에서 tftp 설정을 한다. C:\WindRiver\vxworks-6.6\host\x86-win32\bin\Tftpd32.exe 를 실행한다. Browse로 bootrom.bin 이 있는 곳을 가르키도록 한다. 5. U-Boot의 IP를 설정한다. set serverip X.X.X.X set ipaddr X.X.X.X 6. Flash의 Write Protect를 비활성화한..