ARM 아키텍처는 임베디드 기기에 많이 사용되는 RISC 프로세서이다. 저전력을 사용하도록 설계하여 ARM CPU는 모바일 시장에서 뚜렷한 강세를 보인다.


ARM 프로세서 명령어 세트 


데이터 처리 명령어 세트


ex) ADD {condition} {S} Rd, Rn, shifter_operand 


덧셈 명령으로써 두 개의 오퍼랜드(Rn, shifter_operand)를 서로 더해 결과를 목적지 레지스터 Rd에 저장한다. 조건(condition) 부분은 플랙에 따른 명령어 실행 조건을 의미한다.


Load/Store 명령어 세트


Branch 명령어 세트


기타 명령어 세트


PXA 시리즈 프로세서


pxa 시리즈 프로세서는 인텔 32비트 Xscale RiSC 코어를 기반으로 하고 여러 주변 장치를 탑재한 임베디드 시스템용 프로세서이다. CPU 부분인 Xscale은 ARM 버전 5구조를 기반으로 하며 비교적 저전력에 고성능을 제공한다. PXA2xx 시리즈와 PXA3xx 시리즈가 있다.


(학교 임베디드 시스템 수업 PXA255 사용함)


PXA 255는 주변 장치 인터페이스를 위해서 시리얼 통신을 위한 UART 포트, MMC 카드 기능, USB 1.1 클라이언트 기능, 적외선 시리얼 통신을 위한 IrDA, 오디오 코텍, 시리얼 통신 기능인 I2C 등을 가지고 있다. UART는 표준 UART, FF UART, 블루투스 UART를 모두 지원한다. 


GPIO


PXA255는 모두 85개의 GPIO 핀 신호를 가지며 각 핀은 입력이나 출력으로 설정될 수 있고 인터럽트 요청 라인이나 UART의 신호들, LCD 디스플레이를 위한 데이터 라인 등 각종 외부 장치와의 연결이나 인터페이스로 사용한다. 대부분의 GPIO는 단순히 디지털 입출력뿐만 아니라 부가적인 기능을 추가로 가진다. GPIO 핀의 각 기능을 설정하고 사용하기 위한 GPIO 레지스터들의 이름과 기능은 다음 표와 같다. 


GPDR(GPIO PIN Direction Register)  - 입출력 방향 설정 레지스터


이 레지스터는 핀 방향, 즉 입출력 방향 설정 레지스터로서 GPIO 핀을 입력 또는 출력으로 설정할 것인지를 결정한다. 0이면 입력으로 설정되어 GPLR을 통해서 GPIO 핀 상태를 읽을 수 있고 1이면 출력으로 설정되어 GPSR이나 GPCR을 사용해 '1'이나 '0'을 출력할 수 있다. 


GAFR(GPIO alternate function register) - Alternate 기능 설정 레지스터


GPIO 부가기능을 설정한다. 


GRER() - 상승 에지 검출 레지스터


이 레지스터의 입력 핀 상태가 LOW에서 HIGH로 되면, GEDR의 해당 비트가 "1"로 된다. 단 GPDR의 해당 비트가 "0"으로 되어 있어 입력 상태여야 하고, GAFR의 해당비트가 "0"으로 되어 있어 부가기능을 사용하지 않는 상태이어야 한다.



GFER(GPIO Falling edge detect register) - 하강 에지 검출 레지스터 


이 레지스터의 입력 핀 상태가 high에서 low로 되면 gedr의 해당 비트가 '1'로 된다. 단 gpdr의 해당 비트가 '0'로 되어 있어 입력 상태이어야 하고, GAFR의 해당 비트가 0으로 되어 있어 부가기능을 사용하지 않는 상태이어야 한다.



GPSR(GPIO Pin output set register) - 출력 '1' 설정 레지스터


이 레지스터에 "1"을 설정하면 해당 핀은 HIGH 상태로 되고 "0"을 설정하면 해당 핀은 변화 없이 이전 상태를 유지한다. 


GPCR(GPIO Pin output clear register) - 출력 '0' 설정 레지스터


이 레지스터에 "1"을 설정하면 해당 핀은 LOW 상태가 되고, "0"을 설정하면 해당 핀은 변화 없이 이전 상태를 유지한다. 


GPLR(GPIO PIN-LEVEL REGISTER) - 입력 레벨 검출 레지스터


이 레지스터는 GPIO의 핀에 인가된 전압 레발 값을 가지므로 현재의 입력핀의 상태를 읽을 수 있다. 전압 레벨이 LOW이면 0으로 HIGH 이면 "1"로 읽힌다. 


GEDR(GPIO edge detect status register) - 입력 에지 검출 레지스터


GPDR해당 비트가 "0"으로 되어 있어 입력 상태이어야 하고, GAFR의 해당 비트가 0으로 되어 있어 부가기능을 사용하지 않는 상태에서 GRER이나 GFER의 해당 비트가 설정되어 있을 경우 상승/하강 에지가 발생하면 해당 비트가 "1"로 되고 이때 인터럽트를 발생시킬 수도 있다. 

블로그 이미지

종환 Revolutionist-JongHwan

github.com/alciakng 항상 겸손하자.

댓글을 달아 주세요