打印
[技术问答]

NUC970 shadow memory的作用是什么?

[复制链接]
1659|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zjuwuyu|  楼主 | 2018-9-24 15:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
This chip provides the shadow memory function. The memory space from 0x8000_0000 to
0xAFFF_FFFF is the shadow memory space for memory space from 0x0000_0000 to
0x2FFF_FFFF. The memory space from 0xBC00_0000 to 0xBC00_DFFF is the shadow memory
space for memory space from 0x3C00_0000 to 0x3C00_DFFF. If the DMA of On-Chip Controller
wants to access this 56 k-byte embedded SRAM, it’s necessary to use memory space from
0xBC00_0000 to 0xBC00_DFFF


影子内存的作用是什么?我看到LCD裸机实验里面,申请出来的内存特意把地址最高位置1, 那样就变成了影子内存的地址空间了, 为什么这么做呢, 有什么好处? 代码如下:

uint8_t* vpostGetFrameBuffer(void)
{
    uint8_t* u8BufPtr;
    uint8_t u32BytePerPixel;

    if((curDisplayDev.u32DevWidth == 0) || (curDisplayDev.u32DevHeight == 0))
        return NULL;

    switch(curVADev.ucVASrcFormat) {
    case VA_SRC_YUV422:
    case VA_SRC_YCBCR422:
    case VA_SRC_RGB565:
        u32BytePerPixel = 2;
        break;

    case VA_SRC_RGB666:
    case VA_SRC_RGB888:
        u32BytePerPixel = 4;
        break;

    default:
        u32BytePerPixel = 2;
    }

    u8BufPtr = (uint8_t *)malloc((curDisplayDev.u32DevWidth * curDisplayDev.u32DevHeight * u32BytePerPixel)+32);
    u8BufPtr = (uint8_t *)shift_pointer((uint32_t)u8BufPtr, 32);

    outpw(REG_LCM_VA_BADDR0, (uint32_t)((uint32_t)u8BufPtr | 0x80000000));
   
    outpw(REG_LCM_VA_FBCTRL, inpw(REG_LCM_VA_FBCTRL) & ~(1<<30) & ~VPOSTB_DB_EN);

    return (uint8_t *)((uint32_t)u8BufPtr | 0x80000000);

}


沙发
huangcunxiake| | 2018-9-24 20:30 | 只看该作者
它是为了提高系统效率而采用的一种专门技术。

使用特权

评论回复
板凳
huangcunxiake| | 2018-9-24 20:30 | 只看该作者
Shadow RAM所使用的物理芯片仍然是CMOS DRAM(动态随机存取存储器)芯片。Shadow RAM 占据了系统主存的一部分地址空间。其编址范围为C0000~FFFFF,即为1MB主存中的 768KB~1024KB区域。这个区域通常也称为内存保留区,用户程序不能直接访问。 Shadow RAM的功能是用来存放各种ROM BIOS的内容。或者说Shadow RAM中的内容是ROM BIOS的拷贝。因此也把它称为ROM Shadow(即Shadow RAM的内容是ROM BIOS的“影 子”)。 在机器上电时,将自动地把系统BIOS、显示BIOS及其它适配器的BIOS装载到Shadow RAM 的指定区域中。由于Shadow RAM的物理编址与对应的ROM相同,所以当需要访问BIOS时, 只需访问Shadow RAM即可,而不必再访问ROM。 通常访问ROM的时间在200ns左右,而访问DRAM的时间小于100ns(最新的DRAM芯片访问时 间为60ns左右或者更小)。在系统运行的过程中,读取BIOS中的数据或调用BIOS中的程序 模块是相当频繁的。显然,采用了Shadow技术后,将大大提高系统的工作效率。 按下按键你可以看到该地址空间分配图,在如图所示的1MB主存地址空间中,640KB以下的 区域是常规内存。640KB~768KB区域保留为显示缓冲区。768KB~1024KB区域即为Shadow RAM区。在系统设置中,又把这个区域按16KB大小的尺寸分为块,由用户设定是否允许使 用。 C0000~C7FFF这两个16KB块(共32KB)通常用作显示卡的ROM BIOS的Shadow区。 C8000~EFFFF这10个16KB块可作为其它适配器的ROM BIOS的Shadow区。F0000~FFFFF 共64KB规定由系统ROM BIOS使用。 应该说明的是,只有当系统配置有640KB以上的内存时才有可能使用Shadow RAM。在系统 内存大于640KB时,用户可在CMOS设置中按照ROM Shadow分块提示,把超过640KB以上的 内存分别设置为“允许”(Enabled)即可。

使用特权

评论回复
地板
huangcunxiake| | 2018-9-24 20:31 | 只看该作者
百科查到的,真不太懂这个。970的板子好用不,性价比如何?

使用特权

评论回复
5
zjuwuyu|  楼主 | 2018-9-25 23:06 | 只看该作者
@huangcunxiake 谢谢。 我淘宝上买的开发板, 主要是看中它的封装,自己焊板子比较方便。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

0

粉丝