009_STM32程序移植之_内部falsh

flash  模拟  EEPROM  实验

1. 测试环境:STM32C8T6

2. 测试接口:

3. 串口使用串口一,波特率9600

单片机引脚------------CH340引脚

VCC--------------------VCC

GND-------------------GND

PA9--------------------RXD

PA10-------------------TXD

STM32 本身没有自带 EEPROM,但是 STM32 具有 IAP(在应用编程)功能,

所以我们可以把它的 FLASH 当成 EEPROM 来使用。本章,我们将利用 STM32 内部的 FLASH 实现数据的存放,通过串口打印显示存放数据,不过我们是将数据直接存放在 STM32 内部,而不是存放在 W25Q64。 本章分为以下学习目标:

1.  学习操作 STM32 内部 flash

2.  查看上一篇:008_STM32之_keil编译内存大小解析了解内存

3.  以下为大中小型STM32的闪存容量

STM32 的闪存模块由:主存储器、信息块和闪存存储器接口寄存器等 3 部分组成。主存储器,该部分用来存放代码和数据常数(如 const 类型的数据)。对于大容量产品,其被划分为256 页,每页 2K 字节。注意,小容量和中容量产品则每页只有 1K 字节。从上图可以看出主存储器的起始地址就是 0X08000000, Boot0、 Boot1 都接 GND 的时候,就是从 0X08000000开始运行代码的

1.  上面的是原理解析,下面进行STM32内部flash程序移植

2.  测试串口打印程序是否能够使用

3.  开始移植内部flash上代码

4.  移植程序成功解析代码

5.  这个是存入的起始地址

6.  起始地址从上面的主存储块那里查看地址,地址不能超过相应的容量范围,不然的话程序会不运行,

//设置FLASH 保存地址(必须为偶数,且其值要大于本代码所占用FLASH的大小+0X08000000)   ,代码大小查看上一篇008_STM32之_keil编译内存大小解析

7.  建议起始地址:

1.  小容量:0X08007000

2.  中容量:0X08010000

3.  大容量:0X08070000

8.  上面的只是建议打大小,具体要看使用的有多大的数组了,反正不超过程序大小就行了

9.  注意:

10.结束

11. 资料下载:关注公众号

疑惑QQ:3045136580

假如以下视频播放不了,可以到腾讯《STM32移植系列》专辑中查找相对应的

腾讯个人主页:http://v.qq.com/vplus/ffb274f0adf3a4d4374b388a03b2358f/folders

本移植教程地址:https://v.qq.com/x/page/e0770rdy3pg.html

资料下载地址:https://download.csdn.net/download/xiaoguoge11/10633933

原文地址:https://www.cnblogs.com/luxiaoguogege/p/9690282.html

时间: 2024-10-07 00:40:37

009_STM32程序移植之_内部falsh的相关文章

018_STM32程序移植之_串口接收中文

(一)在平时数据传输中很少用到接收中文的情况,但是最近需要用到就花了半天时间来弄弄 (二)接收原理,从现在接收情况分析:一个中文占两个数据的空间,也就是两个十六进制可以转化成为一个中文 (三)示例情况,用Hex Editor来看看中文 "你好",可以看到四个十六进制数据:0xc4,0xe3,0xba,0xc3 (四)我们的目的还是单片机通过串口来进行数据的接收,用CH340短接T和R看看发送"你好"也是会接收到十六进制0xc4,0xe3,0xba,0xc3 (五)从

android数据存储_内部存储

源码下载(免下载积分):下载 你可以直接存储数据到内部存储中,默认情况下,文件存储到内部存储中是私有的,不能被 其他程序访问,当卸载应用程序,这些文件会被移除. 创建并写入数据可以有两种方法: 使用java中的相关的方法, 使用android.content中的相关方法,  调用 openFileOutput(),并返回FileOutputStream对象 调用FileOutputStream对象的write()方法 关闭流 读文件也是基本相同的方式. 在读文件有一点小技巧:如果想在编译时保存一

QT程序移植成功

今天终于把QT移植好了,并且交叉编译了helloworld和Clock. 花了好长时间,其实归根结底是不了解交叉编译是什么. 一开始在电脑上安装了QT软件,可以打开新建工程做了个例程,在这个基础上用提供的ARM-LINUX交叉编译器编译程序,一直不能用,最后发现其实自己并没有好好看开发板的文档,有一个文档已经写出了怎样移植QT .需要重新用ARM-LINUX交叉编译工具编译QT的安装包,最后make install之后才会得到可以用来交叉编译和移植到开发板的QT库和工具,电脑上安装的那个QT软件

【转】将 Linux 应用程序移植到 64 位系统上

原文网址:http://www.ibm.com/developerworks/cn/linux/l-port64.html 随着 64 位体系结构的普及,针对 64 位系统准备好您的 Linux® 软件已经变得比以前更为重要.在本文中,您将学习如何在进行语句声明.赋值.位移.类型转换.字符串格式化以及更多操作时,防止出现可移植性缺陷. 0 评论: Harsha S. Adiga, 软件工程师, IBM 2006 年 5 月 18 日 内容 在 IBM Bluemix 云平台上开发并部署您的下一个

STM32F429 LCD程序移植

STM32F429自带LCD驱动器,这一具有功能给我等纠结于屏幕驱动的程序员带来了很大的福音.有经验的读者一定有过这样的经历,用FSMC驱动带由控制器的屏幕时候,一旦驱动芯片更换,则需要重新针对此驱动芯片做寄存器配置等等,一系列繁琐的操作.但是,如果MCU自带LCD驱动器,情况就不一样了,特别是加载了STemwin之后,不同厂家屏幕,只要其分辨率一样,则可以直接替换,最多是触摸屏的芯片不一样,做些触摸驱动.如果分辨率不同,则只需要更改分辨率就可以了,其硬件接口是一样的. 本文是从野火的5寸800

程序备忘_异步电机的转速估计以及角度估计(高压)

程序备忘_异步电机的转速估计以及角度估计(高压) 2017-03-18 20:23 259人阅读 评论(0) 收藏 举报  分类: 程序备忘(42)  算法(39)  高压变频(36)  版权声明:本文为博主原创文章,可以转载 \ 转速估计算法是建立在参数辨识基础上的

程序备忘_过流_LV_15KW

程序备忘_过流_LV_15KW 2016-09-07 21:53 98人阅读 评论(0) 收藏 举报  分类: 程序备忘(42)  版权声明:本文为博主原创文章,可以转载

程序备忘_矢量控制原理框图_LV

程序备忘_矢量控制原理框图_LV 2016-10-07 01:59 188人阅读 评论(0) 收藏 举报  分类: 程序备忘(42)  算法(39)  版权声明:本文为博主原创文章,可以转载

程序备忘_参数辨识_LV41

程序备忘_参数辨识_LV41 2016-10-09 01:54 56人阅读 评论(0) 收藏 举报  分类: 程序备忘(42)  版权声明:本文为博主原创文章,可以转载