(1)为什么要分bank出来,这样做的意义何在?
(2)每一个存储设备挂在一个bank上,但是对我的嵌入式系统来说,一片flash最多32M,是怎么和128M相映射的?如果cpu发出寻址指令,又是怎么做重定向的?特别是还在u-boot阶段这样的映射就已经建立起来了,这个时候MMU也还没有初始化,内核也还没有跑起来,怎么去管理?
1、分几个bank是为了方便管理设备。因为arm是统一编址的,所有外围设备的寻址和内存是一样的。
如果只有一个bank的话,那很多设备的基地址都是0x0了
2、flash 32m的话就只能映射32m的空间,和128m的bank空间没有必然联系。至于寻址指令如何定向,可以稍微了解一下cpu的体系结构知识,这个arm没有特殊性的(arm的每个bank首地址是通过片选线来选中的,nGCS)。u-boot阶段的内存管理就是最基本的,直接读写物理地址即可,没有什么复杂管理的