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에 올린다.- NAND의 부트로더 부분을 MSM의 부트 시퀀스 제어기가 internal RAM으로 복사 ,실행
- NAND의 DMSS를 SDRAM의 0x00000000 번지로 복사
- 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