Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
lds
链接脚本_lds_sct_icf_分散加载
如何在RTT Studio中像Keil中一样定义一个RAM区域,并该区域RAM上电复位是不会被初始化的(sct分散加载)
发布于 2024-01-04 13:27:56 浏览:869
订阅该版
在keil中可以设置一个ram的区域,存放于该区域的数据上电或复位是不会初始化的,在kei中的操作以及生成的sct文件如下:   在IAR中通过icf文件也是可以实现上述划分定义的。 那么在RTT Studio中如何实现?
查看更多
5
个回答
默认排序
按发布时间排序
lchnu
2024-01-05
Witness, Understand, Skill
**Step 1.** 如图所示,我在.data之前插入一个seciton,命名为lcs  ```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,或者按键复位,输出结果如下。  **Step 4.** 使用demo2故意触发hard fault,按键复位,依然能输出对应结果。  不知道是否符合你的需求?
JonasWen
2024-01-05
这家伙不懒,但是什么也不想写!
data段和bss段中间加个section,然后把不需要初始化的数据定义在这个section里就可以了
哈喽你好啊
2024-01-04
这家伙很懒,什么也没写!
不懂这个,但学习了,哈哈
云安君
2024-01-04
计算机学徒
资源管理器linkscripts目录下的.lds文件,看一下,我刚改了ROM地址,具体不太懂了
程序员小白
2025-03-03
这家伙很懒,什么也没写!
请问没有link.lds文件可以创建一个写入上面的寄存器设置吗
撰写答案
登录
注册新账号
关注者
1
被浏览
869
关于作者
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
RT-Thread CI编译产物artifacts自动上传功能介绍
2
STM32G030移植RT-Thread
3
CubeMX & RT-Thread Studio 联合开发说明
4
RT-Thread动态模块
5
RT-Thread项目助手v0.3 | Ubuntu与MacOS平台的RT-Thread Env
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
rt-smart
RTC
FAL
I2C_IIC
ESP8266
UART
cubemx
WIZnet_W5500
ota在线升级
PWM
BSP
flash
freemodbus
packages_软件包
潘多拉开发板_Pandora
GD32
定时器
ADC
flashDB
编译报错
socket
中断
rt_mq_消息队列_msg_queue
Debug
keil_MDK
SFUD
msh
ulog
C++_cpp
MicroPython
本月问答贡献
lchnu
3
个答案
2
次被采纳
张世争
1
个答案
2
次被采纳
a1012112796
9
个答案
1
次被采纳
三世执戟
8
个答案
1
次被采纳
聚散无由
5
个答案
1
次被采纳
本月文章贡献
jinchanchan
9
篇文章
13
次点赞
ssdd45555
3
篇文章
2
次点赞
聚散无由
1
篇文章
4
次点赞
RTT_逍遥
1
篇文章
3
次点赞
hywing
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部