关于系统总线的地址问题
我选cs3作为片选,
首先我在mamarymap。h中有如下几处定义
1:#define PHYSICAL_ADDR_ASYNC_CS3 0x30000000
2:#define PHYSICAL_TEST_8BIT PHYSICAL_ADDR_ASYNC_CS3 //H
3:#define SIZE_TEST_8BIT 0X00080000 //HH
4:#ifdef PHYSICAL_EQUAL_VIRTUAL
#define TEST_8BIT_VIRTUAL_MEMORY PHYSICAL_TEST_8BIT //HH
#else
#define TEST_8BIT_VIRTUAL_MEMORY 0x8d000000 //HH
我在mmumap.c中的const AddressTableStruct OEMAddressTable[] 结构数组中加了
{
TEST_8BIT_VIRTUAL_MEMORY,
PHYSICAL_TEST_8BIT,
MEG(SIZE_TEST_8BIT),
},
我认为这样就把物理地址到虚拟地址的映射做完了,下面我在evc中访问这段虚拟地址
PHYSICAL_ADDRESS InAddr={0x8d000,0};
if(pcTest=(volatile UINT*)MmMapIoSpace(InAddr,
1024,
FALSE))
{
AfxMessageBox(_T("映射成功"));
}
我想现在我对pcTest操作就相当于对地址0x30000000进行操作,
按钮a写
*pcTest=0x88888888;
按钮b读
int imm;
imm=*pcTest;
我现在写进去的数能读回来,可是我把数据总线上的某些位置0
读回来的数没有变化,
我不知道哪里出了问题,请大家帮忙。

