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

河南做网站高手排名中国航天建设集团有限公司网站

河南做网站高手排名,中国航天建设集团有限公司网站,网站建设相关的广告标语,武城网站建设公司在STM32中,BIN文件内需要加载到RAM的数据由链接脚本(Linker Script)​和启动代码(Startup Code)​共同决定,具体机制如下: 一、BIN文件内容结构 STM32的BIN文件包含三类数据: ​Co…

在STM32中,BIN文件内需要加载到RAM的数据由链接脚本(Linker Script)​启动代码(Startup Code)​共同决定,具体机制如下:


一、BIN文件内容结构

STM32的BIN文件包含三类数据:

  1. Code:程序代码段(存储在Flash中直接执行,无需加载到RAM)
  2. RO-data:只读常量(如字符串常量,存储在Flash中)
  3. RW-data:已初始化的全局变量(需从Flash拷贝到RAM)
  4. ZI-data:未初始化或初始化为0的全局变量(仅需在RAM中预留空间并清零)
    • 关键特性:BIN文件中不包含ZI-data,因其内容全为0,仅记录其大小信息。

二、加载逻辑的核心——链接脚本

链接脚本通过定义存储区域划分,明确哪些数据需加载到RAM:

  1. 存储域(Load Region)与执行域(Execution Region)​

    • 存储域定义代码/数据在Flash中的存储位置
    • 执行域定义运行时数据在RAM中的位置
    LR_IROM1 0x08000000 {        ; Flash存储域ER_IROM1 0x08000000 {    ; 代码段执行域(Flash)*.o (RESET, +RO)     ; 代码和只读数据}RW_IRAM1 0x20000000 {    ; RAM执行域*.o (+RW +ZI)        ; 需加载到RAM的读写数据}
    }
  2. 特殊段标记
    使用section属性显式指定函数/变量到RAM区域:

    __attribute__((section("RAMCODE"))) void Fast_ISR(void) {// 高频中断服务函数(需在RAM中运行)
    }

三、启动代码的加载操作

启动代码(如startup_stm32xxx.s)在main()执行前完成RAM数据加载:

  1. 初始化堆栈指针(MSP)​
    从Flash的起始地址(如0x08000000)获取初始栈顶地址(__initial_sp)。

  2. 复制RW-data到RAM

    LDR  R0, =_sidata     ; Flash中RW-data的源地址
    LDR  R1, =_sdata       ; RAM中RW-data的目标地址
    LDR  R2, =_edata
    CopyDataLoop:LDR  R3, [R0], #4STR  R3, [R1], #4CMP  R1, R2BNE  CopyDataLoop
  3. 初始化ZI-data为零

    LDR  R0, =_sbss       ; ZI-data起始地址
    LDR  R1, =_ebss
    ZeroLoop:MOV  R2, #0STR  R2, [R0], #4CMP  R0, R1BNE  ZeroLoop

四、动态加载机制

在Bootloader或自定义加载场景中,可通过以下方式扩展:

  1. 外部存储加载
    从SD卡/SPI Flash读取BIN文件到SDRAM,跳转执行(需配置内存映射)。

  2. 运行时重定位
    使用分散加载文件的FIXED属性强制指定代码在RAM中的固定地址:

    ER_RAMCODE 0x20000000 FIXED { ; 强制代码在RAM中运行*.o (RAMCODE)
    }

五、调试与验证方法

  1. 查看.map文件
    检查符号地址(如_sdata_sbss)确认数据段分配。

  2. 逻辑分析仪抓取时序
    观测Flash到RAM的数据传输过程。


总结流程

STM32通过链接脚本定义数据归属,由启动代码实现物理搬运,最终完成RAM数据加载。


文章转载自:

http://6q1rCeqr.fbjqq.cn
http://GXbmHxpI.fbjqq.cn
http://cvKsjSLh.fbjqq.cn
http://3oS7CdDJ.fbjqq.cn
http://IeugYpGy.fbjqq.cn
http://QRylgTi9.fbjqq.cn
http://19BgwkfN.fbjqq.cn
http://l2WBKyOy.fbjqq.cn
http://oL9Dek1q.fbjqq.cn
http://4MO3LODC.fbjqq.cn
http://bIe2OCAB.fbjqq.cn
http://yVdvBJca.fbjqq.cn
http://VwkY5DP1.fbjqq.cn
http://5GMaodQS.fbjqq.cn
http://wlO8l2kv.fbjqq.cn
http://puV2ne92.fbjqq.cn
http://LsrXPS7D.fbjqq.cn
http://mHm8XJhR.fbjqq.cn
http://dHliQEXX.fbjqq.cn
http://PAOKUKEC.fbjqq.cn
http://9Kjv1dbi.fbjqq.cn
http://XaDIfRyT.fbjqq.cn
http://XkMAYMLv.fbjqq.cn
http://SHfZjvRr.fbjqq.cn
http://rBsLIGPL.fbjqq.cn
http://ShhM8Ijl.fbjqq.cn
http://bJY7PFrL.fbjqq.cn
http://5n9jDCSi.fbjqq.cn
http://mkXrTW0N.fbjqq.cn
http://p9M04G5Y.fbjqq.cn
http://www.dtcms.com/wzjs/683694.html

相关文章:

  • 那些网站可以给产品做推广浙江室内设计公司排名
  • 用万网建设网站教程视频自己做网站不用WordPress
  • 济南做网站公司排名单词优化和整站优化
  • 搭建网站需要学什么服务器类网站建设
  • 百度下载并安装最新版徐州seo建站
  • 海洋馆的网站怎么做网络规划设计师资料
  • 安卓开发软件手机版seo外包公司专家
  • 男女做暖暖暖网站公司企业做网站好做吗
  • 岳阳做网站网站开发行业分析
  • 各大中文网站网站建设进度说明
  • 公司招聘要求百度网站优化升上去
  • 中南建设的网站wordpress挖矿木马
  • 动易网站后台密码破解如何做网站的301重定向
  • 怎么编辑网站后台个人如何做网站软件
  • 企业网站的一般要素谷歌云 搭建wordpress
  • 哪儿提供邢台做网站wordpress图片缩略图不显示图片
  • 滑县网站建设哪家好抖音矩阵排名软件seo
  • 杭州网站搭建网站过程建设
  • 做高档衣服的网站专门做网页设计网站
  • 哈尔滨网站建设报价价格学做网站需要掌握哪些知识
  • 白银市建设管理处网站php网站mysql数据库导入工具
  • iis 7.0 网站配置下载之家
  • 网站分几种类型毕业网站建设开题报告
  • 漳州最具口碑的网站建设方案 网站
  • 用网站做宣传的费用支付平台网站建设
  • 安徽网站备案要多少时间企业做网站须要注意些什么
  • 网站建设前期准备工作中机建设一公司网站
  • 新乡营销网站建设公司泉州seo网站建设费用
  • 网站设计内容板块重庆做网站_重庆网站建设_重庆网络推广_重庆网络公司
  • 免费素材网站无版权月夜直播视频免费观看