컴퓨터공부 362

request_irq, setup_arm_irq

SA에서 GPIO 11~27의 interrupt service routine 글쓴이 : 초보 (2003년 07월 17일 오후 09:56) 읽은수: 761 [ 질문과답변 ] 안녕하세요. 너그러이 답변 부탁드립니다. ^^; SA의 GPIO(PXA도 마찬가지입니다만)에서 11~27은 rising 또는 falling edge가 뜨면 irq를 발생시키고 다음의 interrupt handler를 구동시킵니다. 여기까지 맞나요? void sa1100_GPIO11_27_demux(int irq, void *dev_id,struct pt_regs *regs) { ..... (irq = (GEDR & 0xfffff800)) .... for (i = 11; i handler = handler; -> handler를 acti..

인터럽트

프로세스마다 인터럽트 처리 방식이 다르기 때문에 리눅스 커널에서는 동일하게 처리하기 위해 IRQ 인터럽트는 모두 do_IRQ() 함수를 호출하여 처리하도록 되어 있다. 이 do_IRQ() 함수는 오직 IRQ 처리만 담당하며, irq_desc라는 전역 변수에 등록된 인터럽트 서비스 함수를 호출하는 구조로 되어 있다. 디바이스 드라이버나 커널에서 IRQ 인터럽트 처리가 필요한 경우에는 처리하고자 하는 IRQ 번호에 해당하는 인터럽트 서비스 함수를 이 irq_desc 전역 변수에 등록하면 된다. IRQ 인터럽트 서비스를 처리하기 위해서는 request_irq() 함수를 이용하여 처리하고자 하는 IRQ 번호와 서비스 함수 주소를 등록한다. 인터럽트가 발생하면 커널은 아키텍처마다 고유의 IRQ 검출 루틴을 이용하..

UART 통신

[AVR Essay 14] UART 통신 1 요놈은 제목 짓기가 조금 애매 했다. UART라고 부르기도 하고 USART라고 부르기도 한다. RS-232C라고 부르는 사람도 있다. 부르는 이름은 약간씩 다르고 그 의미도 다르지만 의도하는 것은 동일하다고 생각한다. 바로 PC와 직접 연결 가능한 시리얼 통신 방법이라는 것 이다. 사실 시리얼 통신에 대해서는 나중에 TWI(I2C)와 SPI 방식과 묶어서 할려고 했다. 그러나 사실 UART는 최종 결과물이 될 수도 있지만 사실 개발 단계에서는 JTAG와 같은 고가의 디버깅 툴을 사용하지 않는 방법 중에서는 가장 효율적인 디버깅 도구라 할 수 있다. 앞서서 다루었던 LED, 7-Segment, LCD는 정보량에 제한이 있고 많은 포트를 요구한다. 개발 당시에 얼..

컴퓨터공부 2007.03.23

전기, 자기의 단위

◈ 전기단위의 올바른 표기 구 분 바른표기 틀린표기 예 표준단위 응용단위 예 전 력 유효전력 W kW, MW KW, Kw, kw 무효전력 var kvar, Mvar KVAR, Kvar,kVar 피상전력 VA kVA, MVA KVA, Kva,kvar 전력량 Wh kWh, MWh, GWh kwH, KWH, kWH 전 압 V mV, kV, MV KV, Kv, kv, 전 류 A mA, kA KA, ◈ 10의 정수제곱을 나타낼 때의 접두어 표기 배 수 접두어의 명칭 접두어의 기호 배 수 접두어의 명칭 접두어의 기호 1016 엑사(exa) E 10-1 데시(deci) d 1015 페타(peta) P 10-2 센티(centi) c 1012 테라(tera) T 10-3 밀리(milli) m 109 기가(giga) G ..

컴퓨터공부 2007.03.21

ARM에서 ASM과 C연결

자~ARM에 대해서 앞으로 쭉쭉 같이 공부 해 나가도록 합시다. ARM processor에만 치우치기 보다는 전반적인 기본 원리, 배경상식, 등등 기초지식이 없는 사람들도 보고 감이 올수 있도록 같이...왜냐면 나도 ARM을 공부하는 중이므로, 아주 조금;;-_-;; 임베디드에 관심 있는 사람들이라면, 당연히 알고 있어야 할 칩, 썬칩도 아니고 ARM칩에 대해서..나 요새 심히 이상스럽다.. 먼저 하드웨어 프로그래밍이다 보니, 어쩔수 없이 C코딩과 더불어 어셈블리 코드가 들어갈 수 밖에 없다. 물론 어셈블리 코드로 모두다 짜야 하는건 아니지만, 최소한 어셈블리 코드를 보고 이해할 수 있어야 한다. 어셈블리 부터 설명하고 싶지만, 사실은 지금 나도 배우는 단계에 있으므로....예를 들면 이러한 코드를 해석..

컴퓨터공부 2007.03.19

taglist

vi plugin 중 하나로 해당 코드의 변수와 함수 리스트를 따로 보여주는 기능이다. 이 기능을 사용하기 위해서는 ctags 5.4 이상의 버전이 설치 되어 있어야 한다. ctags --version 첨부파일을 다음의 경로로 이동시킨다. mv taglist.vim /usr/share/vim/vim63/plugin mv taglist.txt /usr/share/vim/vim63/doc vim63 디렉토리는 버전 마다 다르니 보고 옮기기`~ vi 창에서 ex 명령모드에서 :Tlist 를 입력한다. 출처 : http://75inside.tistory.com/

ARM System Developer's Guide 에 대한 씨랩시스 질문 답

질문1,2 (www.clabsys.com Q/A에 올린 질문) 번역서 76페이지중 Example3.18에서 LDM과 STM등을 사용하는 곳이 나옵니다. 그 명령어에서 레지스터에 값이 써지는 순서가 끼워맞춰서는 이해가 되는데, 명확히 설명된 부분이 없어서 문의드립니다. 제 생각으로는 LDM관련 명령어는 {r1-r3}일때 읽어들이는 순서가 r1->r3 이고, STM관련 명령어는 {r1-r3}일때 저장순서가 r3->r1이라고 보이는데,제가 생각하는게 맞는지 틀리면, 어떤순서로 읽기및 저장이 되는지 설명좀 부탁드립니다. 그리고, 84페이지중 Example3.25에서 LDMFD sp!, {r0-r12, pc}^ 라는 명령어가 나옵니다. 그중 제일 마지막에 있는 ^가 하는 기능이 어떤건지도 설명좀 부탁드립니다. 답..

컴퓨터공부 2007.03.16