목차
목적#
- Downloadable 이미지로 충분한 테스트를 거치고 나면, Stand-Alone 이미지를 해당 보드에 올려 자체 부팅이 되어 원하는 Entry-Point를 실행시켜야 할 필요성이 있다. 이 때 사용되는 방법으로, TFFS 파일시스템에 커널, 라이브러리, 실행 코드등을 저장하여 startup script로 실행하는 방법을 설명한다.
방법#
Stand-Alone 용 커널이미지 작성#
-
Stand-Alone용 커널이미지를 작성한다. Start-up Script 실행을 위해 다음의 커널 컴포넌트를 추가한다.
- development tool components >> target shell components >> shell startup script
- 커널 컴포넌트 세팅이 끝났다면, vxWorks와 vxWorks.sym 파일을 작성한다.
Start-up Script 작성#
- 다음과 같은 형식으로 Start-up Script를 작성한다. 필요한 라이브러리 로드 후 어플리케이션을 실행한다.
cd "/tffs0/" ld 1 < DDC_LIB.out ld 1 < NEX1_1553LIB.out ld 1 < NEX1_OS_MW.out ld 1 < XXX_SW_OFP.out sp XXXMain__Fv
- 주의할 점은, 만약 C++로 작성된 이미지라면, nmppc로 해당 entry-point의 심볼을 확인하여 작성해야 한다.
- 또는, entry-point만을 extern "C" {} 로 감싸 심볼형식을 바꿔주면, 쉘상에서 C 형식의 심볼을 바로 사용할 수 있다.
-
extern "C" { void XXXMain() {
// do something... } };
타켓 보드로의 파일 복사#
커널 이미지 복사#
- Target Shell을 사용하여, /tffs0/ 에 vxWorks와 vxWorks.sym 파일을 복사한다.
-> copy "XXX:vxWorks","/tffs0/vxWorks" -> copy "XXX:vxWorks.sym","/tffs0/vxWorks.sym"
작성된 라이브러리 및 어플리케이션 복사#
- 어플리케이션 구동에 필요한 모든 파일들을 /tffs0 로 복사한다.
-> copy "XXX:DDC_LIB.out", "/tffs0/DDC_LIB.out" -> copy "XXX:NEX1_1553LIB.out", "/tffs0/NEX1_1553LIB.out" -> copy "XXX:NEX1_OS_MW.out", "/tffs0/NEX1_OS_MW.out" -> copy "XXX:XXX_SW_OFP.out", "/tffs0/XXX_SW_OFP.out"
Start-up 스크립트 복사#
- 위에서 작성된 스타트업 스크립트를 /tffs0 로 복사한다.
-> copy "XXX:xxx_start.cmd", "/tffs0/xxx_start.cmd"
파일 복사 스크립트#
-
본 프로젝트에서 Zeroize를 한 후라면, 일일이 모든 파일들을 복사해 줘야하므로, 다음과 같이 파일 복사 스크립트를 만들어 사용해도 된다.
- download.cmd 의 내용
USER_FLASH_Unlock usrTffsConfig 0,0,"/tffs0"copy "XXX:vxWorks","/tffs0/vxWorks" copy "XXX:vxWorks.sym","/tffs0/vxWorks.sym" copy "XXX:DDC_LIB.out","/tffs0/DDC_LIB.out" copy "XXX:XXX_SW_OFP.out","/tffs0/XXX_SW_OFP.out" copy "XXX:NEX1_1553LIB.out","/tffs0/NEX1_1553LIB.out" copy "XXX:NEX1_OS_MW.out","/tffs0/NEX1_OS_MW.out" copy "XXX:xxx_start.cmd","/tffs0/xxx_start.cmd"
부트 파라미터 수정#
- Downloadable 프로젝트로 테스트할 당시 부트 파라미터는 다음과 같을 것이다.
-
[VxWorks Boot]: p
boot device : fei unit number : 0 processor number : 0 host name : XXX file name : vxWorks inet on ethernet (e) : 192.168.1.3:ffffff00 host inet (h) : 192.168.1.2 gateway inet (g) : 192.168.1.1 user (u) : xxx ftp password (pw) : xxx1 flags (f) : 0x8 target name (tn) : LSV-70C other (o) : fei0
- TFFS Stand-Alone으로 할 경우, 부트 파라미터는 다음과 같이 수정해야 한다.
-
[VxWorks Boot]: p
boot device : tffs=0,0 unit number : 0 processor number : 0 host name : XXX file name : /tffs0/vxWorks inet on ethernet (e) : 192.168.1.3:ffffff00 host inet (h) : 192.168.1.2 gateway inet (g) : 192.168.1.1 user (u) : xxx ftp password (pw) : xxx1 flags (f) : 0x8 target name (tn) : LSV-70C startup script (s) : /tffs0/xxx_start.cmd other (o) : fei0
- 쉘상에서 부트 파라미터 수정은 bootChange 명령을 사용하여 수정할 수 있다.
이 글은 스프링노트에서 작성되었습니다.