浅谈RAM 执行应用程序

许多应用程序需要从 ram 中执行代码,例如出于安全原因或例如在引导加载程序用于闪存自编程的情况下。通常这样的应用程序必须分为两部分:
将从闪存执行的主要部分。这部分代表主要应用程序,例如引导加载程序
主应用程序中的图像将在运行时复制到 ram
软件概念
考虑到上述概念,开发需要考虑几个问题:
如何创建将存储在闪存中但在运行时从 ram 执行的应用程序?
如何调试在不同项目中构建的应用程序?
公共资源
两个应用程序的分离需要如何处理公共资源,例如 ram。
ram
– 堆栈和堆定义(两个应用程序一个堆栈和一个堆;每个应用程序单独的堆栈)
– saddr 和数据 ram 应根据应用程序要求进行分区
选项字节
——选项字节将在应用程序之一中定义。此选项字节中的所有配置(例如看门狗)应对两个应用程序都有效,因为它不能在运行时更改
中断
——通过使用自编程库,可以对 ram 中的所有中断使用通用中断服务程序
下图说明了两个应用程序的内存映射。这里堆栈用作两个应用程序的公共资源。
两个应用程序的内存映射(rom、ram)
创建一个从 ram 执行的应用程序
本章介绍如何设置一个应用程序,该应用程序将通过主应用程序闪存中的映像加载并从 ram 执行。请注意,以下描述的配置基于两个应用程序的一个公共堆栈。
内存映射
由于 ram 中的应用程序是独立应用程序,因此必须相应地定义编译器/汇编器使用的所有标准段,如 rcode、xcode、far_i、far_const 等。与普通应用程序相比的不同之处在于,该应用程序将从 ram 而非闪存执行。这意味着这些段最初位于图像(闪存)中,稍后将逐段复制到 ram 并从那里执行。请注意,如果应用程序有多个片段,则无法直接复制整个图像。
这样做的原因是图像中的段位置可能与 ram 中的位置不同,因此必须逐段复制所有段。由于应用程序将从 ram 中执行,因此必须通知链接器该段将放置在闪存中,但从 ram 中执行。这可以通过将在下一章中介绍的链接器功能“分散加载”来完成。


大数据风控系统是什么样子的
LVDS接口电路及设计
LT3080是一款1.1A低压差线性稳压器
【成功案例】安全的FG25 SoC助力Nagano JRC开发下一代智能电表
大数据时代下如何保护自己的信息安全
浅谈RAM 执行应用程序
10.9.1 导电原子力显微镜(CAFM)∈《集成电路产业全书》
物联网网关的定位方式
摆脱充电垫,Ossia的新式无线充电技术有望明年面世!
重庆首个“物联网体感大数据实验室”在重庆大学正式揭牌成立
UWB与WiFi的应用激增齐头并进
鸿蒙系统内核中CPU空闲时间都在干嘛
工业智能物联网网关钡铼BL110网口LAN采集西门子PLC S7-200Smart
人脸识别危险大,但勿将其妖魔化
高频无源RFID标签芯片电路及方案设计
凌华科技发布SDAQ-200系列软件定义智能DAQ系统
物流无人机需求不断增加,未来前景良好
奥迪Q3 1.4T 30 TFSI上手体验评测
华为Mate Xs将于今晚亮相 预计搭载麒麟990 5G芯片
无源低通滤波器原理