STM32定义数组到flash的指定位置
目录
- 一、 概述
- 二、 attribute机制
一、 概述
前面博客里通过QT5实现了一个bin文件合成工具。bin文件为什么要分为IAP、APP、PARA三部分呢?默认参数PARA在芯片第一次上电时,在模块初始化中直接写入flash不就可以了吗?
在程序初始化过程中,通常需要避免写flash。因为如果上电时电源不稳定(如焊接电池),那就有可能擦除flash后,默认参数PARA刚写入一部分,因为断电停止写入了。
通过固化PARA到bin文件中,可以避免上电写flash问题。但每次合成还是有些麻烦的。而且手动合成,可能会导致地址偏移错等问题。
本文记录下程序内将参数直接定义到指定flash地址的方法。
二、 attribute机制
修改之前,程序编译后生成的bin文件大小:
程序内通过attribute,指定参数数组的存储地址为0x1FA00
:
uint32_t val[12] __attribute__((at(0x1FA00))) = {0x060A01AA, 0x05010703,0x00010500,0x00000000,0x04000103, 0x1a0a0e06, 0x62223212, 0x0082c242, 0x00B53B36, 0X00CADE35, 0X00FEF335, 0x00000000};
再次编译,可以看到生成的bin文件变大:
查看map文件,可以看到val
数组已经指定存放到0x0001FA00
地址:
通过WinHex查看bin文件内容:
可以看到地址0x1FA00
处存放的正是参数数组val
的内容。这里也可以看到,芯片是小端模式。数组第一个元素是0x060A01AA
,存储到flash中,从低地址到高地址依次为0xAA
、0x01
、0x0A
、0x06
。也就是高地址放高字节,低地址放低字节。
对程序进行仿真,也可以查看:
更多attribute的用法:C语言__attribute__的使用。
STM32定义数组到flash的指定位置相关推荐
- python把光标定义到指定的位置并删除之前的字符_python 批量修改预定字符串并将修改后的字符串插入文件指定位置...
下面的例子是在文件的指定位置增加指定字符串的例子 修改配置文件: def add_str(pre_str): lines =[] flag= Truef= open("z.txt" ...
- python seek到指定行_python文件操作seek()偏移量,读取指正到指定位置操作
python 文件操作seek() 和 telll() 自我解释 file.seek()方法格式: seek(offset,whence=0) 移动文件读取指针到制定位置 offset:开始的偏移量, ...
- 不是python文件处理seek()方法的参数是_python文件操作seek()偏移量,读取指正到指定位置操作...
python 文件操作seek() 和 telll() 自我解释 file.seek()方法格式: seek(offset,whence=0) 移动文件读取指针到制定位置 offset:开始的偏移量, ...
- js 给json添加新的字段,或者添加一组数据,在JS数组指定位置删除、插入、替换元素...
JS定义了一个json数据var test={name:"name",age:"12"};需要给test再添加一个字段,需要什么办法,可以让test的值为{na ...
- Windows核心编程_获取鼠标指定位置的RGB颜色值
Windows核心编程_获取鼠标指定位置的RGB颜色值 大家平常会见到很多屏幕取色工具,其原理都是获取鼠标位置的屏幕像素点颜色! 一般思路都是:获取鼠标位置,然后取出鼠标指向的屏幕像素点颜色! Get ...
- 将Python Pandas DataFrame写入docx文档指定位置
http://www.lzys.cc/p/1168451.html https://www.yinyubo.cn/?p=352 from docx import Document import pan ...
- STM32学习笔记:FLASH读写之二
因为关于STM32的Flash相关的知识点比较多,所以该内容的学习我们分为以下4个部分 1.RAM和ROM的一些基本概念 -- STM32学习笔记:FLASH读写之一 2.STM32的Flash寄存器 ...
- U盘GPIO文件系统映射-STM32利用内置FLASH做U盘
受到linux对一切设备的控制都当成文件对待的启发 于是便有了这个将GPIO映射到U盘中的想法,这样一来便可以在任何支持U盘的设备中扩展系统的硬件功能了 我的QQ是243786753,这属于原创作品, ...
- 使用Itext操作PDF,修改文本内容及指定位置插入图片
参考博客:修改文本的 参考博客:插入图片的 这里基于修改文本的博客编写的,主要解决了几个问题: 1.文件乱码 2.设置区域背景色 3.设置文字字体颜色 4.插入图片空指针 5.指定位置插入偏移 等等问 ...
最新文章
- Redis 笔记(13)— scan 和 keys 寻找特定前缀key 字段(命令格式、使用示例、定位大key)
- SpringCloud Alibaba微服务实战(一) - 基础环境搭建
- Linux下CMake简明教程(九) 添加控制选项
- It feels great to know you learned something, isn‘t it?
- respberry pi3 上手随记
- 【音视频安卓开发 (七)】安卓视频播放窗口去掉标题栏、全屏、横屏
- 跨平台的PHP+MySQL_跨平台的PHP+MySQL
- 再也不学AJAX了!(三)跨域获取资源 ② - JSONP CORS
- java项目收获总结_java开发项目收获心得
- Unity 修改asset store下载路径(win10)
- 【HLA】初识HLA/RTI
- php开发工具ps,小蚂蚁学习PS切图之基础操作(2)——工具栏的介绍
- python“~”符号的用法
- php excel 进度,在php中生成Excel文件时显示进度条
- NDK学习笔记:FFmpeg解压MP34提取音频PCM(swrContext、swr_alloc_set_opts)
- intel 服务器最新cpu,英特尔发布至强 Xeon W-3300 系列服务器处理器:最高 38 核
- 那些年我们没能bypass的xss filter[from wooyun]
- 【Allen方差】计算allen方差
- 【LuKS】Vba开发从入门到精通 =.=
- 什么是 Ubuntu?
热门文章
- qt及qt quick开发实战精解_Qt5实战001:Qt 5.15下载安装详解
- php func_get_args(),PHP中func_get_args(),func_get_arg(),func_num_args()有什么不同
- java中文件下载的思路(参考:孤傲苍狼)
- linux系统 设置网卡ping通主机连上外网
- xpath 取标签下所有文字内容_如何理解葡萄酒标签上的所有内容(下)
- linux查找以h结尾的文件,linux中文件查找的常用命令
- matlab层次分析法代码_基于主成分分析法和层次分析法的工程项目经理胜任力评价研究...
- 线性判别用于提取词向量_历年试题公开 | 2017级线性代数(I)期末试题
- torchvision.transforms
- 拉普拉斯变换公式表_工程数学中的积分变换的总结