首页 > 编程知识 正文

半导体overlay,nat地址转换原理

时间:2023-05-05 09:26:05 阅读:113309 作者:1283

Overlay技术:

分类:大致分为软件操作系统硬件

本文主要介绍软件实现OVERLAY。 关于硬件的实现方法和战略,现在能找到的资源有限,自己还不知道,所以在现状中不介绍。

OVERLAY是指实现内存区域的再利用。 在SOC中,RAM是一个快速但单位面积的组件,这意味着每单位面积的成本很高。 降低成本的一种方法是将程序代码放在较慢但单位面积较小的flash或ROM中,只有在系统需要执行中的几个程序代码时才加载到内存中执行。

Overlay区域可以放置原始数据,也可以放置原始数据。

需要注意的前提是:

1、模块a和模块b不能同时使用。

2、替换OVERLAY区域内的数据时,请根据需要用软件保存。

3、实现重叠的RW、RO必须与位置无关。

4、OVERLAY相关区域的移动保存由软件负责。

下面以ARM M系列的 sct文件进行说明:

LR_IROM10x000000000x0000F000 {; 加载区域size _ region

er_irom10x0000000000x000000200{; load地址=execution地址

*.o (重置,第一个) )。

* (在根$ $ sections中) )

}

ER_IROM2 00x0000EE00 {

. any(ro ) )。

}

RW_IRAM10x200100000x00003FF0 {; 原始数据

. any(rwzi ) )。

}

rw _ iram 20x 20013 ff0uninit0x 000010 {

. any(rwzi ) )。

}

; ; ; ; ; ; overlayrawdatabuffer0andsomeoverlayfunction

rw _ ove lay _ ra w00 x 20020000 overlay0x 2000 {

touchdataprocesslib.o (原始数据0 ) )。

}

; ; ; ; ; ; overlayrawdatabuffer0andsomeoverlayfunction

}

LR_IROMX0x0000F0000x0000300 {; 加载区域size _ region

HD_IROMX0x20020000 OVERLAY {

板载func.o (funcinfohead ) )。

}

ER_IROMX0x20021000 OVERLAY {

Overlayfunc.o(ro ) )。

}

}

在上述文件中,RAM区域0x 20020000到0x 200220实现了OverLay机制。 其中,存在于初始化的是touchdataprocesslib.o(rawdata0)的内容。

如果需要OverLayFunc.o功能,软件会将相应的OverLayFunc.o(funcinfohead )、overlay func.o (ro )复制到

对应的OverLay区域。 这样,您就可以在0x 20020000到0x 200220之间访问OverLayFunc.o中的内容。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。