EzDoum

찾기
처음으로 | 찾기 | 아카이브 | 글 올리기 | 링크 | 자료실 | 통계 | 연락처 | 자유게시판
이지도움 특집
전체보기
네트워크
TI OMAP35x
TI DaVinci
Analog Blackfin
RobotWar2005
임베디드!
캐쉬의 모든것
메모리 할당 알고리즘
CPU 파이프라이닝
자료구조(Tree)
금융

Login
이름

암호

기억하기


사용자 등록

현재 접속중인 등록 사용자는 0명, 익명 사용자는 4명 입니다.
전체 등록 사용자: 751명

마지막 답장
·libcurl + fuse 조합으로 되는게 많네. (1)
·Linux Ftrace에 관해 (3)
·Android MTP ( Media Transfer Protocol ) (1)
·Lighttpd에 인증을 digest 사용시 IE 오동작 문제? (1)
·Dtrace에 관해 (1)

최근글
·OpenSSL and multi-threads (0)
·ARM 환경에서 OpenCL 사용 (0)
·IoT용 WIFI 모듈 비교 ( MCU ) 클래스 (0)
·Glances - 리눅스 여러 가지 항목을 한 화면에서 모니터링 (0)
·plugin 방식의 로그 분석기 (0)

뜨거운 감자
·나는 인터렉티브한 환경에서 역어셈블 한다. (12)
·GNU REGEX (정규표현식) 프로그래밍 강좌 (7)
·SoCRobotWar 2005 - 신입생 기초 교육자료 (7)
·ASP.NET의 데이터 그리드와 사용자 컨트롤 (7)
·DHTML Editing Control (7)

가장 많이 읽은 글
·[Cache] 2-way Set-Associative 방식이란 무엇일까? (2)
·멀티쓰레드(Pthread) 프로그래밍
·GNU REGEX (정규표현식) 프로그래밍 강좌 (7)
·Sorting Algorithm Animation (2)
·SoCRobotWar 2005 - 신입생 기초 교육자료 (7)

임베디드! - Programmable Flags, Interrupt, UART(Rs-232)
글쓴이: EzDoum 글쓴날: 2004년 08월 06일 오전 02:00
하드웨어



지난 주말 작업하던 보드는 결국 살지 못했다. 보드에 결함이 너무 많아서 디버깅하기엔 인건비가 더 든다는 판단에 일단 중지하고 pcb를 다시 뜨기로 했다. --;; 하지만 고녀석이 말썽을 피우는 바람에 배우긴 많이 배웠워서 그런지 ㅎㅎ 아쉬움이 남는다. 뭐가 문제였나, 풀어보고 싶은 퍼즐!!이었는데

내가 진행하고 있는 프로젝트는 고급형/보급형 이렇게 두가지가 있는데, 보류된 녀석이 고급형이다. 보급형 보드는 고급형 보다 단순한 기능으로 크기가 가로세로 7센티 정도의 정사각형으로 fpga가 없고 영상 인코더가 옵션이다. 어쩌면 간단한 구조의 보급형 보드가 나한테는 더 맞을지도 모르겠다. 경험이 부족한 나에게 고급형은 무리였을지도 ㅎㅎ

정보 수집한거 부터 적어 볼까나..

지난주에 작업 하면서 박소장님 컴퓨터에서 blackfin cpu reference 요약 ppt를 발견했다. blackfin 메뉴얼 정말 무식하게 두껍고 재미없게 생겼다. 흑백 제본이라 뭐가 중요한지도 잘 모르겠고... 대략 보니까 슬라이드가 500여장 가까이 되길래 학교가는 날 프린터실에 자리잡고 한장에 4장씩 축소해서 찍었다. 방학이라 그런지 프린터실 사람이 거의 없어서 뽑는데 좋았다. 프린터 성능도 좀 좋아야 말이지. 간김에 그간에 참고로 하던 application note도 뽑았다.

그리고 두번째는 blackfin.org forum에 올라온 부팅과 초기화 관련된 글을 검색해서 읽어봤다. 엔지니어들은 다 고만고만 한것이 여기서도 증명이 되었다. 나와 비슷한 시행착오를 경험하고 자문을 구하는 글들이 많았다. 당근 도움이 되었다.

세번째는 visualDSP의 도움말 파일이다. visual studio 하면 떠오르는게 msdn아닌가? 난 visual dsp++가 뭐 좋은 도움말을 만들었겠어 하고 도움말 눌러보는 것 자체를 안했는데.. 어허 큰일 날뻔했다. pdf로 된 문서들은 정보들이 유기적이지 않고 찾기가 어려웠는데 chm파일이라 그런지 목차와 색인, 검색이 훌륭했다. 또 이미 html이라.. 나중에 관련 문서를 정리하거나 소스에 주석달때 복사붙여넣기하기 좋았다.

자 부팅이 성공적으로 됐는지 확인하고 동작 여부를 확인 할려면 led동작 시키는 것 부터 필요했다. 이 led를 동작 시킬려면 blackfin의 Programmable Flags를 조작해야 한다. 이름은 저래도 간단하게 생각하면 칩에 달린 io용 핀이다. 저 핀에 논리값 1을 걸어주면 3.3v의 전압이 걸려서 led와 적당한 저항을 연결 해주면 led가 켜진다. 요것이 그런데 단순하게 led만 키는 output만 제공하는 것이 아니라 양방향이라 클럭을 입력받거나 버튼으로 부터 입력을 받을 수도 있다. 그래서 Programmable Flags 라고 이름을 붙인건가 보다. 입력이 들어오면 ( 입력의 상태는 다양하게 정할수 있다.) 인터럽트가 발생시킬수도 있다. 이런 pf가 16개이고 16개에 인터럽트를 a,b두개 할당할 수 있다.

이제 pf로 불을 키는 것을 알았으니 이제 요넘을 주기적으로 반짝이게 해야 하는데, 리눅스나 윈도우 환경에서는 요것을 멀티 쓰레드로 만들거나 할텐데 임베디드에서 쓰레드 만들고 프로세스 생성하고 그러면 정말 맨땅에 해딩이다..(물론 깜빡이는것을 main 함수에 넣어서 불만 깜빡이게 해봤다.) 그래서 쓰는것이 타이머를 사용하고 타이머가 인터럽트를 걸어서 적당한 시분할 멀티태스킹이 가능하다. blackfin에는 이런 타이머가 총 6개가 제공되는데, 범용으로 사용할 수 있는 타이머는 3개이다. 이 타이머도 타이머가 발생시키는 펄스를 외부로 내보네 다른 칩의 동기신호로도 사용할 수 있고 또 반대로 다른칩으로 부터 신호를 받아서 동기화 하는데 사용할 수 있다.

메뉴얼들 쫘악 펼쳐놓고 인쇄한 ppt 펼쳐놓고 타이머를 열심히 본 다음 프로그램을 만들어서 테스트해봤다. 타이머의 동작 상태를 여러가지로 설정해서 파라메터값을 확인했는데, 타이머가 3개가 동시에 지원되다 보니.. ㅎㅎ 0번은 비교용으로 두고 1,2으로 값을 0을 기준으로 반대로 설정해서 보니.. 좋았다. 타이머를 멀로 보냐고? 흐흐 화면으로 안찍어 봐도 된다. 아까 타이머가 동작하는 것이 외부의 클럭신호로 쓸수 있다고 했으니 이말은 곧 타이머 pin이 있다는 뜻이다. 스코프를 살포시 찍어보면 되리라 ㅎㅎ Programmable Flags만큼이나 다양하게 옵션이 있었다. 6,7월에 봐둔 임베디드 관련 책이랑 학기중에 컴기조 강의때 들은 내용이 유용했다. 혹 임베디드 할 사람이라면 컴기조랑, 컴통은 관심있게 봐두면 좋을꺼 같다.

인터럽트.. 인터럽트 백터, 인터럽트 마스크, enable, disable.. 한 바탕 용어 잔치를 하고 나서 이것을 제어하는 레지스터들을 봐주고, application note 중에 interrupt-driven programming에 관련된 주제를 챙겨보고 예제를 중심으로 내환경에 맞게 포팅을 해봤다. 당연히 한번에 안됐다 한 두시간 삽질한거 같다. 타이머에 인터럽트를 사용하겠다고 정의해주고 타이머용 인터럽트 a,b 둘중에 하나를 골라 Interrupt Service Routine를 작성하고 ISR vector테이블에 그 함수를 등록했다. 컴기조 시간에 배운 인터럽트를 중심으로 이해의 가닥을 잡았는데 인터럽트가 걸리면 isr 처음에 다시 인터럽트가 중첩해서 안걸리도록 지금 실행중인 인터럽트를 disable하고(혹은 자동으로 disable되고 인터럽트 루틴 마지막에 다시 활성화 시켜주는 경우도 있다.) 하는 이 일련의 과정이 모두 이빨이 맞아야 하니.. 잘 안된듯..

어찌저찌 했했든 timer로 인터럽트를 발생시켜 led를 키는 작업을 완료했다 ^^. led키는 것이 자유롭게 되니 이제 rs-232를 작동시키기로 했다. rs-232도 i/o이기 때문에 인터럽트와 밀접한 연관이 있다. 인터럽트를 안쓰면 무식하게 polling을 해야 하는데 이것은 못할짓이고 interrupt와 dma와 합작이 있는데 이건 dma 전송을 아직 안해봐서.. 좀 있다 해보기로 하고 인터럽트 기반으로 먼저 해보기로 했다. 아훙 밤이 늦었구먼 잠오2시네.. 나머진 나중에.. rs-232잡는 스토리만 해도 지금까지 쓴거 만큼 될것 같다.. ㅎㅎ

  • 첨부 파일: 038ss.jpg 038ss.jpg (36 KiB(37,160 Bytes))

    [Image Size 300 x 225]
    038ss.jpg



    [분류: 하드웨어 인쇄용 페이지 본문 email로 보내기 ]

  • <  임베디드! - PPI에 연결된 인코더로부터 DMA로 영상받기 | 프린터 드라이버 임시  >
    임베디드! - Programmable Flags, Interrupt, UART(Rs-232) | 답장: 1개 | 본문에 답장
    정렬 :  
    답장 EzDoum 2004년 08월 10일 오후 10:57 [ 이글에 답장 | 본문에 답장 | 책갈피 ]
    각종 pc 인터페이스 자료가 집대성 되어 있다.
    http://www.beyondlogic.org/

    Interfacing the Serial Port - Parts 1 and 2
    Explains the pin diagrams of the RS-232 Port and the 8250 & Compatible UARTs. Includes information on handshaking, Null Modems, DTE/DCE Speeds, flow control, types of UART's etc. The second part of this series gives details of the Serial Ports Registers for the PC (8250 to 16750 UARTs) and the Serial Port's Addresses in the PC.
    http://www.beyondlogic.org/serial/serial.htm


    Interfacing the Serial Ports - Parts 3 and 4
    Starts with example programs written in C, using both the Interrupt Driven and Polling methods for the PC. Gives details of how the programs work and how they can be changed to suit your requirements, i.e. Changing addresses, FIFO Buffers, IRQ's etc. It then gives details of interfacing your own projects to the RS-232 Port using MAX-232's, CDP6402 UART's and Micro-Controllers.
    http://www.beyondlogic.org/serial/serial1.htm


    [수정]

    임베디드! - Programmable Flags, Interrupt, UART(Rs-232) | 답장: 1개 | 본문에 답장
    정렬 :  

    답장 쓰기
    글을 올리시려면 로그인 (사용자 등록) 하셔야 합니다.

    검색
    Google

    분류
    ·공지 (6)
    ·인터넷 (87)
    ·하드웨어 (260)
    ·C/C++ (65)
    ·어셈블리 (7)
    ·리눅스 (136)
    ·리눅스 커널 (67)
    ·윈도우즈 (25)
    ·데이터베이스 (20)
    ·보안 (16)
    ·.NET (25)
    ·그래픽 (13)
    ·책소개 (42)
    ·호기심 천국 (80)
    ·잡담 (111)
    ·사랑 (3)

    전체 본문수: 963
    전체 답장수: 525


    분류 : 하드웨어
    최근글
    최근글
    가장 많이 읽은 글
    ·[Cache] 2-way Set-Associative 방식이란 무엇일까? (2)
    뜨거운 감자
    ·SoCRobotWar 2005 - 신입생 기초 교육자료 (7)

    EzDoum투표
    이지도움 어때요?
    이게 뭐야. 다시 안올란다. --;
    아이 좋아라~ +_+;
    관심없다.
    먼가는 있는거 같은데 뭐하는 곳이지?
    기타 (자유게시판에 글로 남겨 주세요)
    [ 결과 | 투표 ]

    랜덤 링크
    http://kldp.net


     Home ^ BACK TO TOP ^ EzDoum - 도움이 필요하세요~??
     Powered by KorWeblog 1.5.8 Copyleft © 2001 EzDoum, 관리자: EzDoum