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 解析相关推荐

  1. link.sct解析

    keill默认对通过链接文件link.sct(分散加载文件)放到指定的位置. 分为加载区和执行区 加载区:程序复位和加载的代码和数据 执行区:程序执行过程中,从每个加载区可创建一个或多个执行区 ; * ...

  2. RT Thread根据开发板制作BSP方法

    之前一直不懂怎么使用RT Thread的软件包,感谢网上的大神,看了你们的博客后大概了解一些,在此做下记录.用RT Thread软件包需要RT Thread的系统,但是RT Thread和RT Thr ...

  3. rt thread studio使用QBOOT和片外flash实现OTA升级

    我们这里要使用单片机外部flash作为OTA的下载分区,外部flash硬件连接关系 PB3-->SPI3_CLK PB4-->SPI3_MISO PB5-->SPI3_MOSI PE ...

  4. Java Thread 源码解析

    Thread 源码解析 线程的方法大部分都是使用Native使用,不允许应用层修改,是CPU调度的最基本单元.线程的资源开销相对于进程的开销是相对较少的,所以我们一般创建线程执行,而不是进程执行. T ...

  5. 基于rt thread smart构建EtherCAT主站

    我把源码开源到到了gitee,https://gitee.com/rathon/rt-thread-smart-soem 有兴趣的去可以下载下来跑一下 软件工程推荐用vscode 打开.rt thre ...

  6. stm32f407单片机rt thread 片外spi flash OTA升级配置示例

    参考地址https://www.rt-thread.org/document/site/application-note/system/rtboot/an0028-rtboot/ 第一步,生成Boot ...

  7. 使用RT Thread设备框架封装一个I2C设备——DS3231

    使用RT Thread设备框架封装一个I2C设备--DS3231 前言 ENV配置 I2C测试 将ds3231封装成一个字符设备 结语 前言 学习rt thread的I2C的时候,恰巧手上的板子留了d ...

  8. AUTOSAR从入门到精通100讲(十五)-AURIX TC3xx MCAL中Link文件解析以及代码变量定位方法详解

    一 TC3xx系列MCAL中TASKING Link文件解析以及代码变量定位方法 1 TASKING Link文件解析 1.1 DSRAM中的数据存放: 在AURIX™ 2G中(以TC387为例),每 ...

  9. 面试官系统精讲Java源码及大厂真题 - 27 Thread 源码解析

    27 Thread 源码解析 书籍乃世人积累智慧之长明灯. 引导语 从本章开始我们开始学习线程的知识,线程是非常有趣的一个章节,大多数同学对于线程 API,属于不用就忘,到用时需要百度的情况,希望通过 ...

最新文章

  1. 在 Windows 下安装 Oracle 11g XE (Express Edition)
  2. 读《分布式一致性原理》JAVA客户端API操作3
  3. 【Verilog语法】读文件
  4. java中static x 5_java中static作用详解
  5. 关于《高性能JavaScript》制表(Memoization)笔记
  6. ptmalloc、tcmalloc与jemalloc内存分配器对比分析
  7. 计蒜客 - 守望者的逃离
  8. 企业实战(2) 项目环境搭建之Tomcat部署
  9. 计算机网络规范化发生在,关于计算机网络系统工程设计工作规范化的几点建议.pdf...
  10. Retouch4me 套件 -- 人像自动精修插件
  11. 给小朋友讲故事——第一次世界大战(音频)
  12. 易语言浏览本地html,简单的易语言读取网页文本程序
  13. yy部分地区服务器升级维护,3月5日全区全服更新公告 - YY大皇帝 YY大皇帝独家官网 YY大皇帝新手卡...
  14. dolphinscheduler 2.0.5 告警组件-HTTP试用及改造
  15. 请排列RJ45交叉双绞线水晶头的顺序?
  16. 集易市场微信小程序项目
  17. 建模贴图技巧,用起来6的飞起
  18. 商品销售统计系统java_IMS: 基于Java实现的InventoryManagementSystem进销存管理系统
  19. 大众还是小众?谁在助力《复联3》连破票房纪录
  20. 最新!Anaconda安装教程超详细

热门文章

  1. iPhone12与mate40,你pick哪一款?
  2. 计算机虚拟内存的用途,虚拟内存有什么作用?
  3. MySQL 数据库(包括基础和进阶CURD、事务和索引)
  4. Thinking-in-Java 读书笔记-11-持有对象
  5. python爬虫,记录爬取全球所有国家-首都的简单爬虫
  6. 分析:很多小程序微商城系统为什么敢永久免费使用
  7. 【干货】营销拓客思维导图24式.pdf(附下载链接)
  8. c 语言程序编辑,C语言程序编辑学习篇—编程者说之C语言
  9. java代码读取excel文件,同时兼容2003和2007
  10. Android与Unity的交互