0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

浅谈RAM 执行应用程序

454398 来源:瑞萨电子 作者:瑞萨电子 2021-06-20 18:22 次阅读

许多应用程序需要从 RAM 中执行代码,例如出于安全原因或例如在引导加载程序用于闪存自编程的情况下。通常这样的应用程序必须分为两部分:

将从闪存执行的主要部分。这部分代表主要应用程序,例如引导加载程序

主应用程序中的图像将在运行时复制到 RAM

pYYBAGDPFmuARZ76AABH62H65tw604.png

软件概念

考虑到上述概念,开发需要考虑几个问题:

如何创建将存储在闪存中但在运行时从 RAM 执行的应用程序?

如何调试在不同项目中构建的应用程序?

公共资源

两个应用程序的分离需要如何处理公共资源,例如 RAM。

RAM
– 堆栈和堆定义(两个应用程序一个堆栈和一个堆;每个应用程序单独的堆栈)
– SADDR 和数据 RAM 应根据应用程序要求进行分区

选项字节
——选项字节将在应用程序之一中定义。此选项字节中的所有配置(例如看门狗)应对两个应用程序都有效,因为它不能在运行时更改

中断
——通过使用自编程库,可以对 RAM 中的所有中断使用通用中断服务程序

下图说明了两个应用程序的内存映射。这里堆栈用作两个应用程序的公共资源。

poYBAGDPFn2AIj0iAABpbpWXdgo872.png

两个应用程序的内存映射(ROM、RAM)

创建一个从 RAM 执行的应用程序

本章介绍如何设置一个应用程序,该应用程序将通过主应用程序闪存中的映像加载并从 RAM 执行。请注意,以下描述的配置基于两个应用程序的一个公共堆栈。

内存映射

由于 RAM 中的应用程序是独立应用程序,因此必须相应地定义编译器/汇编器使用的所有标准段,如 RCODE、XCODE、FAR_I、FAR_CONST 等。与普通应用程序相比的不同之处在于,该应用程序将从 RAM 而非闪存执行。这意味着这些段最初位于图像(闪存)中,稍后将逐段复制到 RAM 并从那里执行。请注意,如果应用程序有多个片段,则无法直接复制整个图像。

pYYBAGDPFoaAFMBgAACvyWHzDVU581.png

这样做的原因是图像中的段位置可能与 RAM 中的位置不同,因此必须逐段复制所有段。由于应用程序将从 RAM 中执行,因此必须通知链接器该段将放置在闪存中,但从 RAM 中执行。这可以通过将在下一章中介绍的链接器功能“分散加载”来完成。

编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • RAM
    RAM
    +关注

    关注

    8

    文章

    1368

    浏览量

    114639
收藏 人收藏

    评论

    相关推荐

    使用uboot引导应用程序

    uboot默认是支持执行应用程序的,就像引导内核一样,我们也可以自己写一个应用程序,让uboot启动时引导。
    发表于 11-16 14:00 996次阅读

    如何配置ARM KEIL uVision5以在TLE9879 EVALKIT上的RAM中加载和执行应用程序的指导或步骤?

    KEIL uVision5 以在 TLE9879 EVALKIT上的 RAM 中加载和执行应用程序的指导或步骤?
    发表于 01-31 06:46

    浅谈Web应用程序的压力测试

    浅谈Web应用程序的压力测试摘要:压力测试是Web应用程序测试必不可少的一项工作。现以一个用ASP.NET开发的信息管理系统为例,详细论述如何使用ACT对W eb应用程序进行压力测试。
    发表于 10-10 15:23

    怎么优化应用程序的闪存和RAM使用

    我试图优化我的应用程序的闪存和RAM使用。我使用的是433W收音机。我注意到BRCMYPATCHAMAMBUF位于RAM部分。它严格地需要吗?我看到声明是const,但它仍然在我的应用程序
    发表于 09-20 16:36

    为什么要将flash操作代码拷贝到ram执行

    升级。比较特别的是,需要将flash操作代码拷贝到ram执行,这是为什么?bootloader程序所在flash空间设置为被保护状态,不会误擦除,而且运行到哪个函数自然会把函数压栈到RAM
    发表于 07-16 06:10

    MCU应用程序架构的相关资料推荐

    ,对mcu ram 有一定的要求。详细介绍顺序执行法这种方式较为简单,实时性,并行性要求不高的情况下是一种不错的选择,程序设计简单,思路较为清晰,但是当应用程序较为复杂的情况下,如果.
    发表于 11-03 09:22

    i.MXRT1176是否可以在执行应用程序时写入NOR闪存?

    的 MCU,所以我不清楚我是否可以在执行应用程序时写入它。 我可以简单地写入闪存还是在写入时必须从 RAM执行程序
    发表于 03-24 08:08

    在MAXQ8913微控制器中从RAM执行应用程序

    在MAXQ8913微控制器中从RAM执行应用程序 MAXQ8913及其它MAXQ®微控制器采用的Harvard存储器映射架构为用户提供了
    发表于 01-11 17:56 1160次阅读
    在MAXQ8913微控制器中从<b class='flag-5'>RAM</b><b class='flag-5'>执行</b><b class='flag-5'>应用程序</b>

    ARM应用程序构架_顺序执行模板

    ARM嵌入式应用程序架构设计实例精讲--ARM应用程序构架01顺序执行模板
    发表于 07-08 11:08 6次下载

    ARM应用程序构架01顺序执行模板

    电子专业单片机相关知识学习教材资料——ARM应用程序构架01顺序执行模板
    发表于 09-13 17:23 0次下载

    真的可以在执行Linux应用程序的同时播放DVD质量的媒体吗?

    真的可以在执行Linux应用程序的同时播放DVD质量的媒体吗?
    发表于 05-13 11:39 2次下载
    真的可以在<b class='flag-5'>执行</b>Linux<b class='flag-5'>应用程序</b>的同时播放DVD质量的媒体吗?

    MCU应用程序架构整理(转)

    办法,对mcu ram 有一定的要求。详细介绍顺序执行法这种方式较为简单,实时性,并行性要求不高的情况下是一种不错的选择,程序设计简单,思路较为清晰,但是当应用程序较为复杂的情况下,如
    发表于 10-28 11:06 17次下载
    MCU<b class='flag-5'>应用程序</b>架构整理(转)

    MCU应用程序架构

    大致应用程序的架构有三种: 1. 简单的前后台顺序执行程序,这类写法是大多数人使用的方法,不需用思考程序的具体架构,直接通过执行顺序编写应用程序
    发表于 10-29 10:36 11次下载
    MCU<b class='flag-5'>应用程序</b>架构

    设计和执行用于监控电力的传感器网络应用程序

    电子发烧友网站提供《设计和执行用于监控电力的传感器网络应用程序.zip》资料免费下载
    发表于 07-11 16:26 0次下载
    设计和<b class='flag-5'>执行</b>用于监控电力的传感器网络<b class='flag-5'>应用程序</b>

    怎么使用uboot引导应用程序

    uboot默认是支持执行应用程序的,就像引导内核一样,我们也可以自己写一个应用程序,让uboot启动时引导。
    的头像 发表于 02-17 16:01 1493次阅读
    怎么使用uboot引导<b class='flag-5'>应用程序</b>?