欢迎访问我司网站!我们是低阻值电阻产品解决方案提供商,

首页

Keil MDK如何将变量存储在指定的内存地址中?

Keil MDK如何将变量存储在指定的内存地址中?

请注意+星级官方帐户,不要错过令人兴奋的内容。

更强大的黄微信官方账号| strongHuang变量是程序的重要组成部分,产品中的许多业务代码都是起关键作用的变量。

传感器收集的数据,通信中传输的数据,算法中的数据以及其他数据需要借助变量来实现。

为什么我们将变量,数组(例如表或函数)存储在特定地址?因为某些特殊数据可能需要指定地址,例如加密密钥,校验和,并且其他数据可能需要存储在指定的内存中。

1变量查看工具在描述变量在指定内存地址中的存储之前,我们首先描述用于查看变量的工具(可以通过工具查看变量的值)1. STMStudio与您共享了“ STM Studio调试”和诊断工具说明”前 。

这是与本文相关的STMStudio的简短讨论:变量。

STMStudio可以管理四种变量:1.由物理存储地址标识的绝对变量。

2.能够计算统计变量,例如绝对变量的最小值,最大值,平均值和标准偏差。

3.表达式变量是数学表达式计算的结果。

表达式是绝对变量或统计变量与数学运算符(+,-,*,/ ...)的组合,例如:(Variable1 + Variable2)* Variable3。

注意,表达式变量是在统计变量之后计算的,因此无法计算表达式的统计值。

4.包含用户可配置信息的插件变量。

(为了节省时间,请使用由友道翻译过的句子,并结合原文理解)。

可以看出,不支持局部变量。

2. J-Scope这个STMStudio工具类似于J-Scope,并且还可以查看变量和波形:J-Scope也是一个很好的工具,您可以下载并安装它以尝试:https://www.segger.com / products / debug-probes / j-link / tools / j-scope 2 Keil MDK如何在指定的内存地址中存储变量?不同的编译器可能具有不同的实现方法。

在这里,我们主要讨论基于AC5和AC6结合MDK的编译,并简要介绍其中的方法。

1.对于AC5(ARMCC编译器版本5.x),将变量cnt定义为指定的内存地址:0x20008000 uint8_t cnt __attribute __((at(0x20008000))); 2.为AC6(ARM编译器6(也称为ARMCLANG))定义一个变量cnt到指定的存储器地址:0x20008000 uint8_t cnt __attribute __((section(“。

ARM .__ at_0x20008000”))));这个地方是分段的:以这种方式指定内存地址,您可以使用STMStudio来查看指定的地址变量:好的,我首先在这里写,希望对大家有帮助。

------------ END ------------推荐阅读:如何编写ARM处理器Bootloader SEGGER三种RTOS的特征是什么?支持C,C ++和其他语言的几种出色的在线编译器。

关注微信公众号“ strongerHuang”,回复“ 1024”。

在后台查看更多内容,请在“按照规定加入技术交流小组。

长按可转到图片中包含的官方帐户。

点击“阅读原件”查看更多分享。

欢迎分享,收藏,喜欢和观看。

免责声明:本文内容经21ic授权后发布,版权归原作者所有。

该平台仅提供信息存储服务。

本文仅代表作者的个人观点,并不代表该平台的立场。

如有任何疑问,请与我们联系,谢谢!