도와주세요!!
글 수 15,339
2002.02.15 12:09:38 (*.186.45.116)
32248
: Flash 메모리의 Address가 0x000000 부터 시작하잖아요
: 그럼 CPU가 처음 구동되면 Flash메모리의 0x000000번지부터 읽어서 실행을
: 시키게 되는게 맣죠?
부팅 되면 SA1110은 0x00000000 부터 읽어서 수행됩니다.
정확한 의미는 초기 인터럽트 벡터 테이블이 이 영역에 있읍니다.
: 그런데 Flash 메모리를 16bit로사용하고 있다는 거에요
: ARM CPU가 32bit CPU인데 16개의 데이터 선만을 연결해서 동작시킬수 있는지
: 궁금합니다.
SA1110은 내부에 메모리 제어 회로가 있읍니다.
이곳에서 버스에 연결된 회로가 16비트일때와 32비트일때 처리가 가능하도록
하는 기능이 있읍니다.
또 0x00000000 영역은 ROM_SEL 이라는 핀과 관계가 있는데
이 핀이 그라운드에 연결되면 16비트로 이 영역을 억세스 합니다.
다른 영역은 소프트웨어적으로 메모리 제어 레지스터를 제어 해야 합니다.
: 그리구 더 이상한건 Flash메모리의 Address선중에 A0를 연결하지 않은 것두
: 제머리로는 이해가 않되거든요
: (혹시 16bit메모리이기 때문에 A0가 의미가 없는건가요?)
: 그렇담 SDRAM 의 경우에는 그런데 왜 A0에 연결을 하였는지요?
: Byte단위의 접근을 지원하기 때문?, Byte단위의 접근이 필요하기 때문?
SA1110은 16비트 와 32비트 접근만 가능하지 8비트 접근은 불가능합니다.
그래서 외부 디바이스의 어드레스를 할당할때는 이 부분에 대한
고려를 해 주어야 합니다.
그러므로 물리적으로 A0는 연결하지 않고 A1이나 A2를 사용해야 합니다.
:
: 아참 그리구 SA1110 CPU의 경우 Address선의 의미가
: 32bit Base의 의미입니까?
: 아님 Byte(8bit)단위의 주소의 의미입니까?
: 그러니까 SA1110이 Access할수 있는 Memory가
: 2^24 Byte 인지 아님 2^24 * 4 Byte인지 하는거에요
:
어드레스 단위는 바이트 단위입니다.
:
: 그리구 SDRAM의 Address선두 외 10번부터 사용한거죠? -_-
: 아 증말 머리가 넘 아픕니다.
: Byte(8Bit)단위라고 하더라두 A2번부터 사용해야 하는거 아닌가요 -_-
:
SA1110은 DRAM 제어 회로를 내장하고 있는 데
DRAM은 같은 어드레스 버스에 두가지 어드레스를 인가하는 구조로
되어 있읍니다 .
열 과 행 어드레스를 교대로 인가 합니다.
이때 사용되는 것이 A10 부터 A24 입니다.
이 신호선에 하위 어드레스 즉 원래 A0 - A9까지의 어드레스와
A10 - A24 까지의 어드레스가 교대로 SA1110에서 DRAM으로
출력되어 인가되는 구조로 되어 있읍니다.
더 자세한 것은 아마도 DRAM 제어에 관련된 서적을 참고 하시는 것이
도움이 되실것 같네요
DRAM 제어에 대한 것이 거의 한 권의 책 분량이거든요 ^^;
: 그럼 CPU가 처음 구동되면 Flash메모리의 0x000000번지부터 읽어서 실행을
: 시키게 되는게 맣죠?
부팅 되면 SA1110은 0x00000000 부터 읽어서 수행됩니다.
정확한 의미는 초기 인터럽트 벡터 테이블이 이 영역에 있읍니다.
: 그런데 Flash 메모리를 16bit로사용하고 있다는 거에요
: ARM CPU가 32bit CPU인데 16개의 데이터 선만을 연결해서 동작시킬수 있는지
: 궁금합니다.
SA1110은 내부에 메모리 제어 회로가 있읍니다.
이곳에서 버스에 연결된 회로가 16비트일때와 32비트일때 처리가 가능하도록
하는 기능이 있읍니다.
또 0x00000000 영역은 ROM_SEL 이라는 핀과 관계가 있는데
이 핀이 그라운드에 연결되면 16비트로 이 영역을 억세스 합니다.
다른 영역은 소프트웨어적으로 메모리 제어 레지스터를 제어 해야 합니다.
: 그리구 더 이상한건 Flash메모리의 Address선중에 A0를 연결하지 않은 것두
: 제머리로는 이해가 않되거든요
: (혹시 16bit메모리이기 때문에 A0가 의미가 없는건가요?)
: 그렇담 SDRAM 의 경우에는 그런데 왜 A0에 연결을 하였는지요?
: Byte단위의 접근을 지원하기 때문?, Byte단위의 접근이 필요하기 때문?
SA1110은 16비트 와 32비트 접근만 가능하지 8비트 접근은 불가능합니다.
그래서 외부 디바이스의 어드레스를 할당할때는 이 부분에 대한
고려를 해 주어야 합니다.
그러므로 물리적으로 A0는 연결하지 않고 A1이나 A2를 사용해야 합니다.
:
: 아참 그리구 SA1110 CPU의 경우 Address선의 의미가
: 32bit Base의 의미입니까?
: 아님 Byte(8bit)단위의 주소의 의미입니까?
: 그러니까 SA1110이 Access할수 있는 Memory가
: 2^24 Byte 인지 아님 2^24 * 4 Byte인지 하는거에요
:
어드레스 단위는 바이트 단위입니다.
:
: 그리구 SDRAM의 Address선두 외 10번부터 사용한거죠? -_-
: 아 증말 머리가 넘 아픕니다.
: Byte(8Bit)단위라고 하더라두 A2번부터 사용해야 하는거 아닌가요 -_-
:
SA1110은 DRAM 제어 회로를 내장하고 있는 데
DRAM은 같은 어드레스 버스에 두가지 어드레스를 인가하는 구조로
되어 있읍니다 .
열 과 행 어드레스를 교대로 인가 합니다.
이때 사용되는 것이 A10 부터 A24 입니다.
이 신호선에 하위 어드레스 즉 원래 A0 - A9까지의 어드레스와
A10 - A24 까지의 어드레스가 교대로 SA1110에서 DRAM으로
출력되어 인가되는 구조로 되어 있읍니다.
더 자세한 것은 아마도 DRAM 제어에 관련된 서적을 참고 하시는 것이
도움이 되실것 같네요
DRAM 제어에 대한 것이 거의 한 권의 책 분량이거든요 ^^;