位带操作地址映射

2019-07-20 14:06发布

本帖最后由 loverwtf 于 2017-6-2 23:25 编辑

# define BITBAND(addr, bitnum) ((addr & 0xF0000000)+0x2000000+((addr & 0xFFFFF)<<5)+(bitnum<<2))    //这是sys.h中的映射代码

AliasAddr=  0x22000000+((A‐0x20000000)*8+n)*4 =0x22000000+ (A‐0x20000000)*32 + n*4                      //SRAM映射公式

AliasAddr=  0x42000000+((A‐0x40000000)*8+n)*4 =0x42000000+ (A‐0x40000000)*32 + n*4                        //片上外设映射公式


映射公式跟sys.h中的映射代码不一样啊,是怎么回事,另外请教一下为什么映射到那个地址(为什么这里用的动词是映射,我觉得好像就是指定了一块特定的地址啊)之后访问的还是之前的寄存器




友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
loverwtf
1楼-- · 2019-07-20 17:46
 精彩回答 2  元偷偷看……
loverwtf
2楼-- · 2019-07-20 19:43
自己顶贴,求大神回复!
业未央
3楼-- · 2019-07-20 21:01
寄存器的某一个位映射到位带,对位带某个地址的访问相当于访问该地址对应的某个寄存器中的一个位,位带的访问速度比寄存器快。映射地址的计算没仔细的算过,你可以看下手册上讲的挺详细的。
loverwtf
4楼-- · 2019-07-20 22:59
 精彩回答 2  元偷偷看……
业未央
5楼-- · 2019-07-21 04:06
 精彩回答 2  元偷偷看……

一周热门 更多>