[전기공학실험3] [ARM7] 결과7 (데이터압축)

등록일 2002.12.25 MS 워드 (doc) | 28페이지 | 가격 700원

소개글

전기공학실험3 (ARM7 코어 프로그래밍)
서울대학교 전기공학부
성원용 교수님 강좌
2002년 2학기

정답이 아닐 수 있으니 참고만 하세요.

목차

1. 실험 결과 보고를 시작하며
2. 모든 실험에 공통으로 사용되는 코드 분석
(1) “44b.h” 파일의 LCD 관련 레지스터 전처리기 부분
(2) “view.c” 파일
3. [exp7_1] RAW 포멧의 그림 1,2,3을 1초 간격으로 번갈아 디스플레이 하는 프로그램 (교재의 요구사항 1번)
4. [exp7_2] LZW 포멧의 그림 1,2,3을 1초 간격으로 번갈아 디스플레이
5. [exp7_3] LZW포멧의 그림 lzw1.spi와 1과 2를 XOR하여 LZW포멧으로 압축한 1xor2.spi 그리고, 2와 3을 XOR하여 LZW압축한 2xor3.spi 파일을 이용하여 그림 1,2,3을 1초 간격으로 디스플레이 (교재의 요구사항 4번)
6. 참고 문헌

본문내용

rLCDSADDR1 = ( 0x2 << 27 ) | ( ((unsigned int)buffer >> 22 ) << 21 ) | M5D((unsigned)buffer >> 1 );
// LCDSADDR1 Register에 속한 bit들을 setting하는 것으로, 삼성 매뉴얼 12-18쪽을 참조하였음.
// ( 0x2 << 27 ): MODELSEL[28:27]=”10”=16-level gray mode
// ( ((unsigned int)buffer >> 22 ) << 21 ): buffer는 unsigned char에 대한 포인터이므로 buffer라고 쓰면
// 데이터가 저장된 주소의 시작 부분을 나타낸다. LCDBANK[26:21]은 system memory의 video buffer 위치를 나타낸다.
// system memory의 주소는 28bit로 되어 있으므로, LCDBANK[26:21]의 6 bit에 맞게 상위 6 bit만을 발췌해야 한다.
// 그래서 buffer의 원래 주소에서 하위 22bit를 삭제하고, 상위 6 bit만을 LCDBANK[26:21]에 삽입한다.
// 처음에 이 과정이 잘 이해가 가지 않아서 집에서 실험을 다시 해 보면서 주소를 “watch expressions”로 trace해 보았다.
// 그 실험에서 화면을 캡춰하여 뒤에 첨부하였으며, 여기서 system memory의 주소가 28bit라는 사실과,
// 그 주소의 상위 6 bit만을 가지고 실험을 성공적으로 할 수 있다는 사실을 확인할 수 있었다.
// M5D((unsigned)buffer >> 1)에서 M5D( n )=(( n ) & 0x1fffff )이므로, buffer의 주소의 하위 1bit를 삭제한
// 27 bit의 주소에 0x1fffff=01..1(연속한 1의 개수는 1+5*4=21개)를 AND 연산하여 최하위 1 bit를 제외한
// 하위 21 bit의 주소를 다시 얻을 수 있다. 이것을 LCDBASEU[20:0]에 저장한다.
// 이러한 과정이 있기 때문에 앞에서 상위 6 bit만을 LCDBANK에 넣어도 buffer의 주소를 프로세서가 잘 찾을 수 있는 것이다.

참고 자료

서울대학교 전기공학부, <3학년 실험>
서울대학교 전기공학부, <3학년 실험 매뉴얼>
Hennessy/Patterson , <Computer Organization and Design : the Hardware/Software Interface>
http://soee.net/
      최근 구매한 회원 학교정보 보기
      1. 최근 2주간 다운받은 회원수와 학교정보이며
         구매한 본인의 구매정보도 함께 표시됩니다.
      2. 매시 정각마다 업데이트 됩니다. (02:00 ~ 21:00)
      3. 구매자의 학교정보가 없는 경우 기타로 표시됩니다.
      최근 본 자료더보기