일단, 메모리 맵이 결정이 되면, 이것에 의해서 h/w개발도 하고,
s/w 작업(kernel,driver porting등)도 하는 것으로 알고 있습니다.
그리고, 메모리 맵(또는 h/w설계)에 이 결정되면,
이것에 의해서, physical address가 정해지구요.
이렇게 정해진 각각의 physical address와
이에 해당되는(매칭되는) virtual address 배정(매핑)을 하게 됩니다.
이러한 "physical address <-> virtual address " 메모리의 매핑 작업은
[아래]의 예와 같이 linux/arch/arm/mach-pxa/xxx.c 파일에서 해 주는 것으로 알고 있습니다.
예를 들어서…커널 2.4 버전에서… xxx.c 파일의 경우는 [아래]와 같이 해줍니다.
===============[아래]====================================================================
static struct map_desc cerf_io_desc[] __initdata = {
/* virtual physical length domain r w c b */
{ 0xe8000000, 0x00000000, 0x02000000, DOMAIN_IO, 1, 1, 0, 0 }, /* Flash bank 0 */
{ 0xf0000000, 0x08000000, 0x00100000, DOMAIN_IO, 1, 1, 0, 0 }, /* Crystal Ethernet Chip */
#ifdef CONFIG_SA1100_CERF_CPLD
{ 0xf1000000, 0x40000000, 0x00100000, DOMAIN_IO, 1, 1, 0, 0 }, /* CPLD Chip */
{ 0xf2000000, 0x10000000, 0x00100000, DOMAIN_IO, 1, 1, 0, 0 }, /* CerfPDA Bluetooth */
{ 0xf3000000, 0x18000000, 0x00100000, DOMAIN_IO, 1, 1, 0, 0 }, /* CerfPDA Serial */
72 #endif73 LAST_DESC74 };
==========================================================================================
즉...
physical address는 메모리맵을 기준으로 자동적 특정 번지로 결정이 됩니다.
그렇다면, virtual address는 어떤 기준(방법)으로 physical address와 매칭을 시키나요 ?
즉…physical address에 대응되는 virtual address는 어떻게 결정을 하는지요?
좋은 하루 되시구요…답변 주시면…감사드리겠습니다.
물리메모리 가상메모리 매핑방법 | 답장: 2개(RSS) | 본문에 답장 |
정렬 : |
|
익명 (2007년 06월 21일 오후 02:47)
설계하시는 분이 하기 나릅입니다만... |
[ 이글에 답장 | 본문에 답장 ] |
익명 (2007년 06월 28일 오후 03:30)
물리주소와 가상주소의 매핑은 어떻게 결정을 하는게 아니고. |
|
'Device Driver > Memory' 카테고리의 다른 글
ioremap() VS. phys_to_virt() (0) | 2009.06.17 |
---|---|
램디스크를 쓸것인가? MTD를 쓸것인가? (0) | 2009.06.08 |
MTD(Memory Technology Device) (0) | 2009.06.08 |
Common Flash Interface(CFI) (0) | 2009.06.08 |
WRITTEN BY
- RootFriend
개인적으로... 나쁜 기억력에 도움되라고 만들게되었습니다.