这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 为什么左移16位?

共3条 1/1 1 跳转至

为什么左移16位?

菜鸟
2004-12-23 19:36:19     打赏

手册上说:

The address resolution for each memory bank base pointer is 64K-bytes (16 bits). The base address pointer is 10 bits. This gives a total addressable memory bank space of 16 M words.

基指针是16位,可以寻址64KB,后面还有个基指针是10位,总共是26位,可以寻址2的26次方范围.

如果16位的基指针是积存器组的基指正,10位的指针是组内的指针的话,那么16位的指针是怎么寻址到地址超过64KB地址的组的呢.例如如果ROM/SRAM/FLASH BANK0 配置为2MB,那BANK1不就到2MB外了吗?这16位的基指针不就访问不了这个组了吗?

这里的两个基指针怎么理解?都看了好多资料了.弄不明白.

所以下面的也不明白了:

每个组的起始地址都是基指针的值左移16位,尾地址都是尾指针的值左移16位-1.

没办法,本来不想发这个贴,但实在搞糊涂了了,买了一大堆书,谁知道都是千篇一律,抄了DATASHEET.哎!没办法,只能求救了.我用的鱼板:anywhere2




关键词: 为什么     左移     16位     指针    

菜鸟
2004-12-26 05:32:00     打赏
2楼

估计问题太可笑了!哎!没人回答!?


菜鸟
2004-12-26 05:40:00     打赏
3楼

BANKn的控制寄存器的设置的是CSn有效的地址范围

10bit加上左移16bit,地址只有26bit,所有所有的BANK地址范围只能设置在0-64M byte区域.这里不存在你说的基指针的概念.

程序中,地址是32bit的,可以访问任何地址,当地址范围落入某个CSn的有效范围,CSn就会产生有效的片选信号

[align=right][color=#000066][此贴子已经被作者于2004-12-25 21:49:01编辑过][/color][/align]

共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]