不理解内存分页的机制

2019-03-24 09:46发布

本帖最后由 无知的萝卜 于 2015-9-19 14:46 编辑

在TMS320C28x Assembly Language Tools里看到
TMS320C28x devices have separate memory spaces (pages) that occupy the same address ranges
(overlay).

在其他书上也有看到DSP的内存分页,但是不明白,为什么不同的页可以用同样的地址?
比如一个变量a储存在PAGE1的0x000021;
那么另一个变量b也能储存在PAGE2的0x000021吗?
但是在实际的内存中肯定只存在一个唯一一个地址0x000021呀?


此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
9条回答
Aragorn
2019-03-24 13:38
这其实就是一个绝对地址和相对地址的概念。举个栗子,有一片内存总共1024个字节,分成4页(编号0~3页),每页256个字节(地址编号0~255)。那么问题来了,假设有一个字节变量A在第1页的地址21,这就是一个相对地址,因为是相对于页地址来说的。而绝对地址,就是指他在整个内存中的地址,所以变量A在内存中的绝对地址是:256(第1页的页地址)+21(变量地址) = 277。

每个变量在内存中的实际绝对地址=页地址*页字节数 + 变量地址。所以第0页的地址21,在内存中的绝对地址是21,而第1页的地址21,在内存中的绝对地址是277。

一周热门 更多>

相关问题

    相关文章