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) 프로그래밍
·Sorting Algorithm Animation (2)
·GNU REGEX (정규표현식) 프로그래밍 강좌 (7)
·SoCRobotWar 2005 - 신입생 기초 교육자료 (7)

SoCRobotWar 2005 - 영상받기 성공
글쓴이: EzDoum 글쓴날: 2005년 06월 24일 오후 02:49
하드웨어



어제 새벽에 들어와서 오기가 생겨서 SoCRobotWar 보드 영상받기를 마무리 해볼라고 아침까지 삽질을 했다. 결론은 문제의 핵심을 찾아냈고 점심 지나서 대회 담당자와 통화를 통해서 해결책을 찾고 영상 테스트 까지 끝냈다.
코드: 

저희팀 보드는 인터럽트 처리하는 부분에 문제가 있는거 같네요. 
보드에 인터럽트만 뜨면 죽어 버립니다. 

샘플 프로그램중 04_Interrupt_Test에서 
기본적인 타이머 인터럽트조차 정상 동작을 안해서 
좀 테스트를 해봤습니다. 

fpga로 irq5가 주기적으로 발생 하도록 verilog를 작성해서 
스코프로 확인 한 다음 09_ImageLoad_Test를 변형을 해서 


void ImageLoad_Test() 
{ 
int x, y; 
int q=0; 


uPuts1("\r\nSelected Test Item :  "); 
uGetch1(); 

  uPuts1("\r\n"); 
  uPuts1("\r\n***************************************"); 
  uPuts1("\r\n    Welcome to eos Robot Brain Board      "); 
  uPuts1("\r\n***************************************\r\n");  

//1111 1111 1100 0000 0000 
//Intset(0x10, 0xFFC00); // IRQ4 Interrupt Enable 
Intset(0x20, 0xFFC00); // IRQ5 Interrupt Enable 

LEDToggle(); 
DelayLoop(100000); 

FPGA_flag = 1; 
while(FPGA_flag) { 
uPrintf1("%d %d %d %d\n\r",FPGA_flag, q++, RegR32bit(INTEN), RegR32bit(INTST) ); 
DelayLoop(100000); 
LEDToggle(); 
} 
uPrintf1("xx %d %d\n\r",FPGA_flag ,q++); 

//ClearInt(0x10); 
LEDToggle(); 
/* 
for(y=0; y < 120; y++) { 

for(x=0; x < 180; x++) 
uPrintf1("%04x",(unsigned short)IMAGE[y][x]); 

uPuts1("\r\n"); 
} 
*/ 

while(1); 
} 

이렇게 하고 Intset 부분을 
  

int Intset(int value, int mode) 
{ 
int q=0; 
uPrintf1("aa%d %d %d %d\n\r",FPGA_flag, q++, RegR32bit(INTEN), RegR32bit(INTST) ); 
RegW32bit(INTROT,0x0); 
uPrintf1("bb%d %d %d %d\n\r",FPGA_flag, q++, RegR32bit(INTEN), RegR32bit(INTST) ); 
__DISABLE_INT(); 
uPrintf1("cc%d %d %d %d\n\r",FPGA_flag, q++, RegR32bit(INTEN), RegR32bit(INTST) ); 
__SET_VECTORED(); 
uPrintf1("dd%d %d %d %d\n\r",FPGA_flag, q++, RegR32bit(INTEN), RegR32bit(INTST) ); 
RegW32bit(INTMOD,mode); 
uPrintf1("qq%d %d %d %d\n\r",FPGA_flag, q++, RegR32bit(INTEN), RegR32bit(INTST) ); 
RegW8bit(INTVEC,0x1); 
uPrintf1("tt%d %d %d %d\n\r",FPGA_flag, q++, RegR32bit(INTEN), RegR32bit(INTST) ); 

uPrintf1("rr%d %d %d %d\n\r",FPGA_flag, q++, RegR32bit(INTEN), RegR32bit(INTST) ); 
oldint = RegR32bit(INTEN); 
uPrintf1("zz%d %d %d %d\n\r",FPGA_flag, q++, RegR32bit(INTEN), RegR32bit(INTST) ); 
RegW32bit(INTEN,(value | oldint)); 
uPrintf1("kk%d %d %d %d\n\r",FPGA_flag, q++, RegR32bit(INTEN), RegR32bit(INTST) ); 
oldint = RegR32bit(INTEN); 
uPrintf1("tt%d %d %d %d\n\r",FPGA_flag, q++, RegR32bit(INTEN), RegR32bit(INTST) ); 
__ENABLE_INT(); 
uPrintf1("gg%d %d %d %d\n\r",FPGA_flag, q++, RegR32bit(INTEN), RegR32bit(INTST) ); 

return oldint; 
} 

이렇게 테스트 해봤습니다, 
그랬더니 시리얼에 

*************************************** 
    Welcome to eos Robot Brain Board 
*************************************** 
aa0 0 0 0 
bb0 1 0 0 
cc0 2 0 0 
dd0 3 0 0 
qq0 4 0 0 
tt0 5 0 0 
rr0 6 0 0 
zz0 7 0 0 
kk0 8 32 0 
tt0 9 32 32 
ㅎ 
까지만 찍히고 

gg.. 가 출력이 안되는 증상을 확인했습니다. 
제가 어떤거를 학인해 봐야 할까요? 


(222.***.82.***)  05-06-24 13:21    
음 역시나 인터럽트가 문제가 있었네요 
저희 팀역시 보드에 sdownload2가 문제가 있어서 cdrom에 있는 
모니터 프로그램으로 다시 롬을 구웠더랬습니다. 

문의결과 이 증상은  cdrom에 들었던 모니터 프로그램은 인터럽트 
처리에 문제가 있답니다.. 본 홈페이지 자료실 2005년 3월 7일자 
모니터 프로그램으로 적용 하시면 됩니다. 

입터럽트 팡팡 뜹니다.!!  
아래는 받은 영상. 카메라 연결하기 귀찮아서 xbox비디오 아웃이랑 연결 포르자 모터 스포츠 메뉴화면

  • 첨부 파일: soctestimg.jpg soctestimg.jpg (54 KiB(54,854 Bytes))

    [Image Size 654 x 518]
    soctestimg.jpg



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

  • <  여름 동안의 계획! | SoCRobotWar 2005 - 영상받기  >
    SoCRobotWar 2005 - 영상받기 성공 | 답장: 1개 | 본문에 답장
    정렬 :  
    답장 EzDoum 2005년 06월 24일 오후 03:03 [ 이글에 답장 | 본문에 답장 | 책갈피 ]
    다시 점검을 해보니까 irq4번이 안뜨는게 아니라 일딴 인터럽트가 폴링엣지에 검출이 되도록 샘플이 작성 되어 있었고, 이 interrupt가 뜨는 타이밍이 sdram clk으로 3클럭 정도인데, 내 스코프는 60mhz짜리이다. sdram은 적어도 100mhz로 동작을 했을테니 보일리가있나;; 그래도 스코프가 샘플링이 랜덤하게는 트리거에 잡혀 아주 잠깐씩 인터럽트 뜨는게 보인다. 그래서 irq테스트 할때 irq5번 역시 eos에 연결되어 있어서 verilog로 주기가 긴 인터럽트 시그널을 만들어서 테스트 했다. irq4를 안뜬다고 추리한것은 잘못됬던 것이지만 eos가 인터럽트 처리에 문제가 있었던건 사실이다. 모니터 프로그램의 버그로 삽질한 시간이 안타깝네. 하지만, 이걸로 eos 보드 전체 구성이랑 기타 시스템 레지스터랑 몇가지 중요한 사항에 대해서 알게됐다
    # 몇 가지 중요한 사항
    
    1) eos dma 구조
    	dma 설정하는 레지스터들
    		src address
    		dest address
    		counter
    		기본 설정 ( 블럭or싱글, 전송단위, 카운터 리셋여부..)
    2) interrupt 구조
    	인터럽트 레지스터
    		인터럽트 모드
    			irq0~9까지 인터럽트 설정 
    			레벨트리거[하이,로우액티브]
    			엣지트리거[폴링, 라이징]
    		인터럽트 활성화
    		인터럽트 상태
    		인터럽트 래치의 동작		
    		
    3) 제공된 fpga 소스 분석
    	eprom programming 가능 앗사~;;
    	사용되는 클럭들이랑,
    	main 상태머신
    
    4) eos 보드 회로구성 숙지	
    5) 모니터 프로그램 구조 분석
    6) eos 환경에서의 디버깅 요령
    



    [수정]

    SoCRobotWar 2005 - 영상받기 성공 | 답장: 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