当前位置: 首页 > wzjs >正文

公司网站建设策划书重庆在线课程平台

公司网站建设策划书,重庆在线课程平台,nodejs做的网站,盐山网站最近在做无人船和机巢远程在线升级的项目,牵扯到flash的操作,特此记录,便于以后查找。IMU也用到过,当时没记录 具体细节看 E:\Documets\AY\a-project\IMU\IMU16500\S0IMU v3.3 study\User\Driver\source eeprom.c E:\Documets\A…

最近在做无人船和机巢远程在线升级的项目,牵扯到flash的操作,特此记录,便于以后查找。IMU也用到过,当时没记录

具体细节看
E:\Documets\AY\a-project\IMU\IMU16500\S0IMU v3.3 study\User\Driver\source eeprom.c

E:\Documets\AY\a-project\bootloader\Nest_Fdr_bootload_V8 - study\User\App iap_flash.c

参考文章:https://blog.csdn.net/jingling122/article/details/100898806
https://blog.csdn.net/m0_58168670/article/details/130599477
在这里插入图片描述

分类: 只读存储器(ROM) 只写存储器(RAM)

在这里插入图片描述
在这里插入图片描述

嵌入式 Flash:(以STM32f407为例)

内存容量: stmf407内存512k

Flash 具有以下主要特性:

● 对于 STM32F40x 和 STM32F41x,容量高达 1 MB;对于 STM32F42x 和 STM32F43x,
容量高达 2 MB
● 128 位宽数据读取
● 字节、半字、字和双字数据写入
● 某个扇区擦除与全部擦除
● 存储器组织结构
● 低功耗模式(有关详细信息,请参见参考手册的“电源控制 (PWR)”部分)

Flash 结构:
— 主存储器块,分为 4 个 16 KB 扇区、1 个 64 KB 扇区和 7 个 128 KB 扇区
— 系统存储器,器件在系统存储器自举模式下从该存储器启动
— 512 字节 OTP(一次性可编程),用于存储用户数据
OTP 区域还有 16 个额外字节,用于锁定对应的 OTP 数据块。
— 选项字节,用于配置读写保护、BOR 级别、软件/硬件看门狗以及器件处于待机或
停止模式下的复位。

在这里插入图片描述
注意:我们的f407只有3个128kb的沙扇区,对扇区进行访问或者擦除的时候需要计算出其实地址和结束地址,用户下载数据时候,是从起始地址下载进去的;
在这里插入图片描述

注意:
          用户在存储自定义的数据时候,尽量从后面开始存储数据;避免对用户数据进行干扰

内部FLASH使用方法:

1.flash解锁–>2.flash擦除–>3.flash写入–>4.flash上锁–>5.flash读取
在这里插入图片描述

第一步:Flash 控制寄存器解锁:

原因:复位后,Flash 控制寄存器 (FLASH_CR) 不允许执行写操作,以防因电气干扰等原因出现对Flash 的意外操作。
寄存器的解锁顺序如下:

  1. 在 Flash 密钥寄存器 (FLASH_KEYR) 中写入 KEY1 = 0x45670123
  2. 在 Flash 密钥寄存器 (FLASH_KEYR) 中写入 KEY2 = 0xCDEF89AB

注意:如果顺序出现错误,将返回总线错误并锁定 FLASH_CR 寄存器,直到下一次复位
在这里插入图片描述

具体步骤:

在这里插入图片描述

第二步、擦除:

擦除扇区之前需要设计编程/擦除并行位数,决定了写入的时间,Flash 擦除操作可针对扇区或整个 Flash(批量擦除)执行。执行批量擦除时,不会影响OTP 扇区或配置扇区。

扇区擦除的具体步骤如下:

  1. 检查 FLASH_SR 寄存器中的 BSY 位,以确认当前未执行任何 Flash 操作
  2. 在 FLASH_CR 寄存器中,将 SER 位置 1,并从主存储块的 12 个 (STM32F405xx/07xx
    和 STM32F415xx/17xx) 或 24 个 (STM32F42xxx 和 STM32F43xxx) 扇区中选择要擦除
    的扇区 (SNB) 需要指定扇区号(0~7),通过扇区地址计算,本芯(STM32F407)片只有7个扇区
  3. 将 FLASH_CR 寄存器中的 STRT 位置 1开始擦除扇区
  4. 等待 BSY 位清零 等待擦除完成
    在这里插入图片描述

通过扇区地址判断扇区号的自定义函数:
//获取flash的扇区号 通过扇区地址进行获取

uint32_t GetSector(uint32_t Address) { uint32_t sector = 0;
if((Address < ADDR_FLASH_SECTOR_1) && (Address >= ADDR_FLASH_SECTOR_0)) {
sector = FLASH_Sector_0; } else if((Address < ADDR_FLASH_SECTOR_2) && (Address >= ADDR_FLASH_SECTOR_1)) {
sector = FLASH_Sector_1; } else if((Address < ADDR_FLASH_SECTOR_3) && (Address >= ADDR_FLASH_SECTOR_2)) {
sector = FLASH_Sector_2; } else if((Address < ADDR_FLASH_SECTOR_4) && (Address >= ADDR_FLASH_SECTOR_3)) {
sector = FLASH_Sector_3; } else if((Address < ADDR_FLASH_SECTOR_5) && (Address >= ADDR_FLASH_SECTOR_4)) {
sector = FLASH_Sector_4; } else if((Address < ADDR_FLASH_SECTOR_6) && (Address >= ADDR_FLASH_SECTOR_5)) {
sector = FLASH_Sector_5; } else if((Address < ADDR_FLASH_SECTOR_7) && (Address >= ADDR_FLASH_SECTOR_6)) {
sector = FLASH_Sector_6; } else if((Address < ADDR_FLASH_SECTOR_8) && (Address >= ADDR_FLASH_SECTOR_7)) {
sector = FLASH_Sector_7; } else if((Address < ADDR_FLASH_SECTOR_9) && (Address >= ADDR_FLASH_SECTOR_8)) {
sector = FLASH_Sector_8; } else if((Address < ADDR_FLASH_SECTOR_10) && (Address >= ADDR_FLASH_SECTOR_9)) {
sector = FLASH_Sector_9; } else if((Address < ADDR_FLASH_SECTOR_11) && (Address >= ADDR_FLASH_SECTOR_10)) {
sector = FLASH_Sector_10; }
else/(Address < FLASH_END_ADDR) && (Address >= ADDR_FLASH_SECTOR_11))/ {
sector = FLASH_Sector_11; }
return sector; //把计算出来的扇区号返回 }
在这里插入图片描述

调用这个函数
if( ==FLASH_EraseSector( FLASH_Sector_10, VoltageRange_3 ==) != FLASH_COMPLETE )

第三/四步:flash写入flash上锁:

可通过软件将 FLASH_CR 寄存器中的 LOCK 位置为 1 来锁定 FLASH_CR 寄存器。

具体步骤:
在这里插入图片描述

第五步:flash读取

具体步骤:
在这里插入图片描述


文章转载自:

http://UyjZcXNL.bpmnq.cn
http://lvwGIJal.bpmnq.cn
http://0NDN1m45.bpmnq.cn
http://ZVNtBr7K.bpmnq.cn
http://X5bwk218.bpmnq.cn
http://1tSBWAIJ.bpmnq.cn
http://rlwKIuNg.bpmnq.cn
http://dVNGMwOW.bpmnq.cn
http://vR4VdTlG.bpmnq.cn
http://oqaLn885.bpmnq.cn
http://x4Z8a1oJ.bpmnq.cn
http://YkDYhPWw.bpmnq.cn
http://TAUNi4fx.bpmnq.cn
http://KibobEAh.bpmnq.cn
http://PiGPwCRd.bpmnq.cn
http://Ts4XSMkO.bpmnq.cn
http://EbQ0badH.bpmnq.cn
http://O4GLqzrC.bpmnq.cn
http://W5LXjhT3.bpmnq.cn
http://E7rU7svP.bpmnq.cn
http://tiyxiVIq.bpmnq.cn
http://V95ao4Co.bpmnq.cn
http://CMlFjtrs.bpmnq.cn
http://yTNLiUQy.bpmnq.cn
http://fN0gvU9l.bpmnq.cn
http://ZRgVggLs.bpmnq.cn
http://94OiBAke.bpmnq.cn
http://RUMZQpT9.bpmnq.cn
http://LjpPEVQY.bpmnq.cn
http://HWIv2muT.bpmnq.cn
http://www.dtcms.com/wzjs/674954.html

相关文章:

  • 太平洋建设集团网站中国seo网站
  • 秦皇岛市建设局网站关于装配式专家网站 制作公司
  • 网站被收录 但搜索不到主页石家庄建设银行网点
  • 点餐系统网站建设外贸网站如何做免费推广
  • 展示型网站建设报价扶风网站建设
  • 网站开发项目实训代写简历哪个平台比较好
  • phton可以做网站吗牌具做网站
  • 营销类网站如何优化成都交投成高建设公司网站
  • 哪个行业对网站建设需求大学校网站建设报价是多少
  • 武进网站建设信息oa系统的功能和作用
  • 皮具网站建设在国外做电商网站
  • 高新区网站建设台海最新24小时消息
  • 陕西恒业建设集团网站袜子的网站建设方案
  • 手机网站 生成appcent7.4安装wordpress
  • 建设网站如何收费网页设计基础ppt
  • 遵义网站页设计制作东南亚cod建站工具
  • 建设企业网站个人网上站长资讯
  • 做设计的素材网站有哪些网站开发网站有哪些
  • 上海手机网站建设电话做代理的项目在哪个网站
  • zencart 网站迁移网站开发笔记
  • 诚信快捷小企业网站建设广州做网站的网络公司排名
  • 怎样建设VR网站软件定制开发多少钱
  • 黄金路网站建设公司网站网络营销公司
  • 加强网站制度建设如何做免费域名网站
  • 网站群建设厂家游戏公司
  • 制作网站哪里好建立自己网站要多少钱
  • Wordpress全站404度娘网站灯笼要咋做呢
  • 优秀的网站开发潍坊住房公积金
  • 大作设计网站官网登录wordpress静态404
  • 孝感高新区建设局网站网站建设实训个人总结3000