현재 POD 쪽 각각의 함수들에 대한 설명을 하고 있다. 각 소스 파일별로 분류했다.

Card_device.c

여기서는 주로 POD 의 초기 하드웨어에 대한 함수들이 있다.

용도 POD 에서 사용하는 GPIO 포트를 OPEN 시킨다. 각 포트마다, input 또는 output 으로 설정한다.
용도 GPIO 포트에서 HIGH 시그널이 나오게 한다.
용도 GPIO 포트에서 LOW 시그널이 나오게 한다.
용도 GPIO 포트에서 값을 읽어들인다.
용도 POD 초기 루틴 중 가장 먼저 호출되는 함수로서 앞서 설명한 POD 에 필요한 GPIO 포트를 열고(open), 통신에 필요한 게이트(74LVC245)를 열기위해서 시그널을 콘트롤 한다. 초기에 아래와 같이 레지스터 세팅을 해준다.
*((U32*)(0x2010e000+0x04)) = 0x00000002;
*((U32*)(0x2010e000+0x04)) = 0x00000004;  //pod_vcc_en
*((U32*)(0x2010f000+0x04)) = 0x00000010; //reset

위의 부분을 주석처리해도, 전체적인 동작에는 큰 영향은 없는 듯 하다, 특정 GPIO 포트의 초기 시그널을 어떻게 할 것인가를 세팅한다. 하지만, 좀더 확실한 동작을 위해서 필요한 부분이다.

용도 기존의 attribute mode 의 POD 동작이 완료되면, POD 의 COR write 이후 5517 쪽에서도 세팅을 바꾼다. 7020 과 합치면서 문제가 되었던 부분이다.
용도 cis 체크이후에 tuple 을 분석해서 3.3V 또는 5V 를 VPP 전원으로 넣는다.
용도 초기 VS1 GPIO 핀 쪽을 읽어 봐서, 전원이 제대로 들어가는지 확인한다.
용도 초기 부분에서 POD init 을 하기전에 GPIO 의 리셋 핀을 이용해서 reset 을 해주는 부분이다.
용도 POD 가 준비되면 ready 시그널을 Low 로 만든다. ready 시그널을 체크한다.

Card_main.c

여기는 대부분 전체적인 루틴을 관여하는 함수들이 있다.

용도 ci_PollTask 를 활성화(0) 하거나, 비활성화(1) 시킨다.
용도 POD 의 대표적인 태스크 중 하나, 계속 루프를 돌면서 POD 의 삽입 여부를 체크한다.
용도 POD 의 초기화를 위한 대표적인 함수. 위에서 설명했던 함수들을 이용해서 cis read 와 cor write, personarity change 를 수행한다.
용도 pod physical 을 수행하고, buffernego 를 통해 상위 계층의 함수들을 호출한다.
용도 POD 관련 루틴을 종료할 때 호출된다. 윗단의 application 들을 모두 close 하고, 이어서 layer 를 close 한다.
용도 cis read 도중이나, pod 작업 도중에 오류등의 이유로 ciEnd() 가 불려지면, 이 함수가 호출된다.
용도 POD 의 대표적인 태스크 중에 하나로서, 수행도중에 오류를 만났을 때, 이 태스크로 메세지를 보낸다. 여기서는 어떤 상황에서 오류가 났는지를 체크하고, 이에 따른 리셋 루틴을 수행한다. 이 것 역시 무한 루프를 돈다.
용도 앞서 설명한 polltask 에서 POD 의 삽입여부를 체크하면, 이 테스크로 메세지를 보낸다. ciStart() 함수를 호출한다.
용도 main() 에서 호출하는 최소의 함수, 2개의 큐와 3개의 태스크를 생성한다.

Card_cis.c

여기는 POD 의 CIS 튜플에 관한 함수들이 있다.

용도 현재 꼽힌 카드가 POD가 맞는지 루프를 돌며 CIS 를 읽어보는 함수로서, 특정 튜플 ID 를 통해 정보를 저장한다.
용도 CIS 튜플을 읽는다.
용도 앞에서 나온 튜플 ID 를 기반으로 어떻게 처리해 줄 것인지에 대해 정의하고 있다.
용도 CIS 의 튜플 중에 linktarget 에 대한 처리 함수이다.
용도 CIS 의 버전을 체크하고, Manufacturer, Device ID 를 체크한다.
용도 CIS 튜플 중에 config 에 대한 처리 함수이다.
용도 CIS 튜플 중에 POWER 에 관련한 ctftableentry 에 대한 처리 함수이다.
용도 CIS 튜플 중에 POD 전원에 관한 처리 함수이다.
용도 CIS 튜플 중에 device 에 대한 처리 함수이다.
용도 CIS 튜플 중에 manufature id 에 대한 처리 함수이다.

Card_common.c

여기서는

용도 personarity change 하기 전에 오류가 발생했을 때, 호출된다. 각 원인에 따라 처리 방식이 다르다.
용도 persionarity change 후에 오류가 발생했을 때, 호출된다. 그 전까지의 플래그들이 리셋된다.
  • computer/digitalarena/pod_api_설명.txt
  • Last modified: 3 years ago
  • by likewind