The virtual address range you can use for the virtual-to-physical mapping
in OEMAddressTable is only 0x80000000 to 0x9FFFFFFF (512MB).
Every entry in this table is replicated in the second table in the range
0xA0000000 to 0xBFFFFFFF.
Suppose you define in your OEMAddressTable an entry for 128MB of flash as
follows:
DCD 0x90000000, 0x00000000, 128
the kernel will define another entry
DCD 0xB0000000, 0x00000000, 128
If you access the flash using the virtual addresses @ 0x90000000 you access
the physical range with cache enable; if you access the flash using the
virtual
addresses @ 0xB0000000 you access the physical range with cache disable.
So if you have a virtual cached address and you add 0x20000000, you'll get
the virtual uncached address.
The OEMAddressTable defines a static mapping between kernel virtual
addresses
and physical addresses. if you have an application, the virtual memory it
uses is
allocated dinamically, i.e. virtual address 0x7000000 will map to some
physical
address in RAM according to the MMU
相关热门文章
给主人留下些什么吧!~~
评论热议
本文讨论了OEM地址表中虚拟到物理映射的使用,包括映射范围、复制表及其对闪存访问的影响。解释了如何通过修改映射来控制缓存状态,并介绍了应用程序虚拟内存的动态分配。

1703

被折叠的 条评论
为什么被折叠?



