Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1165911
  • 博文数量: 173
  • 博客积分: 4048
  • 博客等级:
  • 技术积分: 2679
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-12 18:53
文章分类

全部博文(173)

文章存档

2018年(1)

2016年(1)

2013年(1)

2012年(118)

2011年(52)

分类: 嵌入式

2012-03-01 10:52:21

nios 使用地址中31bit来表示访问是否bypass cache
如果bit 31=0 表示不bypass cache,即使用cache里的数据
如果bit 31=1表示bypass cache,即直接使用mem中的数据
如alt_remap_uncached.c
  1. #ifdef NIOS2_MMU_PRESENT
  2. /* Convert KERNEL region address to IO region address */
  3. #define BYPASS_DCACHE_MASK (0x1 << 29)
  4. #else
  5. /* Set bit 31 of address to bypass D-cache */
  6. #define BYPASS_DCACHE_MASK (0x1 << 31)
  7. #endif

  8. /*
  9.  * Convert a pointer to a block of cached memory, into a block of
  10.  * uncached memory.
  11.  */

  12. volatile void* alt_remap_uncached (void* ptr, alt_u32 len)
  13. {
  14.   alt_dcache_flush (ptr, len);
  15.   return (volatile void*) (((alt_u32) ptr) | BYPASS_DCACHE_MASK);
  16. }

阅读(2768) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~