Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
lds
链接脚本_lds_sct_icf_分散加载
如何在RTT Studio中像Keil中一样定义一个RAM区域,并该区域RAM上电复位是不会被初始化的(sct分散加载)
发布于 2024-01-04 13:27:56 浏览:590
订阅该版
在keil中可以设置一个ram的区域,存放于该区域的数据上电或复位是不会初始化的,在kei中的操作以及生成的sct文件如下: ![30404.jpg](https://oss-club.rt-thread.org/uploads/20240104/d7751503e2685c50f9c93037c73f8840.jpg) ![14614.jpg](https://oss-club.rt-thread.org/uploads/20240104/4790707e53f018f46a09030a8c491768.jpg) 在IAR中通过icf文件也是可以实现上述划分定义的。 那么在RTT Studio中如何实现?
查看更多
4
个回答
默认排序
按发布时间排序
lchnu
2024-01-05
Witness, Understand, Skill
**Step 1.** 如图所示,我在.data之前插入一个seciton,命名为lcs ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240105/86d9b813a3a3084a5398378e1163aa9e.png.webp) ```c .lcs : { . = ALIGN(4); _slcs = .; *(.lcs) *(.lcs.*) . = ALIGN(4); _elcs = .; } >RAM ``` **Step 2.** 写一小段测试代码,其中,demo函数的作用就是向位于lcs section中的array写入几个数字; demo2函数的作用是故意关闭中断,且使用SVC 0号,不响应SVC造成hard fault。 ```c /* * Copyright (c) 2006-2024, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes * 2024-01-05 RT-Thread first version */ #include
#define DBG_TAG "main" #define DBG_LVL DBG_LOG #include
__attribute__((section(".lcs"))) rt_uint8_t array[4]; int main(void) { for (int i = 0; i < 4; i++) { LOG_D("array[%d] = %d", i, array[i]); } return RT_EOK; } #include
int demo(int argc, char **argv) { if (argc == 5) { for (int i = 0; i < 4; i++) { array[i] = strtoul(argv[i + 1], 0, 10); } } return 0; } MSH_CMD_EXPORT(demo, write data to array); int demo2(void) { __asm volatile ("MRS r2, PRIMASK"); __asm volatile ("CPSID I"); __asm volatile ("SVC 0"); return 0; } MSH_CMD_EXPORT(demo2, hardfault trigger); ``` **Step 3.** 编译程序,下载,第一次输出的时候是0,0,0,0。通过finsh调用demo,随便写几个数,再使用reboot,或者按键复位,输出结果如下。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240105/87a369d7aa548dfe24438866075581ae.png.webp) **Step 4.** 使用demo2故意触发hard fault,按键复位,依然能输出对应结果。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240105/e32b4c19ae09884c9e46fe2e2b31e1a1.png.webp) 不知道是否符合你的需求?
JonasWen
2024-01-05
这家伙不懒,但是什么也不想写!
data段和bss段中间加个section,然后把不需要初始化的数据定义在这个section里就可以了
哈喽你好啊
2024-01-04
这家伙很懒,什么也没写!
不懂这个,但学习了,哈哈
云安君
2024-01-04
计算机学徒
资源管理器linkscripts目录下的.lds文件,看一下,我刚改了ROM地址,具体不太懂了
撰写答案
登录
注册新账号
关注者
1
被浏览
590
关于作者
CCWang
这家伙很懒,什么也没写!
提问
2
回答
0
被采纳
0
关注TA
发私信
相关问题
1
程序分散加载到外部QSPI FLASH 启动问题
2
studio的链接脚本使用问题。跳转过后程序不执行。
3
link.lds每次修改后,编译会忽略修改
4
RTT-stdio 设置flash地址
5
ethernet 和 use memory layout冲突
6
studio创建的工程为什么链接脚本里ROM和RAM都比MCU本身的小
7
请问如何修改IAR的工程的linker的路径?
8
程序分散加载,使用 use mcroslib 程序无法启动
9
OTA升级链接脚本的修改
10
rthread studio怎么修改link.lds文件来支持外部sram
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
RTduino物联网应用零基础入门
2
TinyUSB Demo运行教程
3
RT-Thread学习大礼包一键带走!
4
freemodbus从机调试说明
5
【1024】瑞萨 RA 系列 BSP 制作与适配最新版本的 Keil 、 RSC、固件,较新的 FSP
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
ART-Pi
FinSH
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
ota在线升级
UART
cubemx
PWM
flash
packages_软件包
freemodbus
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
rt_mq_消息队列_msg_queue
keil_MDK
ulog
C++_cpp
at_device
本月问答贡献
张世争
7
个答案
2
次被采纳
用户名由3_15位
10
个答案
1
次被采纳
KunYi
4
个答案
1
次被采纳
踩姑娘的小蘑菇
2
个答案
1
次被采纳
bernard
1
个答案
1
次被采纳
本月文章贡献
出出啊
1
篇文章
2
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
4
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部