본문 바로가기
코스웨어/10년 스마트폰BSP

[BSP]업무일지-이도헌-2010 0928

by 알 수 없는 사용자 2010. 9. 28.
728x90
반응형

Looper
메시지는 즉시 호출되는 메서드와 달리 스레드간의 신호이므로  보낸다고해서  바로처리되는것이아니다 여러  스레드에서 메시지를
동시다발덕으로 보낼수도 있으므로 동기적으로  처리할수없으며 어딘가에 쌓아놓았다가 순서대로 처리해야 한다
전달되는 메시지를 차곡차곡 쌓아놓는것이 바로 메시지큐(Message Queue)이다 메시지나 러너블 객체는 일단  큐에 저장되고
들어온 순서대로 순차적으로 처리된다
루퍼는 무한히 실행되는  메시지 루프를  통해 큐에 메시지가 들어오는지 감시하며 들어온 메시지를 처리할 핸들러를 찾아
handlerMessage 메서드를 호출한다 UI를 관리하는 메인스레드는 기본적으로 루퍼를 가긴자  그래서 별다른 조치가 없어도  핸들러
객체를 만들어 놓기만 하면 메시지를 받으수 있다 그러나 계산을 주로 수행하는 작업스레드는 기본적으로 루퍼를 가지지않으며 run
메서드의 코드만 실행하고 종료한다


메인스레드는 버튼의 클릭이벤트들을 처리하는데 제일위의 Increase 버튼을 누르면 정수값하나를 증가시켜 위쪽의 텍스트뷰에 출력하는 간단한 작없을 수행한다 작업스레드와는 별도로 독립적인 동작이 가능하는것을 보여줄뿐 나머지 두버튼은 작업스레드에게 연산을 지시한다 CalcThread는 백그라운에서 어떤복잡한 계산을 수행하는스레드이다 이정도 연산은   사실 메서드로 충분하지만 작업스레드가 주  스레드의 부다을 덜어줄수있는다는것을 보여주기위해스레드로 작성했다
--------------------------------------------------------------------------------------------------------------------

캐시

캐시는 고속의 중앙 처리 장치(CPU)와 CPU에 비해 속도가 느린 주기억 장치 사이에 데이터와 명령어들을 일시적으로 저장하는 기억 장소를 제공하여, CPU가 주기억 장치로부터 읽고 주기억 장치에 기록할 때보다 몇 배 빠른 속도 또는 CPU에 가까운 속도로 접근할 수 있게 한다.캐시의 기억 용량이 클수록 요구되는 데이터가 이미 캐시에 저장되어 있을 확률이 크기 때문에 그만큼 성능이 향상된다

누산기
중앙 처리 장치(CPU) 내에 들어 있는 레지스터의 하나. 연산 결과를 일시적으로 저장하는 기억 장치 기능 이외에 누산기의
내용과 결정된 수치와의 대수 차를 계산하기도 하며, 논리 연산을 할 수도 있다. 또 기억된 수치의 자릿수 전달이나
보수(補數) 등의 조작도 하는 중요한 레지스터이다.

 AT91SAM7S256의 특징 
1 고성능 16/32 비트 RISC 형의 ARMv4T 구조에 ARM7TDMI 코어를 가지는 ARM Thumb 마이크로프로세서이다.
2 ARM의 고성능 32비트 명령 세트와 ARM Thumb의 고밀도 16비트 명령 세트를 가진다.
3 SMA-BA Boot 프로그램을 내장하고 있어서 이는 퍼스널 컴퓨터의 SAM-BA GUI 프로그램과 연계하여 사용자 프로그램을 ISP 방식으로 다운로드한다.
4 3단계 파이프라인 처리 방식(Fetch/Decode/Execute)을 사용하여 대부분의 명령을 1클록 사이클에 실행하며, 최고 55MHz 이하에서 0.9MIPS/MHz의 명령처리 속도를 나타낸다.
5 IEEE Standard 1149.1 규격의 JTAG 인터페이스에 의한 디버그 기능을 가지며, 이밖에도 전용의 UART에 의한 디버그 유닛(DBGU)을 가진다.
6 16개의 32비트 레지스터를 가지는데, 여기에는 스택 포인터와 프로그램 카운터를 포함한다. 이 16개의 레지스터는 5개의 동작모드에서 조금씩 다르게 사용된다.
7 내부에 256KB의 플래시 메모리를 가지고 있는데, 이것은 256바이트x1024 페이지의 구조로 되어 있다. 이것은 10,000번까지 지우고 다시 쓸 수 있으며, 30MHz이하의 속도에서 1사이클에 제로 웨이트로 액세스된다.
8 내부에 64KB의 고속 SRAM을 가지고 있는데, 이것은 55MHz 이하의 속도에서 1사이클에 제로 웨이트로 액세스 된다.
9 메모리 콘트롤러는 버스 조정기, 어드레스 디코더, SRAM 재배치, 플래시 콘트롤러 등의 기능을 가진다.
10 리셋 콘트롤러(RSTC)는 전원투입 리셋 기능과 BOD 기능을 가지며, 리셋 신호를 외부에 출력할 수도 있다.
11 클록 발생기(CKGR)은 32.768kHz의 내부 RC 오실레이터 회로를 가지고 있으며, 또한 외부에 3~20MHz의 수정발진자를 접속할 수 있는 발진 회로도 내장하고 있다. 이들 클록은 PLL 회로에 의하여 적절히 체배될 수 있다.
12 32비트의 병렬 I/O 포트를 가지고 있는데, 이를 Peripheral A와 Peripheral B등 2개의 주변장치 출력 기능과 멀티플렉스되어 동작하며, 각 핀들은 출력 동자에서 오픈 드레인 또는 10KΩ의 내부 풀업저항을 사용하도록 설정할 수 있다.
13 AT91SAM7S256은 모두 산업용 버전으로서 -40˚C ~ +85˚C의 온도 범위에서 사용할 수 있다.
14 ARM사는 반도체 제조회사가 아니며 ARM마이크로 프로세서 제품을  직접 만들지 않는다
15 전력관리제어기는(PMC)는  프로세서 클록 PCK , 마스터 클록 MCK  , USB 클록 UDPCK등을 임의로 조정 ,저주파 클록모드와 아이들모드로 소비전력을 제어 할수있다 또한 사용하지않는  주변장치에 클록 신호를  공급하지앟고 동작을  정지 소비전력을 최소화
16 인터럽트 제어기(AIC)는 인터럽트소스, 인터럽트우선수위, 인터럽트  허요여부등을 제어
17 워치독 타이머(WDT)는 12비트 프로그래머블 카운터로 워치독 기능을 수행, 리셋신호와 인터럽트 신호를 발생
18 실시간 타이머  (RTT)는 알람기능을 가지는 32비트 프리런닝 카운터로서 내부의 32.787kHZ RC오실레이터로 동작
19 주기적인 시간간격 타이머(PIT)는 20비트의 프로그래머블 카운터와 12비트 시간 간격 타이머를 가지고있다
20 주변장치 DMA 제어기(PDC) 는 모두 11개의 채널 
21 3채널의 16비트  타이머/카운터(TC)는 업/다운 카운터로  동작 ,PWM 출력발생기능, 파형발생기능, 입력캡쳐 기능 등을 가지고있다
22 PWM 제어기(PWMC)는 4채널의 16비트 PWM 출력신호를 발생
23 전이중  통신이 가능한동기및 비동기 직렬통신 포트 (USART)는 2채널이 있으며 Modem제어, IrDA, T0/T1스마트 카트ㅡ하드웨어 핸드세이킹,RS-485등의기능을 지원 ,이밖에 디버그 유닛(DBGU)  도 일반 UART로 사용
24 동기 직렬 통신 제어기(SSC)는 독립적인 클록과 프레임 동기신호를  가지는 동기식 으로 동작, I²S 아날로그 인터페이스 지원
25 직렬 통신포트 SPI는 마스터 및 슬레이브로  동작  , 8비트및  16비트길이로 데이터 전송 ,4개의칩선택신호를 가짐
26 직렬통시 포트 TWI 는 I²C  통신을  수행 하며 마스터로만 동작
27 USB  디바이스 포트 (UDP)는 USM2.0 규격에 다라 12Mbits/s까지 동작, 온칩트랜시버와 328 바이트의 FIFO를 가지고있다
28 모든 I/O 신호는  +5V로직과 직접인터페이스가 가능,PA3~PA0 신호는 16mA까지 드라이브
29 특정비트를 제어할때 비트 세트  레지스터, 비트 리셋 레지스터, 비트 상태 레지스터 를 가지고있어러 6클록  사이클의 빠른속도를
수행, 일반적인 Read-Modify-Write방법을  사용하면 16클록 사이클이 소요
30 내장된1.8V 레귤레이터는 VDDIN단자의 3.3V 입력전압을 사용 VDDOUT 단자에  1.8V의  출력접안 을 발생하며 100mA까지 구동
VDDCORE전원으로 1.8V를사용 여기에는  BOD기능이포함,VDDIO 전원으로 3.3V or 1.8V를사용할수있다
31 64핀 LQEP(Low-profile-Quad-Flat Package) 또는 64핀QFN(Quad Flat No-lead) 패키지가 있다
32 가격이싸다

풀업저항
저항을 5v에 달고 아래에 스위치가 병령로 붙어있다  이떄  핀A에는 항상5v의전압이 입력된다 핀A는 0v일떄 1로 인식하고 5v일떄 0으로 인식하는입력핀이다
스위치를 닫으면 그라운드쪽으로 전류가흐르고 스위치를 닫은 직후 전원에서 저항을 통해 들어오는 전류와 핀A의 전류가  합류하여 
그라운드로  흘러 들어가게된다 이때 핀A의 전압이 0v로 낮아지면서 핀A에 1이 입력된것으로 인식되는것이다  핀을   높은저항에 매달아둔다는 뜻으로  풀업 저항이다



728x90