片上外设寄存器地址空间是非CACHE,而且不可Execute的。
芯片外设寄存器MMU设置
/*
** Define Device Memory Region. The region between OCMC and DDR is
** configured as device memory, with R/W access in user/privileged modes.
** Also, the region is marked 'Execute Never'.
*/
REGION regionDev = {
MMU_PGTYPE_SECTION, START_ADDR_DEV, NUM_SECTIONS_DEV,
MMU_MEMTYPE_DEVICE_SHAREABLE,
MMU_REGION_NON_SECURE,
MMU_AP_PRV_RW_USR_RW | MMU_SECTION_EXEC_NEVER,
(unsigned int*)pageTable
};
DDR3区域才是打开CACHE的,可执行的
/*
** Define DDR memory region of AM335x. DDR can be configured as Normal
** memory with R/W access in user/privileged modes. The cache attributes
** specified here are,
** Inner - Write through, No Write Allocate
** Outer - Write Back, Write Allocate
*/
REGION regionDdr = {
MMU_PGTYPE_SECTION, START_ADDR_DDR, NUM_SECTIONS_DDR,
MMU_MEMTYPE_NORMAL_NON_SHAREABLE(MMU_CACHE_WT_NOWA,
MMU_CACHE_WB_WA),
MMU_REGION_NON_SECURE, MMU_AP_PRV_RW_USR_RW,
(unsigned int*)pageTable
};
2#阿南
驱动安装不了的问题:
驱动下载地址http://beagleboard.org/static/beaglebone/latest/README.htm?1352124987
USB驱动问题,两个都安装不了,PC操作系统是windows XP professional 2002
安装BONE_DRV.exe时,弹出设备驱动程序安装向导对话框:“设备驱动程序安装向导不支持当前的语言,请与向你提供此软件包的供应商联系。”
安装BONE_D64.exe时,弹出BeagleBoard Drivers Archive:error对话框:“Error during execution ""dpinst.exe"". %1不是有效的Win32应用程序”。
但是,看了arm的Cortex-A8手册Cortex_a8_r3p2.pdf的246页,ARM V7A定义了三种存储器类型:Strongly ordered、Device、Normal,其中Strongly ordered 类型是noncacheable, nonbufferable, and serialized,等待总线的应答回来后,才执行下一条指令(This type of memory flushes all buffers and waits for acknowledge from the bus before executing the next instruction)。而Device类型是noncacheable,device stores can be buffered,也就是有个buffer在里面。