STM32学习笔记之__attribute__ ((at())绝对定位分析
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())绝对定位分析相关推荐
- STM32学习笔记 | CAN总线收发数据常见问题分析
关注+星标公众号,不错过精彩内容 CAN,Controller Area Network(控制器局域网络),在汽车电子.工业控制领域的应用比较多,通常用于局域组网. CAN总线和UART.I2C.SP ...
- STM32学习笔记 | 引起电源和系统异常复位的原因
关注+星标公众号,不错过精彩内容 每一块处理器都有复位的功能,不同处理器复位的类型可能有差异,引起复位的原因也可能有多种. STM32的复位功能非常强大,可通过软件.硬件和一些事件触发系统复位,而且通 ...
- 【STM32学习笔记-点亮LED灯】
STM32学习笔记-点亮LED灯 文章目录 STM32学习笔记-点亮LED灯 一.原理图分析 二.代码分析 1.mian函数 2.led.c函数 3.led.h函数 4.函数文件整理 5.LED_In ...
- STM32学习笔记(四)丨TIM定时器及其应用(定时中断、内外时钟源选择)
本篇文章包含的内容 一.TIM 定时器 1.1 TIM 定时器简介 1.2 TIM 定时器类型及其工作原理简介 1.2.1 基本定时器工作原理及其结构 1.2.2 通用定时器工作原理及其结构 1.2. ...
- STM32学习笔记(六)丨TIM定时器及其应用(输入捕获丨测量PWM波形的频率和占空比)
本篇文章包含的内容 一.输入捕获 1.1 输入捕获简介 1.2 输入捕获通道的工作原理 1.3 输入捕获的主从触发模式 1.4 输入捕获和PWMI结构 二.频率的测量方法 2.1 测频法 2.2 测周 ...
- STM32学习笔记:按键实验
STM32学习笔记:按键实验 一.所使用的函数 1.时钟使能函数 RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState New ...
- 《STM32学习笔记》3——核心功能电路与编程(上)
接上文,文中的图片,大多数来自视频的截图(来自洋桃电子). 欢迎大家批评指正! STM32学习笔记-专栏 文章目录 一.核心板电路分析 二.点灯 LED 1.LED电路 2.LED功能相关初始化配置 ...
- 009 - STM32学习笔记 - 中断
009 - STM32学习笔记 - 中断 这节的内容,野火的官方视频我反复看了好几次,但是感觉火哥在这块讲解的特别绕,理解起来很吃力,后来在看了一下其他老师的视频,结合一些书本资料和官方手册,才搞清楚 ...
- 【STM32学习笔记-LED呼吸灯】
STM32学习笔记-点亮LED灯 文章目录 STM32学习笔记-点亮LED灯 一.呼吸灯原理 二.呼吸灯代码 1.main.c 2.led.c 3.led.h 三.代码分析 一.呼吸灯原理 占空比:占 ...
最新文章
- LODOP提示、报错、现象,简短问答
- ubuntu18.04(python3.6)安装pip3报错:ImportError: cannot import name 'sysconfig'
- 【C语言】%[修饰符] 格式字符
- stm32之RCC寄存器学习
- nginx通过lua从日志中获得请求响应体
- daz模型导入marvelous_传世工坊自制Daz Studio 4.10 系列入门教程
- 泛型字典 0104 c#
- css :after和:before
- IOS AppUI规格指南
- 剑指offer面试题[19]-二叉树的镜像
- java 53个关键字_java的保留(53个)关键字v11.docx
- Properties文件操作
- Java语言的发展简史
- js原型、原型链、原型链继承详解
- 爬虫入门经典(九) | 简单一文教你如何爬取扇贝单词
- 重装系统教程(适合小白)
- javaweb之Html/Hss/JavaScript/BootStrap小结
- 攻击者如何破坏无人机?
- 5.深入浅出:多级放大电路种类及动态分析——参考《模拟电子技术基础》清华大学华成英主讲
- 华为41岁年薪超百万的架构师被裁员,之前年薪到手120万