기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

안녕하세요.


  요즘 임베디드에 대해서 조금 깊게 공부하고 있는 중에 궁금한 것이 생겨서 질문 남겨 보아요.


2440 cpu에 보면 address 와 data 핀이 나와 있는데요. 32비트 처리를 한다고 해서 data 핀은 32개 핀(비트)가 나와 있다는 것은

이해를 하겠는데요.  address 핀은 27개로 나와 있더라구요.


 그렇다면 다운로드던지 할때 다른 주소를 가르킬때 보면 3000 0000 이상 번지를 가리키고 있던데 사실 물리적 메모리 주소로 한다면  1100..... 주소로 나타내려면 27핀 가지고는 부족한데, 이것을 어떻게 매핑된다고 이해하고 있으면 좋을까요?


 그러면 실제 3000 0000 번지를 나타낼때 27개의 address 핀 신호가 어떻게 변화가 되는지요? 

 자꾸 1:1 매핑으로 생각해서 그러지 이해가 되지 않아서요.


AVR 같으면 주소로 16비트 쓰고 주소 한 바이트를 래치해서 사용하는데,

여기서 는 어떻게 주소를 이해하면 좋을지 조언 받고자 남겨보았습니다.


읽어 주셔서 감사합니다. ^^


고도리

2015.07.30 09:43:53
*.200.239.210

bank 시작번지서부터 address를 계산하기 때문에 상관없습니다.


ex> 

bank base address: 0x20000000

여기서부터의 offset을 계산: 예를 들어 0x20010000 번지면 64k offset입니다. 

원래 base가 20000000이니, 2^16만 따지면 되니깐 16bit의 address만 필요로 합니다.

DavidKim

2015.08.08 02:15:03
*.18.103.150

감사합니다.  ^^


다른분들도 알려 주시고 해서 조금 쉽게 이해 했습니다. 정확한지는 모르겠지만, 일단 이해 한 것을 적어보면


 기본주소 앞자리 주소 예로 0x1000_0000  0x1800_0000 0x2800_0000 ... 주소범위는

메모리 뱅크를 선택하는 기본 주소(nGCS0- nGCS7) 이고 여기서 내부에 할당된 메모리 주소 만큼 움직일 수 있도록 되어있다고 이해 했습니다.

  2440의 메모리맵을 보면 128M 단위로 나누어 놓았기 때문에 예를 들어 최대 주소 범위는 기본주소 (nGCS6 ) 3000_0000) 에서 37FF_FFFF  까지 사용할 수 있다라고 이해 했습니다.


바르게 이해 한것이었으면 좋겠네요.

다시 한번 감사합니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수

사용자 로그인