Docstoc

vxWorks 6.7 Porting Pentium

Document Sample
vxWorks 6.7 Porting Pentium Powered By Docstoc
					vxWorks 6.7 Porting to Pentium PC


준비물:


1. Pentium 마더보드, RTL8139 NIC 1~2개, 9Pin 시리얼 케이블(크로스 2->3, 3->2, 5->5), CF메모리(CF to IDE 어답터 포함)
2. vxWorks 6.7 설치 소프트웨어, Host PC(Wind XP/Vista/7)




설치 및 디버깅:


1. Host PC Windows XP에 vxWorks 6.7 설치
2. Pentium PC 타겟 BSP 만들기
3. CF 메모리에 BSP bootloader Image 굽기
4. BSP 설정 및 booting
5. vxWorks 6.7 Image 만들기
6. Target Server 설정하기
7. Ethernet(RTL8139)로 vxWorks Kernel Image를 load하여 실행
8. "Hello World" Download Image 만들기
9. Wind River WorkBench 3.1/3.2에서 "Hello World" 소스레벨 디버깅
10. "Hello Workd" + Kernel Image를 CF메모리에 굽기
11. CF메모리의 Kernel Image(Vxowrks Image)로 Booting
기타.     iPhone 무선 네트워크로 vxWorks 제어 및 디버깅




-----
1. Host PC Windows XP에 vxWorks 6.7 설치




-----
-----
-----
2. Pentium 타겟 BSP 만들기


2-1. BSP 디렉토리 만들기
C:\WindRiver\vxworks-6.7\target\config 디렉토리에서 vt82c693 디렉토리를 만든다.(보드 이름이 없어서 칩셋 이름으로
결정)


2-2. 준비된 마더보드와 가장 유사한 pcPentium3 BSP 파일 복사
C:\WindRiver\vxworks-6.7\target\config\vt82c693                             디렉토리에                 C:\WindRiver\vxworks-
6.7\target\config\pcPentium3\*.*(모든 파일)를 복사한다.


2-3. Makefile 수정


2-3-1. Makefile 의 타겟 디렉토리, 벤더, 보드 이름을 변경:


TARGET_DIR = pcPentium3
VENDOR           = allVender
BOARD            = VT82C693


2-3-2. Makefile 의 롬 사이즈 값을 변경:


ROM_SIZE                 = 00090000 를 여유 있게 8 MByte로 변경
ROM_SIZE                 = 00800000            # number of bytes of ROM space


2-4. config.h 파일 수정


2-4-1. config.h 파일의 DEFAULT_BOOT_LINE 변경


네트웍 Booting의 경우:
"rtl(0,0) host:vxWorks h=192.168.1.102 e=192.168.1.88 g=192.168.1.1 u=vx pw=vx f=0x00 tn=x86v67"


CF메모리 Booting의 경우:
"ata=0,0(0,0)host:/ata0a/vxWorks h=192.168.1.102 e=192.168.1.88 g=192.168.1.1 u=vx pw=vx f=0x00 tn=x86v67 o=rtl"


****************** 예제 ****************
#if (CPU == I80386)
#define DEFAULT_BOOT_LINE \
        "fd=0,0(0,0)host:/fd0/vxWorks.st h=90.0.0.3 e=90.0.0.50 u=target"
#elif      (CPU == I80486)
#define DEFAULT_BOOT_LINE \
        "fd=0,0(0,0)host:/fd0/vxWorks.st h=90.0.0.3 e=90.0.0.50 u=target"
#elif      (CPU == PENTIUM)
#define DEFAULT_BOOT_LINE \
        "fd=0,0(0,0)host:/fd0/vxWorks.st h=90.0.0.3 e=90.0.0.50 u=target"
#elif      (CPU == PENTIUM2)
#define DEFAULT_BOOT_LINE \
        "fd=0,0(0,0)host:/fd0/vxWorks.st h=90.0.0.3 e=90.0.0.50 u=target"
#elif      (CPU == PENTIUM3)
#define DEFAULT_BOOT_LINE \
        "rtl(0,0) host:vxWorks h=192.168.1.102 e=192.168.1.88 g=192.168.1.1 u=vx pw=vx f=0x00 tn=x86v67"


-----
#elif      (CPU == PENTIUM4)
#define DEFAULT_BOOT_LINE \
        "fd=0,0(0,0)host:/fd0/vxWorks.st h=90.0.0.3 e=90.0.0.50 u=target"
#endif /* (CPU == I80386) */
**************** 예제 끝 ***************


2-4-2. SYS_WARM_TYPE 및 Boot 관련 수정


#define SYS_WARM_TYPE               SYS_WARM_FD 프로피 웝브트를 CF메모리 타입 SYS_WARM_ATA 로 변경
#define SYS_WARM_TYPE               SYS_WARM_ATA /* warm start device */


****************** 예제 ****************
#define SYS_WARM_TYPE               SYS_WARM_ATA /* warm start device */


#if TRUE
#define BOOTROM_DIR "/vxboot"
#else
#define BOOTROM_DIR "/fd0"
#endif


#if TRUE
#define BOOTROM_BIN "/vxboot/bootrom.sys"
#else
#define BOOTROM_BIN BOOTROM_DIR "/bootrom.sys"
#endif


#if TRUE
#define BOOTROM_AOUT "/vxboot/bootrom.dat"
#else
#define BOOTROM_AOUT BOOTROM_DIR "/bootrom.dat"
#endif


/* driver and file system options */
#ifndef _WRS_CONFIG_SMP
#define INCLUDE_FD                     /* include floppy disk driver */
#undef INCLUDE_FD                       /* include floppy disk driver */
#endif


#define       INCLUDE_ATA                 /* include IDE/EIDE(ATA) hard disk driver */
**************** 예제 끝 ***************


2-4-3. Network driver 를 INCLUDE_RTL8139_VXB_END 수정


****************** 예제 ****************
/* Network driver options: VxBus drivers */


#undef INCLUDE_AM79C97X_VXB_END
#undef INCLUDE_AN983_VXB_END
#undef INCLUDE_FEI8255X_VXB_END


-----
#undef INCLUDE_GEI825XX_VXB_END
#undef INCLUDE_MVYUKONII_VXB_END
#undef INCLUDE_MVYUKON_VXB_END
#undef   INCLUDE_NS8381X_VXB_END
#define INCLUDE_RTL8139_VXB_END
#undef INCLUDE_RTL8169_VXB_END
#undef INCLUDE_TC3C905_VXB_END
#undef INCLUDE_NE2000_VXB_END


/* PHY and MII bus support */


#define INCLUDE_MII_BUS
#define INCLUDE_GENERICPHY
#undef INCLUDE_DM9191PHY
#undef INCLUDE_LXT972PHY
#undef INCLUDE_MV88E1X11PHY
#undef INCLUDE_RTL8201PHY
#undef INCLUDE_RTL8169PHY
#undef INCLUDE_VSC82XXPHY


#endif /* INCLUDE_VXBUS */


#define INCLUDE_END                 /* Enhanced Network Driver Support */


#undef INCLUDE_DEC21X40_END              /* (END) DEC 21x4x PCI interface */
#undef INCLUDE_EL_3C90X_END              /* (END) 3Com Fast EtherLink XL PCI */
#undef INCLUDE_ELT_3C509_END         /* (END) 3Com EtherLink III interface */
#undef INCLUDE_ENE_END               /* (END) Eagle/Novell NE2000 interface */
#undef    INCLUDE_ULTRA_END               /* (END) SMC Elite16 Ultra interface */
#undef INCLUDE_GEI8254X_END          /* (END) Intel 82543/82544 PCI interface */
#undef INCLUDE_LN_97X_END                /* (END) AMD 79C97x PCI interface */


#undef    INCLUDE_BSD                    /* BSD / Netif Driver Support (Deprecated) */


#undef    INCLUDE_EEX                    /* (BSD) Intel EtherExpress interface */
#undef    INCLUDE_EEX32                  /* (BSD) Intel EtherExpress flash 32 */
#undef    INCLUDE_ELC                    /* (BSD) SMC Elite16 interface */
#undef    INCLUDE_ESMC                    /* (BSD) SMC 91c9x Ethernet interface */
#undef    INCLUDE_AR521X_END               /* Atheros AR521X WLAN Support */


#ifndef INCLUDE_VXBUS
#define INCLUDE_FEI_END            /* (END) Intel 8255[7/8/9] PCI interface */
#endif /* !INCLUDE_VXBUS */
**************** 예제 끝 ***************


2-4-4. NV_RAM_SIZE 수정


****************** 예제 ****************
/* memory addresses, offsets, and size constants */


-----
#if (SYS_WARM_TYPE == SYS_WARM_BIOS)                       /* non-volatile RAM size */
#      define NV_RAM_SIZE           (NONE)
#else
/* #     define NV_RAM_SIZE              (0x1000) */
#      define NV_RAM_SIZE           (NONE)                /* ysp non-volatile RAM size */
#endif
**************** 예제 끝 ***************


2-4-5. SYSTEM_RAM_SIZE 및 ROM_SIZE 수정


****************** 예제 ****************
#if    (VM_PAGE_SIZE == PAGE_SIZE_4KB)                   /* 4KB page */
#      define SYSTEM_RAM_SIZE       (0x02000000)          /* 32MB minimum 8MB system RAM */
#else     /* PAGE_SIZE_[2/4]MB */                      /* [2/4]MB page */
#      define SYSTEM_RAM_SIZE       (0x02000000)          /* minimum 32MB system RAM */
#endif /* (VM_PAGE_SIZE == PAGE_SIZE_4KB) */




#ifdef BOOTCODE_IN_RAM
#      undef ROMSTART_BOOT_CLEAR
#      define ROM_BASE_ADRS          (0x00008000)         /* base address of ROM */
#      define ROM_TEXT_ADRS          (ROM_BASE_ADRS) /* booting from A: or C: */
#      define ROM_SIZE              (0x00800000)         /* 8MB size of ROM */
#else
#      define ROM_BASE_ADRS          (0xfff20000)        /* base address of ROM */
#      define ROM_TEXT_ADRS          (ROM_BASE_ADRS) /* booting from EPROM */
#      define ROM_SIZE              (0x0007fe00)        /* size of ROM */
#endif
**************** 예제 끝 ***************




-----
2. Pentium 타겟 BSP 만들기
2-1. BSP Project 생성(Workbench 에서)




-----
2.-2. BSP Build Option 설정




-----
2-3. BSP Project Build




-----
2-4. BSP Build Finished




-----
2-5. BSP Build Finished 된 bootrom.bin 파일




-----
3. CF 메모리에 BSP bootloader Image 굽기


3-1. CF메모리 포멧




3-2. CF메모리 활성




-----
3-3. Open Workbench Development Shell




-----
3-4. mkboot
cd C:\WindRiver\vxworks-6.7\target\config\vt82c693
C:\WindRiver\vxworks-6.7\target\config\vt82c693>mkboot f: bootrom.bin




-----
-----
4. BSP 설정 및 Booting


4-2. 시리얼 COMx Port 9600 BPS 설정




-----
4-2. 시리얼 COMx Port 연결




-----
4-3. [VxWorks Boot]: p 명령어 Boot Parameta 확인




-----
4-3. [VxWorks Boot]: c 명령어 Boot Parameta 수정
Boot device 를 rtl0 로 변경 -> (RTL8139) Ethernet
File name 을 vxWorks 로 변경




-----
5. vxWorks 6.7 Image 만들기


5-1. vxWorks 6.7 Project 생성




-----
5-2. vxWorks Project Component Configuration




-----
4-4. FTP Server 실행




4-5. FTP Server 설정




4-6. FTP Server User Name, Password, Home Directory 설정
User Name: vx
Password; vx
Home Directory: C:\WindRiver\WB31_VxWorks\vt82c693_rtl8139\default




-----
4-7. FTP Server Host address 설정
Host address:192.168.1.102 Add/Update 클릭




7. Ethernet(RTL8139)로 vxWorks Kernel Image를 load하여 실행
7-1. BSP Boot 명령어 실행
[VxWorks Boot]: @




-----
-----
-----
8. Target Server 설정하기




-----
-----
-----
-----
9. "Hello World" Download Image 만들기


9-1. “Hello World” Project 생성




-----
-----
-----
-----
10. Wind River WorkBench 3.1/3.2에서 "Hello World" 소스레벨 디버깅




-----
-----
-----
10. "Hello Workd" + Kernel Image를 CF메모리에 굽기
Build 된 vxWorks 파일을 CF메모리에 copy.
Boot Parameta를 수정




BSP Boot 명령어 실행하여 CF메모리로 Boot
[VxWorks Boot]: @




-----
기술지원팀 박용식 차장 pysik@nltelecom.com / 02-813-7474


감사합니다.


***** 끝 *****




-----

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:37
posted:8/17/2012
language:Korean
pages:40