STM32也会遇到这样的绝对定位的问题如下:

uint8_t   UART_RX_BUF[1024]   __attribute__ ((at(0X20001000)));   //就是将串口接收的数据定位到RAM中起始地址为0X20001000;

绝对定位要么定位到flash、要么定位到RAM,这里我们将定位在flash进行说明。

MDK如何实现将数据存储到FLASH指定地址?

我们在烧录数据的时候,一般是从0x08000000开始按照顺序烧录到flash里面的,如何让数据能够定义到绝对地址如0800F000,就必须保证文件内数据也是存储在该地址,为了实现这个目的,MDK在生成文件时会填充0x00字段,从而确保能够将数据定义到

从实际情况也能验证这个原理,我以我的测试代码为例:

const u16 gFlashDefValue4[512] __attribute__((at(0x0800F000))) =  {0x1111, 0x1111, 0x1111, 0x0111, 0x0111,0x0111};

可以看到Code+ReadOnly= 15236+47228 = 62464
而gFlashDefValue4占绝对地址F000+512*2 = 62464

从生成的BIN文件也可以证实该观点:

如果你自己查看生成文件也可以发现中间填充了大量的0x00.但有一点要注意, FLASH定义绝对地址时要考虑ZI-Data的长度,否则可能会导致FLASH溢出。

转载于:https://www.cnblogs.com/jiangzhaowei/p/9264365.html

STM32学习笔记之__attribute__ ((at())绝对定位分析相关推荐

  1. STM32学习笔记 | CAN总线收发数据常见问题分析

    关注+星标公众号,不错过精彩内容 CAN,Controller Area Network(控制器局域网络),在汽车电子.工业控制领域的应用比较多,通常用于局域组网. CAN总线和UART.I2C.SP ...

  2. STM32学习笔记 | 引起电源和系统异常复位的原因

    关注+星标公众号,不错过精彩内容 每一块处理器都有复位的功能,不同处理器复位的类型可能有差异,引起复位的原因也可能有多种. STM32的复位功能非常强大,可通过软件.硬件和一些事件触发系统复位,而且通 ...

  3. 【STM32学习笔记-点亮LED灯】

    STM32学习笔记-点亮LED灯 文章目录 STM32学习笔记-点亮LED灯 一.原理图分析 二.代码分析 1.mian函数 2.led.c函数 3.led.h函数 4.函数文件整理 5.LED_In ...

  4. STM32学习笔记(四)丨TIM定时器及其应用(定时中断、内外时钟源选择)

    本篇文章包含的内容 一.TIM 定时器 1.1 TIM 定时器简介 1.2 TIM 定时器类型及其工作原理简介 1.2.1 基本定时器工作原理及其结构 1.2.2 通用定时器工作原理及其结构 1.2. ...

  5. STM32学习笔记(六)丨TIM定时器及其应用(输入捕获丨测量PWM波形的频率和占空比)

    本篇文章包含的内容 一.输入捕获 1.1 输入捕获简介 1.2 输入捕获通道的工作原理 1.3 输入捕获的主从触发模式 1.4 输入捕获和PWMI结构 二.频率的测量方法 2.1 测频法 2.2 测周 ...

  6. STM32学习笔记:按键实验

    STM32学习笔记:按键实验 一.所使用的函数 1.时钟使能函数 RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState New ...

  7. 《STM32学习笔记》3——核心功能电路与编程(上)

    接上文,文中的图片,大多数来自视频的截图(来自洋桃电子). 欢迎大家批评指正! STM32学习笔记-专栏 文章目录 一.核心板电路分析 二.点灯 LED 1.LED电路 2.LED功能相关初始化配置 ...

  8. 009 - STM32学习笔记 - 中断

    009 - STM32学习笔记 - 中断 这节的内容,野火的官方视频我反复看了好几次,但是感觉火哥在这块讲解的特别绕,理解起来很吃力,后来在看了一下其他老师的视频,结合一些书本资料和官方手册,才搞清楚 ...

  9. 【STM32学习笔记-LED呼吸灯】

    STM32学习笔记-点亮LED灯 文章目录 STM32学习笔记-点亮LED灯 一.呼吸灯原理 二.呼吸灯代码 1.main.c 2.led.c 3.led.h 三.代码分析 一.呼吸灯原理 占空比:占 ...

最新文章

  1. LODOP提示、报错、现象,简短问答
  2. ubuntu18.04(python3.6)安装pip3报错:ImportError: cannot import name 'sysconfig'
  3. 【C语言】%[修饰符] 格式字符
  4. stm32之RCC寄存器学习
  5. nginx通过lua从日志中获得请求响应体
  6. daz模型导入marvelous_传世工坊自制Daz Studio 4.10 系列入门教程
  7. 泛型字典 0104 c#
  8. css :after和:before
  9. IOS AppUI规格指南
  10. 剑指offer面试题[19]-二叉树的镜像
  11. java 53个关键字_java的保留(53个)关键字v11.docx
  12. Properties文件操作
  13. Java语言的发展简史
  14. js原型、原型链、原型链继承详解
  15. 爬虫入门经典(九) | 简单一文教你如何爬取扇贝单词
  16. 重装系统教程(适合小白)
  17. javaweb之Html/Hss/JavaScript/BootStrap小结
  18. 攻击者如何破坏无人机?
  19. 5.深入浅出:多级放大电路种类及动态分析——参考《模拟电子技术基础》清华大学华成英主讲
  20. 华为41岁年薪超百万的架构师被裁员,之前年薪到手120万

热门文章

  1. winform datagridview 合并单元格
  2. [管理心得] 稻盛和夫为日航危机出诊--人情营销的典型
  3. NASM中SECTION的概念
  4. HTML的dl、dt、dd标记制作表格对决Table制作表
  5. Hibernate连接池配置实例
  6. asp.net中将数据库绑定到DataList控件的实现方法与实例代码
  7. java 数据结构源码--线段树
  8. C++语言学习思维导图
  9. volatile的介绍
  10. 为指针分配的内存太小