当前位置: 首页 > news >正文

RAM不够?CUBEIDE使用CCMRAM

RAM不够?使用CCMRAM


文章目录

  • RAM不够?使用CCMRAM
  • 打开连接LD文件:
  • 添加代码
  • 添加标识宏
  • 使用


打开连接LD文件:

在这里插入图片描述

添加代码

在SECTIONS段最后加上下面代码:

 _siccmram = LOADADDR(.ccmram);	/* CCM-RAM section * * IMPORTANT NOTE! * If initialized variables will be placed in this section,* the startup code needs to be modified to copy the init-values.  */.ccmram (NOLOAD) :{. = ALIGN(4);_sccmram = .;       /* create a global symbol at ccmram start */*(.ccmram)*(.ccmram*). = ALIGN(4);_eccmram = .;       /* create a global symbol at ccmram end */} >CCMRAM

代码解释:
这段代码是针对 ARM Cortex-M 系列处理器的链接脚本代码,用于描述内存布局中的 .ccmram(Core Coupled Memory RAM)段。这段代码告诉链接器如何将程序的各个部分放置在 .ccmram 段中。下面我会对每个部分进行详细解释:

_siccmram = LOADADDR(.ccmram);

这一行代码将 .ccmram 段的加载地址(LOADADDR)赋值给 _siccmram 符号。_siccmram 是一个全局符号,它将指向 .ccmram 段的起始地址。

.ccmram (NOLOAD) :
{. = ALIGN(4);_sccmram = .;       /* create a global symbol at ccmram start */*(.ccmram)*(.ccmram*). = ALIGN(4);_eccmram = .;       /* create a global symbol at ccmram end */
} >CCMRAM

这段代码定义了 .ccmram 段的内容。以下是对各个部分的解释:

. = ALIGN(4);:这是一个地址对齐操作,确保接下来的数据在 4 字节边界上对齐。ALIGN(4) 意味着数据将按照 4 字节对齐。

_sccmram = .;:这一行代码创建一个全局符号 _sccmram,它将指向此时的地址,即 .ccmram 段的起始地址。

*(.ccmram) 和 (.ccmram):这两行代码表示将所有放置在 .ccmram 段的标准和重定位代码(包括初始化数据、代码等)都添加到此处。

. = ALIGN(4);:再次执行地址对齐操作,确保 .ccmram 段的大小是 4 的倍数。

_eccmram = .;:这一行代码创建另一个全局符号 _eccmram,它将指向此时的地址,即 .ccmram 段的结束地址。

最后,>CCMRAM 指示链接器将这些内容放置在名为 CCMRAM 的特定内存区域中。

综合来看,这段代码的作用是定义了一个名为 .ccmram 的段,该段将位于指定的 CCMRAM 内存区域中。这段代码也提供了起始地址 _sccmram 和结束地址 _eccmram 的全局符号,以便在程序中可以引用这些地址。

添加标识宏

然后在main.h中添加使用CCMRAM的宏标识:

#define CCMRAM __attribute__((section(".ccmram")))

使用

使用:在你想让变量使用CCMRAM的变量的前面加上标识CCMRAM
在这里插入图片描述
结果:成功使用CCMRAM
在这里插入图片描述

相关文章:

RAM不够?CUBEIDE使用CCMRAM

RAM不够?使用CCMRAM 文章目录 RAM不够?使用CCMRAM打开连接LD文件:添加代码添加标识宏使用 打开连接LD文件: 添加代码 在SECTIONS段最后加上下面代码: _siccmram LOADADDR(.ccmram); /* CCM-RAM section * * IMPORTAN…...

npm ERR! code ERESOLVEnpm ERR! ERESOLVE unable to resolve dependency tree

拉取项目到本地 执行 npm install 报错 遇到这个问题首先确认的就是版本是不是太高了,降一下版本。或者通过yarn命令替代npm install命令安装,同理,启动也可以采用yarn dev 启动代替npm run dev 下面教大家用一个NVM工具,这个工…...

使用 prometheus client SDK 暴露指标

目录 1. 使用 prometheus client SDK 暴露指标1.1. How Go exposition works1.2. Adding your own metrics1.3. Other Go client features 2. Golang Application monitoring using Prometheus2.1. Metrics and Labels2.2. Metrics Types2.2.1. Counters:2.2.2. Gauges:2.2.3. …...

Jmeter之BeanShell取出参数进行四则运算,并判断是否正确

首先调用余额接口,使用正则提取响应中的余额字段,记作变量acctBal1做支付交易再次调用余额接口,使用正则提取响应中的余额字段,记作变量acctBal2最后在结果树中可以看到断言错误的信息,断言正确时没有提示以下是beansh…...

PYTHON 斗地主发牌 (简易版)

利用方法: 1. random.randint( ) 随机抽取数字 方法 2.random.sample((抽取范围的参数),(抽取的个数)) 返回的是列表 所以用[0]可以输出里面的元素 import random# 1. 创建牌 # 花色 color ["\u2660", "\u2663", "\u2665", "\…...

CSS文本裁剪

对于单行文本裁剪: span {text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:block; } 对于多行文本裁剪: 在文本容器上定义 CSS Flexbox 属性 display: -webkit-box; 定义要显示的文本行数 -webkit-line-clamp: 4; 添加 -webkit-…...

ClickHouse常见的引擎和使用

1.日志引擎 日志引擎特点 1.数据存储在磁盘上 2.写入时将数据追加在文件末尾 3.不支持突变操作 4.不支持索引 5.非原子地写入数据 6.引擎不支持 ALTER UPDATE 和 ALTER DELETE 操作 建表语法示例 CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster] ( …...

构建之法 - 软件工程实践教学:一线教师的13问

福州大学单红老师的软工课程总结 2020春,不一样的学期不一样的软工实践 单红⽼师在总结中,提出了13条疑惑,《构建之法》的作者邹欣⽼师就单红⽼师提出的每⼀条疑惑,给出了⾃⼰的思考,与他进⾏探讨交流。欢迎你也来参与…...

联调 matlab 遇到的一些事儿

记录当时遇到的问题,因为平时不写 matlab,所以没有深入的理解。 版本兼容 当时遇到的第一个问题就是不同版本 matlab 带来的兼容性问题。同时开发使用的是 2021a 版本,而调试时使用的是 2022b 版本。在新版本中某些函数已被弃用&#xff0c…...

时序预测 | Matlab实现基于GRNN广义回归神经网络的电力负荷预测模型

文章目录 效果一览文章概述源码设计参考资料效果一览 文章概述 时序预测 | Matlab实现基于GRNN广义回归神经网络的电力负荷预测模型 1.Matlab实现基于GRNN广义回归神经网络的电力负荷预测模型 2.单变量时间序列预测; 3.多指标评价,评价指标包括:R2、MAE、MBE等,代码质量极高…...

3.2 Tomcat基础

1. Tomcat概述 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器。 Tomcat版本:apache-tomcat-8.5.76。 2.IDEA集成Tomcat 第一步 第二步 第三步 ​ 编辑切换为居中 添加图片注释,不超过 140 字&#xff0…...

认识http的方法、Header、状态码以及简单实现一个http的业务逻辑

文章目录 http的方法http状态码http重定向http常见Header实现简单业务逻辑Protocol.hppUtil.hppServer.hppServer.cc 效果 http的方法 方法说明支持的HTTP版本GET获取资源1.0/1.1POST传输实体主体1.0/1.1PUT传输文件1.0/1.1HEAD获得报文首部1.0/1.1DELETE删除文件1.0/1.1OPTIO…...

Faiss在windows下安装和使用

pip install faiss-cpu 直接安装可能出现问题: error: command swig.exe failed: No such file or directory 安装swig即可解决,安装方式...

【JavaEE进阶】SpringBoot项目的创建

文章目录 一. SpringBoot简介1. 什么是SpringBoot?2. SpringBoot的优点 二. SpringBoot项目创建1. 使用IDEA创建2. 使用网页创建SpringBoot项目 三. 运行SpringBoot项目 一. SpringBoot简介 1. 什么是SpringBoot? Spring Boot 是一个用于快速构建基于 Spring 框架的应用程序…...

c++二进制转化十进制代码(小数)

#include <bits/stdc.h> using namespace std; int mid; double er_shi(string a){int lena;double sum0;int p0;int q-1;int yn1;//判断是否小数 lenaa.length();//字符串长度 for(int i0;i<lena;i){if(a[i].){midi;yn0;break;} }if(yn0){for(int jmid-1;j>0;j--…...

07_ansible, 条件选择、加载客户事件、在roles和includes上面应用’when’语句、条件导入、基于变量选择文件和模版、注册变量

10.条件选择 10.1.When语句 10.2.加载客户事件 10.3.在roles和includes上面应用’when’语句 10.4.条件导入 10.5.基于变量选择文件和模版 10.6.注册变量 10.条件选择 转自&#xff1a;http://www.ansible.com.cn/docs/playbooks_conditionals.html#id3 常常来说,一个play的…...

4个简化IT服务台任务的ChatGPT功能

最近几个月&#xff0c;ChatGPT 风靡全球&#xff0c;这是一个 AI 聊天机器人&#xff0c;使用户能够生成脚本、文章、锻炼图表等。这项技术在各行各业都有无穷无尽的应用&#xff0c;在本文中&#xff0c;我们将研究这种现代技术如何帮助服务台团队增强服务交付和客户体验。 什…...

群晖7.X版安装cpolar内网穿透

群晖7.X版安装cpolar内网穿透套件 文章目录 群晖7.X版安装cpolar内网穿透套件前言1. 下载cpolar的群晖系统套件1.1 在“套件中心” 选择“手动安装”1.2 完成套件安装 2. 进入cpolar软件信息页3. 点击“免费注册”轻松获得cpolar账号 前言 随着群晖系统的更新换代&#xff0c;…...

[保研/考研机试] KY183 素数 北京航空航天大学复试上机题 C++实现

题目链接&#xff1a; 素数https://www.nowcoder.com/share/jump/437195121691718444910 描述 输入一个整数n(2<n<10000)&#xff0c;要求输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数&#xff0c;如果没有则输出-1。 输入描述&#xff1a; 输入有多…...

Java基础入门篇——IDEA开发第一个入门程序(五)

目录 一、IDEA层级结构分类 二、IDEA层级结构介绍 三、IDEA层级关系 四、创建IDEA中的第一个代码 一、IDEA层级结构分类 IntelliJ IDEA的项目结构主要分为以下几个层级&#xff1a; Project&#xff1a; 项目Module: 模块Package: 包Class&#xff1a; 类 一个项目里面…...

知网文献批量下载终极指南:3步实现自动化检索与高效管理

知网文献批量下载终极指南&#xff1a;3步实现自动化检索与高效管理 【免费下载链接】CNKI-download :frog: 知网(CNKI)文献下载及文献速览爬虫 (Web Scraper for Extracting Data) 项目地址: https://gitcode.com/gh_mirrors/cn/CNKI-download 在学术研究工作中&#…...

别再只用IoU了!目标检测模型调参时,如何根据你的数据集选择最合适的损失函数?

目标检测损失函数实战指南&#xff1a;如何为你的数据集定制最优方案 在目标检测任务中&#xff0c;损失函数的选择往往决定了模型的最终表现。面对琳琅满目的IoU变体——从基础的IoU到GIOU、DIOU、CIOU&#xff0c;再到最新的EIOU和SIOU&#xff0c;开发者们常常陷入选择困难。…...

S32K3车载MCU的BIST自检怎么配?手把手教你用MCAL配置STCU2(附代码避坑点)

S32K3车载MCU的BIST自检实战指南&#xff1a;从MCAL配置到工程避坑 在汽车电子功能安全开发中&#xff0c;芯片级自检(BIST)是实现ISO 26262合规的关键技术。NXP S32K3系列MCU内置的STCU2模块&#xff0c;为工程师提供了完整的LBIST(逻辑内置自检)和MBIST(存储器内置自检)解决方…...

从一次‘Permission denied’错误讲起:手把手教你用chmod搞定Linux下各种文件的权限问题

从"Permission denied"到权限掌控&#xff1a;Linux文件权限实战指南 引子&#xff1a;一个常见错误的背后 那天下午&#xff0c;服务器监控突然报警——核心数据同步脚本停止运行了。我SSH登录到机器&#xff0c;尝试手动执行脚本&#xff0c;终端却冷冰冰地返回&am…...

STC15单片机串口通信实战:从零配置到用printf优雅调试(附完整工程)

STC15单片机串口通信实战&#xff1a;从零配置到用printf优雅调试 1. 硬件准备与环境搭建 STC15W408AS作为一款增强型51内核单片机&#xff0c;其串口功能在物联网终端、工业控制等场景中应用广泛。我们先从硬件连接开始&#xff1a; 典型串口硬件配置清单&#xff1a; STC15W4…...

猫抓浏览器扩展:从网页资源嗅探到流媒体下载的全能解决方案

猫抓浏览器扩展&#xff1a;从网页资源嗅探到流媒体下载的全能解决方案 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 你是否曾经在浏览网页时&am…...

5千字长文:一篇看懂 Agent Harness 的结构!

这篇文章我提取的最核心的一句话是&#xff1a;Agent Model Harness。 模型负责智能&#xff0c;Harness 负责把这份智能变成能持续工作的系统。真正决定 agent 上限的&#xff0c;不只是底座模型&#xff0c;而是模型外面的那整套文件系统、工具、记忆、状态、验证和上下文…...

淘宝图片搜索API:通过图片地址获取淘宝相似商品

下面给你一份可直接用于开发、解析、入库的淘宝图片搜索API 完整解析&#xff0c;包含标准返回结构、关键字段、解析要点、常见坑。一、接口基本信息接口名&#xff1a;taobao.item_search_img作用&#xff1a;通过图片url搜索相似商品&#xff0c;平台外图片地址可先用taobao.…...

Hypnos-i1-8Bmarkdown输出:自动生成含公式、代码块、步骤编号的结构化报告

Hypnos-i1-8B&#xff1a;自动生成含公式、代码块、步骤编号的结构化报告 1. 模型概述 Hypnos-i1-8B是一款专注于强推理能力和思维链(CoT)表现的8B参数开源大模型。该模型基于NousResearch/Hermes-3-Llama-3.1-8B微调而来&#xff0c;通过量子噪声注入训练技术显著提升了在复…...

MATLAB调试进阶:巧用assignin和evalin实时查看和修改函数内部变量

MATLAB调试进阶&#xff1a;巧用assignin和evalin实时查看和修改函数内部变量 调试复杂算法时&#xff0c;最令人头疼的莫过于那些难以复现的边界条件错误。想象这样一个场景&#xff1a;你的粒子群优化算法在迭代到第137次时突然偏离预期轨迹&#xff0c;但断点调试会破坏时序…...