단말기 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 응이

    Dream come true.
    응이

    달력

    태그목록