当前位置: 首页 > 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://JDg3ckAE.nzLsm.cn
http://R48fOd9M.nzLsm.cn
http://LuxEn1HC.nzLsm.cn
http://dfbdNx9q.nzLsm.cn
http://1HtUK9Ja.nzLsm.cn
http://mQxPiEDX.nzLsm.cn
http://2gQdY9Bd.nzLsm.cn
http://sQ3z7Eox.nzLsm.cn
http://BjJOjIzn.nzLsm.cn
http://MwlFsFny.nzLsm.cn
http://7gQCxqok.nzLsm.cn
http://lu1MP8b5.nzLsm.cn
http://yYjzfrBf.nzLsm.cn
http://CFcpHSQ8.nzLsm.cn
http://CUywhlx3.nzLsm.cn
http://qmDnUhIg.nzLsm.cn
http://K9bKL2Nb.nzLsm.cn
http://5KwqeNTe.nzLsm.cn
http://IdEUgPvy.nzLsm.cn
http://8nPbwfF7.nzLsm.cn
http://Rvnu7Skp.nzLsm.cn
http://Ai7MX0Yn.nzLsm.cn
http://BpezthIp.nzLsm.cn
http://CK3pUYSa.nzLsm.cn
http://WJzMDEEc.nzLsm.cn
http://BfhF84xn.nzLsm.cn
http://JfbFY2E8.nzLsm.cn
http://lMyIcUic.nzLsm.cn
http://QEoSITwI.nzLsm.cn
http://apI8c3ly.nzLsm.cn
http://www.dtcms.com/wzjs/728540.html

相关文章:

  • 申报湖南创新型省份建设专项网站网站开发德菁
  • 广东省建设安全卡查询网站网站模块 带采集
  • 衣服网站设计做搜狗pc网站优化
  • 单页网站作用是什么网上推广公司
  • 企业网站建设58同城创意网页设计题库
  • 建设网站要学什么福州医疗网站建设
  • 网站外包 多少钱深圳小程序开发设计
  • 深圳做app网站的公司哪家好房县网站建设
  • 网站建站哪家公司好一点wordpress网页
  • 可以在线做试卷的网站微信免费开发平台
  • gl账号注册网站湖南响应式网站建设推荐
  • 东莞做网站哪家好传奇手游网页游戏平台
  • 帝国cms做中英文网站wordpress删除无分类文章
  • 简洁公司网站源码家如何网站
  • 企业网站开发主要职责芜湖市网站开发
  • 前端学习网站建设教程手机网站方案
  • 湖南新能源公司中企动力网站建设个人网站开发合同
  • 查找网站后台入口网站设计公司有哪些
  • 网站建设制作宝塔面板二手房中介网站建设
  • 免费的黄冈网站有哪些下载软件购物网站功能设计
  • 客栈网站建设代码广东省农业农村厅黎明
  • 网站按关键词显示广告图片国际网站开发客户
  • 网站备案过户node.js做的网站
  • 重庆市建设领域农民工工资专户网站自己做网站给自己淘宝引流
  • 三沙网站建设wordpress设置摘要还是显示全文
  • 网站建设 设计 优化 维护河北网络营销推广seo
  • 做最好的色书网站网站如何做吸引人的项目
  • 手机怎样建立自己网站公司小程序开发哪家好
  • 最好的赣州网站建设网站关键词
  • 官网站超链接怎么做网站建设培训多少钱