VxWorks명령어

etc 2009. 5. 12. 16:04

*-* 목차 *-*
1. 태스크 관리용 명령어
2. 태스크 정보용 명령어
3. 시스템 정보 명령어
4. 시스템변경과 디버그용 명령어
5. 오브젝트 표시용 명령어.
6. 네트워크 상태표시용 명령어
*-* *-* *-* *-* *-* *-* *-* *-*


1. 태스크 관리용 명령어

  sp                디폴트 파라멘트를 갖는 태스크를 생성한다.
  sps              태스크를 생성하지만, 중단시켜 둔다.
  td                 태스크를 삭제한다.
  ts                 태스크를 중단한다.
  tr                  중단했던 태스크를 재개한다.
  period           임의의 함수를 정기적으로 호출하는 태스크를 생성한다.
  repeat           임의의 함수를 반복적으로 호출하는 태스크를 생성한다.
  taskIdDefault  디폴트(현재)태스크 아이디의 설정과 표시한다.


2. 태스크 정보용 명령어

① checkStack     

  인수로 태스크를 지정한 경우, 태스크의 스택정보 상태를 표시.
태스크를 지정하지 않은 경우, 전체 태스크의 스택정보 상태를 표시. (스택정보 상태 : 스택크기, 현재 스택바이트수) 

최대 사용스택 바이트수(HIGH)는 스택의 선두부의 미사용 바이트수 (MARGIN=SIZE-HIGH) 이다.
필요한 스택공간양을 알고 싶을 때나 스택오버플로를 검지하고 싶을 때 사용
② i                      

  시스템정보를 표시한다.
이 명령어는 시스템내의 태스크와 각 태스크에 관한 정보(상태, PC, SP, TCB주소등)를 표시한다.
메모리 절약을 위해, 이 명령어는 타겟에 대해 소개(?)를 반복한다.
그로 인해, 일관성을 잃은 스냅샷을 표시하기도 한다.
③ iStrict  

  i명령어와 같은 정보를 표시하지만, 타겟에대한 조회는 1번에 행한다.
도중, 메모리를 여분으로 소비하지만 정확한 스냅샷을 얻을 수 있다.
④ ti  

  태스크정보를 표시한다.
태스크의 TCB에 들어있는 전체의 정보를 표시한다.
태스크정보에는, i명령어가 표시하는 정보에 더해, 태스크의 전체 레지스터 및 TCB체인내의 링크를 포함한다. 파라메터를 생략하는 경우, 현재 태스크에 관한 정보가 표시된다.
⑤ w  

  태스크의 보유정보의 요약을 태스크별로 표시한다.
시스템내의 전체 태스크에 대해, 혹은, 인수를 지정한 경우, 지정태스크에 대해  taskWaitShow를 정지모드로 호출한다.
⑥ tw  

  해당태스크가 보유상태인 오브젝트에 관한 정보를 표시한다.
해당태스크에 관해, taskWaitShow를 장황모드(?)로 호출한다.
⑦ tt  

  스택 트레이스를 표시한다.
⑧ taskIdFigure

  태스크명을 지정하면 태스크 아이디를 알려준다.


3. 시스템 정보 명령어

  devs               타겟시스템이 인식하는 전체의 디바이스 드라이버의 리스트를 표시한다.
  lkup                심볼 테이블의 심볼 리스트를 표시한다.
  lkAddr             지정한 값에 가까운 주소의 심볼리스트를 표시한다.
  d                     타겟메모리를 표시한다.
                        시작주소, 메모리단위의 사이즈, 표시하는 단위수를 지정할 수 있다.
  l                      지정한 주소의 명령을 역 어셈블해서 표시한다.
  printErrno         최신의 에러 상태를 표시한다.
  h                     명령어 이력을 최대 20행까지 표시한다.
  help                 선택한 쉘명령어를 요약해서 표시한다.
  cd                   호스트의 work directory로 변경한다. (타겟에서는 무효)
  pwd                 호스트의 work directory를 표시한다.
  ls                    호스트의 work directory내의 파일 리스트를 표시한다.
  version             VxWorks의 버전정보를 표시한다.
  shellHistory       쉘이력을 설정 혹은 표시한다.
  printLogo          Tornado쉘의 로고를 표시한다
  shellPromptSet  C인터프리터의 쉘프롬프트를 변경한다.


4. 시스템변경과 디버그용 명령어
  ld                오브젝트 모듈을 타겟에 로드해, 실행중의 애플리케이션에 동적으로 링크한다.
  unld             동적으로 링크된 오브젝트 모듈을 타겟 메모리로부터 삭제해, 점유했던 영역을 개방
  m                 adr로 시작하는 width(byte,short,long)만큼의 메모리를 변경한다.
  mRegs          특정의 태스크의 레지스터값을 변경한다.
  b                  지정한 태스크 혹은 전체의 태스크에 대해 브레이크 포인트의 설정과 표시를 한다.
  bh                하드웨어 브레이크 포인트를 설정한다.
  s                  프로그램을 다음 명령으로 진행시킨다.
  so                 서브루틴을 1개 뛰어 건너 뛰어, 1줄씩 실행한다.
  c                   브레이크 포인트로부터 수행한다.
  cret               현재 서브루틴로 돌아 올 때까지 수행한다.
  bdall              전체 브레이크 포인트를 삭제한다.
  bd                 브레이크 포인트를 삭제한다.
  bootChange    보존되어진 부트 파라메터를 변경한다.
  CTRL+X or      reboot 타겟의 제어권을 타겟 부트롬에 반납한다. 타겟서버를 리셋해, 쉘을 재접속


5. 오브젝트 표시용 명령어
6. 네트워크 상태표시용 명령어

Posted by 응이

단말기 S/W 구조

etc 2009. 5. 11. 10:42
  • rex: 퀄컴의 RTOS, 4KB ROM, 400B RAM, 500B 스택, 우선순위 스케줄링
  • Task


    •  watch dog task
      : 최상위 우선 순위를 갖고 모든 task 감시, 일정 시간 내에 특정 비트를 설정치 안ㅇㅎ으면 리셋
    • TMC  task
      : 3계층에서 동작하며 단말기의 호 처리를 총 감독
    • Diagnostic(진단) task
      : DM과 상호작용, 단말기 내부의 제어, 디버그 및 데이터 로깅, Uart와 USB I/O 포함
    • User Interface task
      : Handset task와 sound task 통해 입출력 처리, call manager와 연동하여 호 처리
    • TxRx task

      : Tx task -> 2계층에서 동작, 발신호 및 채널 검색등 송신 관련 처리
        Rx task -> Tx task 반대. ㅋ

    • NV task
      : 다른 task들을 위해 flash를 잃어 오고 저장,
    • Sleep task
      : 우선 순위가 매우 낮음
    • Call Manager task
      : 호 처리를 위해 UI와 TMC task의 인터페이스
    • SMS task

      : 문자

    • EFS task
      : 파일 시스템, MIDI와 같은 멀티미디어 파일 저장에 사용
    • PSDM task
      : App/UI가 자신의 현재 위치 정보를 얻을 수 있는 인터페이스
    • searcher task
      : 시스템의 타이밍 정보를 얻고 ,각종 시스템 정보 획등
    • Protocol service task
      : 무선 데이터 망을 위한 TCP/IP/PPP의 프로토콜 처리
    • UI task
      : 폰의 H/W에 display, sound, key entry에 대한 인터페이스
        기능 -> dial a num, make calls, menu change, display, display icons


      • 부팅시 초기화 수행
      • Giant loop -> 수행할 다음 행동들의 명령어 대기, 수행 후 다시 대기
      • signal -> input은 signals를 통해 waiting/processing signals
      • 계층 -> Dispatcher
               -> Handler
               -> state machine
      • ui로 시작 -> h : handler
                     -> s : state
                     -> x : eXternal interface
                     -> u : utility function
      • ui.c - Dispatcher layer


        • 가장 최상층
        • giant loop 구성
        • 입력에 대한 적절한 처리를 하는 함수로 이동
        • ui task가 시작 될 때마다 호출, start-up 초기화 의무

      •  Handler layer


        • ui task의 외부 입력 처리
        • 키 입력, 다른 task에서 올 명령, call back  타이머 명령등
        • 시그널 처리를 위한 함수 호출

      • signal handler


        • ui task 의 대부분 시그널 처리
        • 다양한 이벤트 형태로 시그널을 변환
        • 처리할 state machine으로 전달

      • key handler

        • HS task로부터 키를 누르면 처리
        • 이벤트로 변경
        • 이벤트 큐에 추가

      • Callback timer handler

        • 절절한 시간 간격의 시그널을 얻음
      • command handler

        • 다른 task로부터 온 메시지를 이벤트로 변경하고 state machine으로 전달
        • UI_CMD_Q_SIG 이벤트 받을시 command queue에 입력.
      • UI task와 Call Manager task 통신

        • 통화 시작, power on/off, 통화끝, 걸려온 전화에 응담(UI가 command를 보내는 경우)
        • CM이 events/responses 보내는 경우, 통화가 connect, release, alert exists
    • 부팅 과정

      • start-up : 리셋 처리부터 기본적인 입출력 장치의 초기화 과장
      • NAND는 (page로 액세스, 주소 접근 X)이기 때문에 MSM의 internal RAM에 부트코드를 실행시켜
        NAND의 내용을 RAM에 올린다.

        1. NAND의 부트로더 부분을 MSM의 부트 시퀀스 제어기가 internal RAM으로 복사 ,실행
        2. NAND의 DMSS를 SDRAM의 0x00000000 번지로 복사
        3. SDRAM으로 부터 2차 부팅 실행
      • bootapp.s가 bootstrap, CPU register 초기화, call main()
      • mobile.c의 main()의 rex_init() 실행
      • task 실행
    • call manager

      • 클라이언트 app가 DMSS와 AMSS 소프트 웨어를 접근하는 인터페이스
      • 클라이언트 APP와 DMSS 분리
      • 동작원리 -> 동기식
                     -> 비동기식 : 요청과 응답에 대한 callback


    • CDMA 2000 layer 1 : H/W 적인 동작 위주의 Physical layer
    • CDMA 2000 layer 2:

      • message transmission
      • guaranteed delivery
      • dectection of all duplicate MSG
      • exception reporting
      • error rate statitics -> stop & wait
                                  -> go bakc - N
                                  -> selective - repeat ARQ
    • CDMA 2000 layer 3 : DMSS
  • Posted by 응이

    -------------------------------------------------------------------------

      1. Drivers

    -------------------------------------------------------------------------

    Watchdog Task

    - DMSS software 중에서 가장 priority가 높은 task.

    - Task간의 동작들이 원활히 동작되는지 mornitering하고, hardware watchdog을 report 한다.

    - dog_report() 함수로 다른 task에서 업데이트되는 bit mask를 체크한다.


    Sound Task

    - DTMF tone, alert 등과 같이 phone에 필요한 모든 소리를 제어하는 task.

    - MSM 3100 이후, Sound Server Task로 교체되어 더 유동적인 sound 명령을 수행한다.


    Transmit Task

    - CDMA와 FM으로 신호를 전송하는 task.

    - Voice frame을 CDMA로 보코더화.


    Receive Task

    - 신호를 수신하는 task.

    - CDMA를 voice frame을 보코더화.


    -------------------------------------------------------------------------

      2. Call Processing

    -------------------------------------------------------------------------

    Searcher Task

    - System timing을 얻고, multi path 환경을 monitoring 하여 자신의 신호를 찾는 task.


    RxTx Task

    - Signaling message의 layer2 에서의 ack 과정을 수행하는 task.


    Main Control Task

    - Call processing 과정을 관장하는 task.

    - CDMA의 call processing을 위한 MCCDMA와 FM의 call processing을 위한 ACPMC로

      나누어진다.


    Handset Task

    - User가 입력하는 keypad를 monitoring 함.


    Diagnostic Task

    - DM(Diagnostic Monitor)과 관련된 모든 일을 지원하는 task.

    - 외부 serial port가 phone의 memory에 접근할 수 있도록 하여 test, debug 기능을 지원한다.


    -------------------------------------------------------------------------

      3. Data and Ohters

    -------------------------------------------------------------------------

    Call Manager Task

    - MC(Main Control)와 call processing간의 interface (UI, DIAG, DS)


    SMS Task

    - SMS API와 mobile 기반의 SMS를 지원하는 task.


    QDSP Task

    - Phone에 사용되는 여러 firmware image나 client들을 관리하는 task.

    - 일반적인 7 firmware image : VOC, TTY, VR, SYNTH, MP3, GPS, BT

    - 일반적인 4 client : VS, SRCH, BT, GPS


    Vocoder Task

    - MSM 3100에서 QDSP2로의 vocoder driver task.


    BT (Bluetooth Task)

    - Bluetooth protocol.

    - BT, UART, USB 간에 선택적으로 IS-707 Data Service가 가능하다.

    - BT device의 management 와 control를 지원한다.

    - 추가적인 BT application을 위해 사용자를 위한 API를 제공한다.


    PDSM (Position Determination)

    - gpsOne 기반의 위치선정을 위한 API task.

    - TCP/IP 상에서의 IS-801 message의 exchange작업을 관리한다.


    User Interface Task

    - User간의 상호관계를 조정한다.


    NV (Nonvolatile Memory Task)

    - EEPROM에 읽고 쓰기 기능을 관장한다.

    - Flash file system상에서 EEPROM storage 기능을 simulation하기 위해 NV Item Manager

      (NVIM) task로 교체되기도 한다.


    Sleep Task

    - Task가 수행되지 못할 때 수행된다.

    - 가능하면 power-saving sleep mode에 CPU를 놓는다. 

     
    Posted by 응이

    Dream come true.
    응이

    달력

    태그목록