keil rt-thread link.sct 解析
link.sct 解析
#define m_flash_config_start 0x60000000
#define m_flash_config_size 0x00001000#define m_ivt_start 0x60001000
#define m_ivt_size 0x00001000#define m_interrupts_start 0x60002000
#define m_interrupts_size 0x00000400#define m_text_start 0x60002400
#define m_text_size 0x1fffdbff#define m_data_start 0x20000000
#define m_data_size 0x00020000#define m_data2_start 0x20200000
#define m_data2_size 0x00040000/* Sizes */
#if (defined(__stack_size__))#define Stack_Size __stack_size__
#else#define Stack_Size 0x0400
#endif#if (defined(__heap_size__))#define Heap_Size __heap_size__
#else#define Heap_Size 0x0400
#endif#define RTT_HEAP_SIZE (m_data_size-ImageLength(RW_m_data)-ImageLength(ARM_LIB_HEAP)-ImageLength(ARM_LIB_STACK))#if defined(XIP_BOOT_HEADER_ENABLE) && (XIP_BOOT_HEADER_ENABLE == 1)
/*LR_m_text: 加载域名称m_flash_config_start: 加载域 LR_m_text 起始地址; 0x60000000m_text_start+m_text_size-m_flash_config_start: 加载域 LR_m_text 空间大小; (m_flash, m_ivt, m_interrupts, m_text这四个空间加在一起)
*/
LR_m_text m_flash_config_start m_text_start+m_text_size-m_flash_config_start { ; load region size_regionRW_m_config_text m_flash_config_start FIXED m_flash_config_size { ; load address = execution address* (.boot_hdr.conf, +FIRST) //所有目标文件和库的.boot_hdr.conf段, 第一个被加载到执行域, 从起始地址开始}RW_m_ivt_text m_ivt_start FIXED m_ivt_size { ; load address = execution address* (.boot_hdr.ivt, +FIRST) //所有目标文件和库的.boot_hdr.ivt段, 第一个被加载到执行域, 从起始地址开始* (.boot_hdr.boot_data) //所有目标文件和库的.boot_hdr.boot_data段, 被加载到执行域, 紧跟着.boot_hdr.ivt段后* (.boot_hdr.dcd_data) //所有目标文件和库的.boot_hdr.dcd_data段, 被加载到执行域, 紧跟着.boot_hdr.boot_data段后}#else
/*LR_m_text: 加载域名称m_interrupts_start: 加载域 LR_m_text 起始地址; 0x60002000m_text_start+m_text_size-m_interrupts_start: 加载域 LR_m_text 空间大小; (m_interrupts, m_text这两个空间加在一起)
*/
LR_m_text m_interrupts_start m_text_start+m_text_size-m_interrupts_start { ; load region size_region
#endif
//FIXED: 固定地址VECTOR_ROM m_interrupts_start FIXED m_interrupts_size { ; load address = execution address* (RESET,+FIRST) //所有目标文件和库的RESET段, 第一个被加载到执行域, 从起始地址开始}ER_m_text m_text_start FIXED m_text_size { ; load address = execution address* (InRoot$$Sections) //InRoot$$Sections段的所有目标文件和库, 被加载到执行域, 从起始地址开始.ANY (+RO) //所有目标文件和库的RO段, 被加载到执行域, 紧跟着InRoot$$Sections段后}RW_m_data m_data_start m_data_size-Stack_Size-Heap_Size { ; RW data.ANY (+RW +ZI) //所有目标文件和库的RO,ZI段, 第一个被加载到执行域, 从起始地址开始* (NonCacheable.init) //所有目标文件和库的NonCacheable.init段, 被加载到执行域, 紧跟着上一段后* (NonCacheable) //所有目标文件和库的NonCacheable段, 被加载到执行域, 紧跟着上一段后}/*ARM_LIB_HEAP: 堆区执行域名称+0: 前一个加载区域尾地址+offset 做为当前的起始地址, 且"offset"应为"0"或"4"的倍数EMPTY: 表示这段空间留空,防止其它应用占用或编译提示warningHeap_Size: 长度是正值,说明向高地址增长, 大小是Heap_SizeARM_LIB_STACK: 栈区执行域名称Stack_Size: 如果值为正,则栈向高地址增长;否则,栈向低地址增长RTT_HEAP: rt-thread堆区执行域名称RTT_HEAP_SIZE: 同Heap_Size
*/ARM_LIB_HEAP +0 EMPTY Heap_Size{} ; Heap region growing upARM_LIB_STACK +0 EMPTY Stack_Size{} ; Stack region growing downRTT_HEAP +0 EMPTY RTT_HEAP_SIZE{}
}
参考链接:
KEIL MDK链接脚本详解
Keil sct分散加载文件
STM32 分散加载文件 .sct 解析
keil rt-thread link.sct 解析相关推荐
- link.sct解析
keill默认对通过链接文件link.sct(分散加载文件)放到指定的位置. 分为加载区和执行区 加载区:程序复位和加载的代码和数据 执行区:程序执行过程中,从每个加载区可创建一个或多个执行区 ; * ...
- RT Thread根据开发板制作BSP方法
之前一直不懂怎么使用RT Thread的软件包,感谢网上的大神,看了你们的博客后大概了解一些,在此做下记录.用RT Thread软件包需要RT Thread的系统,但是RT Thread和RT Thr ...
- rt thread studio使用QBOOT和片外flash实现OTA升级
我们这里要使用单片机外部flash作为OTA的下载分区,外部flash硬件连接关系 PB3-->SPI3_CLK PB4-->SPI3_MISO PB5-->SPI3_MOSI PE ...
- Java Thread 源码解析
Thread 源码解析 线程的方法大部分都是使用Native使用,不允许应用层修改,是CPU调度的最基本单元.线程的资源开销相对于进程的开销是相对较少的,所以我们一般创建线程执行,而不是进程执行. T ...
- 基于rt thread smart构建EtherCAT主站
我把源码开源到到了gitee,https://gitee.com/rathon/rt-thread-smart-soem 有兴趣的去可以下载下来跑一下 软件工程推荐用vscode 打开.rt thre ...
- stm32f407单片机rt thread 片外spi flash OTA升级配置示例
参考地址https://www.rt-thread.org/document/site/application-note/system/rtboot/an0028-rtboot/ 第一步,生成Boot ...
- 使用RT Thread设备框架封装一个I2C设备——DS3231
使用RT Thread设备框架封装一个I2C设备--DS3231 前言 ENV配置 I2C测试 将ds3231封装成一个字符设备 结语 前言 学习rt thread的I2C的时候,恰巧手上的板子留了d ...
- AUTOSAR从入门到精通100讲(十五)-AURIX TC3xx MCAL中Link文件解析以及代码变量定位方法详解
一 TC3xx系列MCAL中TASKING Link文件解析以及代码变量定位方法 1 TASKING Link文件解析 1.1 DSRAM中的数据存放: 在AURIX™ 2G中(以TC387为例),每 ...
- 面试官系统精讲Java源码及大厂真题 - 27 Thread 源码解析
27 Thread 源码解析 书籍乃世人积累智慧之长明灯. 引导语 从本章开始我们开始学习线程的知识,线程是非常有趣的一个章节,大多数同学对于线程 API,属于不用就忘,到用时需要百度的情况,希望通过 ...
最新文章
- 在 Windows 下安装 Oracle 11g XE (Express Edition)
- 读《分布式一致性原理》JAVA客户端API操作3
- 【Verilog语法】读文件
- java中static x 5_java中static作用详解
- 关于《高性能JavaScript》制表(Memoization)笔记
- ptmalloc、tcmalloc与jemalloc内存分配器对比分析
- 计蒜客 - 守望者的逃离
- 企业实战(2) 项目环境搭建之Tomcat部署
- 计算机网络规范化发生在,关于计算机网络系统工程设计工作规范化的几点建议.pdf...
- Retouch4me 套件 -- 人像自动精修插件
- 给小朋友讲故事——第一次世界大战(音频)
- 易语言浏览本地html,简单的易语言读取网页文本程序
- yy部分地区服务器升级维护,3月5日全区全服更新公告 - YY大皇帝 YY大皇帝独家官网 YY大皇帝新手卡...
- dolphinscheduler 2.0.5 告警组件-HTTP试用及改造
- 请排列RJ45交叉双绞线水晶头的顺序?
- 集易市场微信小程序项目
- 建模贴图技巧,用起来6的飞起
- 商品销售统计系统java_IMS: 基于Java实现的InventoryManagementSystem进销存管理系统
- 大众还是小众?谁在助力《复联3》连破票房纪录
- 最新!Anaconda安装教程超详细