尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Cortex-M3:为什么 OVERLAY 机制存在?

Cortex-M3:为什么 OVERLAY 机制存在? 难度:★★★本文首发于我的嵌入式技术号「OneChan讲Soc嵌入式」,未经授权禁止转载。想象一个场景。你的芯片只有 32KB 的 RAM,但工程里有两个巨大的功能模块——一个负责网络通信,一个负责图形显示。每个模块的代码和数据各需要 24KB 的 RAM。它们装不下。但业务逻辑决定了:这两个模块永远不会同时运行。网络通信发生在设备启动时,图形显示在设备运行后才激活。有没有办法,让这两块代码共用同一片 RAM?有。这个机制叫OVERLAY。今天这篇文章,就来拆开这个嵌入式系统里最古老也最精巧的内存复用技术。它早已超越了“省内存”的朴素动机,而是牵出了链接器在地址空间管理上最底层的抽象能力。一、OVERLAY 解决什么问题?问题:多个代码或数据块,在不同的时间阶段使用,但 RAM 装不下它们所有人。解决方案听起来很简单:让它们在时间上轮流占用同一片 RAM。就像一间房子,白班工人和夜班工人共用同一张床。他们永远不会同时在家,所以只需要一张床。OVERLAY 就是这张“共享的床”。在分散加载文件里,它的语法是这样:SHARED_
返回列表