RH850P1X芯片学习笔记-Flash Memory

文章目录

    • Features
      • Clock Supply
    • Block Diagram
    • Flash Size
    • Memory Configuration
    • Registers
      • Register Base Address
      • List of Registers
      • Register Reset Condition
    • 与Flash Memory相关的操作模式
    • Functional Overview
    • Option Bytes
      • OPBT0 — Option Byte 0
      • OPBT1 — Option Byte 1
      • OPBT2 — Option Byte 2
      • OPBT13 — Option Byte 13
      • OPBT14 — Option Byte 14
      • OPBT15 — Option Byte 15

Features

•代码flash容量:高达10兆字节的用户区域

编程方法:

  • 通过串行接口与专用闪存编程器通信编程(串行编程)。
  • 用户程序编程Flash(自编程)。

支持安全功能,以防止非法篡改或读取闪存中的数据。

支持保护功能,防止flash错误覆盖。

在Code Flash上支持OTP(一次性编程)

支持检测和纠正闪存中的错误。

支持BGO(后台操作)功能

  • Code flash可以读取,而data flash正在编程。
  • 当一个bank的flash被擦除/编程/读取时,另一个bank的flash可以被擦除/编程/读取。
    Option Bytes寄存器值(设备的某些设置)可以在flash的扩展区域中配置
    Code Flash上的最小可写单元是256bytes,Data Flash上的最小可写单元是4bytes
    最小的可擦除单位是块。在Code Flash上8 kb或32 kb,在数据Flash上64bytes

Clock Supply

下表列出了Flash控制逻辑(FACI)的时钟供应。

Block Diagram

Flash Size

Memory Configuration

RH850/P1x-C代码闪存中的用户区分为8kbytes或32kbytes块,可单独擦除


RH850/P1x-C数据闪存中的数据区被划分为64字节的块,可以单独擦除。

Registers

Register Base Address

List of Registers

Register Reset Condition

与Flash Memory相关的操作模式


可编程和可擦除的flash区域以及复位后的启动程序取决于所选模式。模式之间的差异如表32.6所示

Functional Overview

RH850/P1x-C的片上闪存可以在安装到目标系统之前和之后进行编程,其编程功能采用专用的闪存编程器(串行编程)。

此外,还支持禁止在片上闪存中编写用户程序的安全功能,以防止程序被外部人员伪造

使用用户程序的编程功能(自编程)是适用于预期在目标系统的生产或装运之后修改程序的应用的方法。还支持对闪存区域进行安全编程的保护功能。

此外,通过在自编程期间利用对中断处理的支持,可以在各种条件下进行编程,例如与外部通信并行。

表32.7概述了编程方法和相应的操作模式。

Option Bytes

flash memory具有扩展区域(可选字节)来存储用户为各种目的指定的数据。设置的更改,例如使用选项字节的外设功能的初始设置,在从复位状态释放后生效。

OPBT0 — Option Byte 0


OPWDRUN0:该位启用或禁用WDTA0的自动启动。

0:禁用WDTA0自动启动。

1:启用WDTA0自动启动

OPWDOFV2 to OPWDOFV0:这些位选择WDTA0、WDTA1的溢出时间


OPWD0MD:该位选择WDTA0、WDTA1的模式

0:慢速模式(WDTACLKI = 1/32 of CLK_IOSC)

1:快速模式(WDTACLKI = CLK_IOSC的1/1)

OPWDVAC:选择WDTA0、WDTA1变量启动代码)

该位指定触发寄存器,用于生成计数器重启触发器以避免计数器溢出。

0: WDTAnWDTE(固定)

1: WDTAnEVAC(变量)

注意:有关WDTA启动选项的详细信息,请参见第23节,窗口看门狗定时器A (WDTA)。

OPWDRUN1:该位启用或禁用WDTA1的自动启动(P1M-C除外)。

[p1h-c (4mb), p1h-c (8mb), p1h-ce]

0:关闭WDTA1自动启动。

1:启用WDTA1自动启动。

(P1M-C)

1:写值必须为1。

ETHDISABLE:以太网控制

0:表示以太网模块未启用。

1:以太网模块使能。

OPAUDR:选择AUD RAM监视器启用/禁用(仅限P1H-CE)

(P1H-CE)

0:禁用AUDR

1:启用AUDR

[P1M-C, P1H-C]

1:写值必须为1。

OPBT1 — Option Byte 1

OPBT1与时钟频率相关,如下图所示


PLL0FREQ:CLKD0DIV和CLKD1DIV的分频器配置以及SWDT时钟分频器。

位必须根据锁相环频率设置(由PLL0MDIVPLL0NDIV和PLL0PDIV设置)和所需的最大值。CPU频率(CLK_CPU)。

[P1M-C, P1H-CE]

00: PLL0 = 480MHz, CLK_CPU = 120MHz

01: PLL0 = 320MHz, CLK_CPU = 160MHz

10: PLL0 = 480MHz, CLK_CPU = 240MHz

11:禁止设置

(P1H-C)

00:禁止设置

01: PLL0 = 320MHz, CLK_CPU = 160MHz

10: PLL0 = 480MHz, CLK_CPU = 240MHz

11:禁止设置

一般设置为10b,即PLL0设置为480MHz,CLK_CPU设置为240MHz

EXCLKIN:选择外部时钟代替MOSC

0:选择外部时钟输入

1:选择晶振

一般设置为1

PLL0MDIV:PLL0 m分压器设置

001: 1/2 (mr = 2)

010: 1/3 (mr = 3)

other:禁止设置

一般设置为001

PLL0NDIV:PLL0 n分频器设置

0001_1111: 1/32 (nr = 32)

0010_0111: 1/40 (nr = 40)

0010_1111: 1/48 (nr = 48)

0011_1011: 1/60 (nr = 60)

other:禁止设置

一般设置为0011_1011

PLL0PDIV:PLL0 P分频器设置

000: 1/1 (pr = 1)

001: 1/2 (pr = 2)

other:禁止设置
一般设置为0

OPBT2 — Option Byte 2


OPJTAG1,OPJTAG0:选择调试接口

OPBT13 — Option Byte 13


CVMHDETEN:CVM过压检测控制,1使能

CVMLDETEN:CVM欠压检测控制,1使能

OPBT14 — Option Byte 14


EMF:仿真模式选择,只有P1H-CE可以用,P1M-C,P1H-C都需要写1

PE2PB:PE2校验位是否启用,1启用

RD_SEL:阻尼电阻配置

PE2DIS:是否使能PE2,0使能


STARTUPPE:选择Start up PE使能控制

OPBT15 — Option Byte 15


CAP_SEL:主OSC电容配置

AMP_SEL:主OSC AMP配置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/622181.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【CSS】保持元素宽高比

保持元素的宽高比,在视频或图片展示类页面是一个重要功能。 本文介绍其常规的实现方法。 实现效果 当浏览器视口发生变化时,元素的尺寸随之变化,且宽高比不变。 代码实现 我们用最简单的元素结构来演示,实现宽高比为4&#xf…

鸿蒙Harmony是如何影响Android工程师的呢?

其实鸿蒙在2019就已经出来了,那时候还是套壳Android的。从2023年9月的发布会上,华为宣布鸿蒙原生应用全面启动、HarmonyOS NEXT亮相以后,围绕着纯血鸿蒙展开的鸿蒙应用生态发展迅猛,目前已经有包括社交、金融、影音、游戏、资讯、…

【Java万花筒】时钟精灵:Java日期库全景剖析

时间漫步者:深入Java时间库实战 前言 在现代软件开发中,处理日期与时间是一个常见而又具有挑战性的任务。Java为我们提供了强大的日期与时间处理库,这些库不仅使日期与时间的操作更加方便,而且满足了各种复杂的需求。本文将深入…

docker-compose和docker compose的区别

在docker实际使用中,经常会搭配Compose,用来定义和运行多个 Docker 容器。使用时会发现,有时候的指令是docker-compose,有时候是docker compose,下面给出解释。 docker官方文档:https://docs.docker.com/c…

ArrayBlockingQueue的使用

异步日志打印模型概述 在高并发、高流量并且响应时间要求比较小的系统中同步打印日志已经满足不了需求了,这是因为打印日志本身是需要写磁盘的,写磁盘的操作会暂时阻塞调用打印日志的业务线程,这会造成调用线程的rt增加。 如图所示为同步日…

WorkPlus领先企业即时通信软件,提升团队沟通效率的利器

在企业工作中,高效沟通是推动团队协作和工作效率的关键。而企业即时通信软件成为了实现高效沟通的利器。作为一款领先的企业即时通信软件,WorkPlus以其卓越的性能和独特的功能,提升团队沟通效率,助力企业实现高效协作。 为什么选择…

豆包ai介绍

豆包是字节跳动基于云雀模型开发的AI工具,具有强大的语言处理能力和广泛的应用场景,无论是在学习、工作、生活中,都能派上用场。 豆包可以帮助打工人和创作者提升效率,完成各种工作任务,又能扮演各类AI角色进行高情商…

win10安装electron卡住

切换镜像源,需要设置ELECTRON_MIRROR才行,win10操作如下: set ELECTRON_MIRRORhttp://npm.taobao.org/mirrors/electron/ npm install --save-dev electron

C++右值引用,右值引用与const引用的区别

1.右值与左值 左值:可以取地址的、有名字的变量,有持久性;右值:一般是不可寻址的常量,或在表达式求值过程中创建的无名临时对象,短暂性的。 2.右值引用 C11新增了另一种引用——右值引用。这种引用可指向…

[学习笔记]刘知远团队大模型技术与交叉应用L1-NLPBig Model Basics

本节主要介绍NLP和大模型的基础知识。提及了词表示如何从one-hot发展到Word Embedding。语言模型如何从N-gram发展成预训练语言模型PLMs。然后介绍了大模型在NLP任务上的表现,以及它遵循的基本范式。最后介绍了本课程需要用到的编程环境和GPU服务器。 一篇NLP方向的…

从零开始做题:逆向wdb_2018_2nd_easyfmt

1.题目信息 2.解题分析 格式化字符串漏洞 如何确定偏移 Do you know repeater? 输入AAAA.%p.%p.%p.%p.%p.%p.%p.%p.%p.%p.%p.%p. 输出AAAA.0xffffd658.0x64.0xf7ffdc08.0xf7ffcd00.0xffffd77c.0x41414141.0x2e70252e.0x252e7025.0x70252e70.0x2e70252e.0x252e7025.0x70252…

City Terrace Pack

“城市与露台资源包” 的主要特点:• 属于系列的一部分。• 极为逼真和现代化的城市。• 高度优化的低多边形和逼真资源。• 可用于 Oculus、GearVR、Vive、Daydream。• 可用于低端和高端移动设备。• 灵感来自于现代建筑和设计。• 36 种不同的摩天大楼和建筑物。• 其中每个…

【Windows 10 / 11】彻底卸载Microsoft Edge

彻底卸载Microsoft Edge的方法 第一种 打开C盘,定位到Edge安装目录,一般是“C:\Program Files (x86)\Microsoft\Edge\Application\”进入对应当前Edge版本号的文件夹,并进入“Installer”文件夹内找到“setup.exe”按下“shift”键并点击鼠标…

【ARM 嵌入式 编译系列 10.4 -- elf 文件各个段信息查看】

文章目录 elf 文件各个段信息查看 elf 文件各个段信息查看 在进行代码编译完成的时候,我们会经常见到下面信息, 这个是怎么实现的呢? text data bss dec hex filename11818 2120 5736 19674 4cda ra4m2.elf使用 arm-none-eab…

第九部分 使用函数 (二)

目录 一、字符串处理函数 1、subst 2、patsubst 3、strip 4、findstring 5、filter 6、filter-out 7、sort 8、word 9、wordlist 10、words 11、firstword 12、字符串函数实例 一、字符串处理函数 1、subst $(subst <from>,<to>,<text>) 名称…

【2023 我的编程之旅】

前言 转眼 2024 年都过去 14 天了。回顾 2023 有太多技术上的思考以及人生的感悟&#xff0c;接下来趁着 CSDN 官方活动&#xff0c;顺便记录下来。 技术的价值 与现在的年轻人一心只想搞钱不同&#xff0c;刚毕业的时候&#xff0c;我的梦想是进入一家有实力的科技企业&…

如何创建并格式化硬盘分区?

一般将新硬盘连接到计算机后&#xff0c;需先创建并格式化硬盘分区。否则在磁盘管理中会显示为“未分配空间”&#xff0c;并在文件资源管理器中不可见。那我们如何在硬盘上创建新分区&#xff0c;并对新分区进行格式化&#xff1f; 方法1. 通过命令提示符 首先&#xff0c;我…

两周掌握Vue3(三):全局组件、局部组件、Props

文章目录 一、全局组件1.创建全局组件2.在main.js中注册全局组件3.使用全局组件 二、局部组件1.创建局部组件2.在另一个组件中注册、使用局部组件 三、Props1.定义一个子组件2.定义一个父组件3.效果 代码仓库&#xff1a;跳转 本博客对应分支&#xff1a;03 一、全局组件 Vue…

四、C#高级特性(反射与序列化)

在C#中&#xff0c;反射&#xff08;Reflection&#xff09;和序列化&#xff08;Serialization&#xff09;是两个重要的高级特性&#xff0c;它们在程序设计和开发中有着广泛的应用。 反射&#xff08;Reflection&#xff09; 反射是.NET框架的一个重要特性&#xff0c;它允…

c语言之输出函数用法 putchar

putchar函数 putchar函数是c语言输出函数&#xff0c;但它只能输出单个字符&#xff0c;如果要输出字符串就不合适了。 应用举例 #include<stdio.h> int main() {putchar(a);putchar(4);putchar(\n);return 0: } 从上面代码可以看出&#xff0c;单字符必须用单引号’…