13、RH850 F1 选项字节和看门狗
前言:
选项字OPTION配置是RH850的一项重点,用户手册对选项字的配置介绍很少,这篇文章将主要针对选项字和看门狗的配置进行讲解。
一、选项字特性
闪存的选项字节是一个扩展区域,并保存用户为各种目的指定的数据。由选项字节指定的外围模块等的初始设置在从复位状态释放时生效。
二、选项字设置
在将程序写入闪存之前,请确保设置对应于下面列出的可选函数的选项字节区域。
三、选项字寄存器
3.1 OPBT0 — Option Byte 0
Bit position |
Bit Name |
Function |
30 - 29 |
OPJTAG |
这些位控制端口组JP0的功能。 00: JP0用于通用/替代功能端口 01: JP0用于LPD 4引脚模式 10: JP0用于LPD 1引脚模式 11: JP0用于Nexus I/F |
26 |
WDT1_3 |
指定WDTA1的激活码方法。 0:固定激活码 1:变量激活码 |
24 |
WDT1_1 |
指定WDTA1的启动方式。 0:软件触发启动 1:默认启动 |
23 |
WDT1_0 |
启用或禁用WDTA1。 0:关闭WDTA1 1:启用WDTA1 |
22 |
WDT0_3 |
指定WDTA0的激活码方法。 0:固定激活码 1:变量激活码 |
20 |
WDT0_1 |
指定WDTA0的启动方式。 0:软件触发启动 1:默认启动 |
19 |
WDT0_0 |
启用或禁用WDTA0。 0:关闭WDTA0 1:使能WDTA0 |
18 - 16 |
WDT_2-0 |
控制WDTA0和WDTA1的溢出间隔时间 这些位指定WDTAnMD.WDTAnOVF[2:0]的重置值。 |
10 |
CANFDCRC |
CAN FD CRC协议 0:原协议 1:新协议 |
9 |
RESET OUTEN |
复位控制 0:禁止复位功能 1:允许复位功能 |
5 |
CVM_H D_EN |
高电压监控使能 0:关闭高电压检测 1:开启高电压检测 |
4 |
CVM_L D_EN |
低电压监控使能 0:关闭低电压检测 1:开启低电压检测 |
3.2 OPBT1 — Option Byte 1
Bit position |
Bit Name |
Function |
31 - 10 |
无 |
写时,写“1”。 |
9 |
无 |
写时,写“0”。 |
8 - 0 |
无 |
写时,写“1”。 |
四、功能概述
(1)编程或擦除中断的读取区域
当对闪存区域的编程或擦除被中断时,存储在该区域中的数据将变为未定义。为了避免读取未定义的数据,这可能会导致故障,请注意不要从编程或擦除中断的区域获取指令或读取数据。
(2)读取已擦除但尚未编程的代码闪存
请注意,从已擦除但尚未再次编程的代码闪存中读取(即处于非编程状态)可能会导致检测到ECC错误并产生相应的异常。当需要确认某个区域处于非编程状态时,使用空白检查。
(3)禁止增写
向一个给定区域写入两次或两次以上是不可能的。当对闪存区域完成写入后覆盖该区域中的数据时,请先擦除该区域。
(4)在编程和擦除过程中重置
在编程和擦除过程中发生外部复位的情况下,在断言复位信号后,一旦工作电压在电气特性规定的范围内,至少等待复位输入低电平宽度的最小值,然后将设备从复位状态释放。
(5)在编程和擦除过程中为中断和其他异常分配向量
在编程或擦除过程中产生中断或其他异常可能导致从代码闪存中获取向量。如果这不满足使用后台操作的条件,将vector获取的地址设置为不在代码闪存中的地址。
(6)编程异常终止和擦除
即使由于reset引脚的复位断言而导致编程/擦除异常结束,具有未定义数据的闪存的编程/擦除状态也不能被验证或检查。对于编程/擦除异常结束的区域,空白检查功能无法判断该区域是否擦除成功。再次擦除该区域,以确保相应的区域使用前完全擦除。
如果编程和擦除代码闪存没有正常完成,目标区域的锁定位可能被启用(锁定)。在这种情况下,请在锁定位处于禁用状态(该区域未锁定)时擦除该块以清除锁定位。
(7)编程和擦除过程中禁止的项目
请勿在编程和擦除过程中执行以下操作。
•将电源的工作电压设置在允许的范围之外。
•修改外部时钟频率。
(8)清除配置前擦除所有闪存
在清除配置之前,请擦除代码flash的用户区域和数据flash的所有数据区域。
(9)使用HS IntOSC时串行编程的限制
不能使用1线/2线UART模式。
无法使用E1仿真器。
五、RH850_F1K选项字配置
六、WDTA - 窗口看门狗
本节包含窗口看门狗定时器(WDTA)的一般描述。
本节的第一部分描述了RH850/F1K的所有特定属性,例如单元数、寄存器基址等。本节的其余部分将描述WDTA的函数和寄存器。
6.1 单位和通道数量
这个微控制器有以下数量的WDTA单元。
6.2 寄存器基地址
基地址名称 |
基地址 |
WDTA0_base |
FFED 0000 |
WDTA1_base |
FFED 1000 |
6.3 时钟源选择
名称 |
时钟源名称 |
时钟源选择名称 |
介绍 |
WDTA0 |
WDTATCKI |
CKSCLK_AWDTA |
定时器计数时钟 |
注册访问时钟 |
CPUCLK2 |
总线时钟 |
|
WDTA1 |
WDTATCKI |
LS IntOSC |
定时器计数时钟 |
注册访问时钟 |
CPUCLK2 |
总线时钟 |
6.4 中断请求
下表列出了WDTAn中断请求。
6.5 复位源
下表列出了WDTAn复位源。WDTAn由这些重置源初始化。
名称 |
复位源 |
WDTA0 |
复位源AWORES |
WDTA1 |
所有复位源ISORES |
6.6 看门狗框图
6.7 寄存器
6.71 WDTAnWDTE -- 看门狗使能寄存器
Bit position |
Bit Name |
Function |
7 - 0 |
WDTAnRUN |
编写固定激活代码(ACH)生成WDTA触发器并启动/ 重新启动WDTAn计数器。写入ACH以外的值会产生错误。 WDTAn一旦启动就不能停止。 |
6.72 WDTAnEVAC -- 看门狗使能VAC寄存器
Bit position |
Bit Name |
Function |
7 - 0 |
WDTAnEVAC |
编写变量激活代码生成WDTA触发器并启动/重新启动WDTA计数器。编写不正确的激活代码将生成错误。WDTAn一旦启动就不能停止。 |
6.73 WDTAnREF -- 参考值寄存器
Bit position |
Bit Name |
Function |
7 - 0 |
WDTAnREF |
VAC功能的激活码计算参考值。 |
6.74 WDTAnMD -- 看门狗模式寄存器
Bit position |
Bit Name |
Function |
|||||
6 - 4 |
WDTAnOVF |
选择溢出间隔时间 |
|||||
WDTAnOVF2 |
WDTAnOVF1 |
WDTAnOVF0 |
溢出间隔时间 |
||||
0 |
0 |
0 |
2^9/WDTATCKI |
||||
0 |
0 |
1 |
2^10/WDTATCKI |
||||
0 |
1 |
0 |
2^11/WDTATCKI |
||||
0 |
1 |
1 |
2^12/WDTATCKI |
||||
1 |
0 |
0 |
2^13/WDTATCKI |
||||
1 |
0 |
1 |
2^14/WDTATCKI |
||||
1 |
1 |
0 |
2^15/WDTATCKI |
||||
1 |
1 |
1 |
2^16/WDTATCKI |
||||
3 |
WDTAnWIE |
启用/禁用75%中断请求INTWDTAn。 0:关闭INTWDTAn功能。 1:使能INTWDTAn。 |
|||||
2 |
WDTAnERM |
指定错误模式。 0: NMI请求模式 1:复位模式 |
|||||
1 - 0 |
WDTAnWS |
选择窗口打开周期。 |
|||||
WDTAnWS1 |
WDTAnWS0 |
窗口打开周期 |
|||||
0 |
0 |
25% |
|||||
0 |
1 |
50% |
|||||
1 |
0 |
75% |
|||||
1 |
1 |
100% |
七、看门狗例程
/**********************************************************************
* Description: Initializes and starts the Watch Dog for reset generation
* Parameters : None
* Returns : None
*********************************************************************/
void Init_WatchDog(void)
{
uint32_t reg32_value;
// Set interrupt flags
INTC2MKWDTA0 = 1U;
INTC2RFWDTA0 = 0U;
INTC2TBWDTA0 = 1U;
do
{
reg32_value = 0x00000001UL;
WPROTRPROTCMD0 = 0x000000A5UL; // Protection release the CKSC_AWDTAD_CTL register.
CLKCTLCKSC_AWDTAD_CTL = reg32_value;
CLKCTLCKSC_AWDTAD_CTL = ~reg32_value;
CLKCTLCKSC_AWDTAD_CTL = reg32_value;
} while ( PORTPPROTS0 != 0x00000000UL );
while ( CLKCTLCKSC_AWDTAD_ACT != reg32_value )
{
// Waiting for CKSC_AWDTAD_CTL to set.
}
WDTA0MD = 0x0FU;
INTC2MKWDTA0 = 0U; // INTWDTA0 (75% interrupt) enable
WDTA0WDTE = 0xAC;
Feed_Dog(); // feed both dogs to initialize
}
/**********************************************************************
* Description: Watchdog timer interval (75% of overflow time)
* Parameters : None
* Returns : None
*********************************************************************/
#pragma vector = INTWDTA0_vector
__interrupt void vWatchDogTimerINT(void)
{
/* make sure feed dog in 75% of overflow time,
so watchdog_count can identify the count of reset occur by watchdog overflow time */
static int watchdog_count;
INTC2RFWDTA0 = 0U; /* clear INTWDTI interrupt flag */
watchdog_count++;
}
13、RH850 F1 选项字节和看门狗相关推荐
- STM32系列 STM32F4xx 独立看门狗(IWDG)
2019独角兽企业重金招聘Python工程师标准>>> 0 前言 由于单片机的工作常常会受到来自外界电磁场的干扰,造成各种寄存器和内存数据混乱,会导致程序指针错误,不在程序区 ...
- Arduino休眠模式和看门狗以及中断详解
休眠模式.看门狗.中断 一.休眠模式 睡眠中断的触发 二.看门狗 实例一 实例二 三.外部中断 1.为什么需要中断? 2.不关心功耗还需要中断吗? 3.各种板子的中断 4.中断函数.中断触发模式与设置 ...
- STM32F0 、F1 在软件程序中写读保护选项字节(Option Bytes)
转载自:https://blog.csdn.net/Flyaswing/article/details/90578645 单片机:STM32F030 库:HAL库 目标:在程序软件中修改读保护选项字节 ...
- 手把手教程13: F460 WDG(看门狗)
目录 1. 看门狗计数器 1.1 简介 1.2 功能说明 1.2.1 启动 2. 启用WDG 2.1 配置参数 2.2 配置中断 2.3 初始化.装载.中断处理 配套开发板请移步博主小店: ...
- 看门狗寄存器c语言代码_「正点原子NANO STM32F103开发板资料连载」第十一章 看门狗实验...
1)实验平台:[正点原子] NANO STM32F103 开发板 2)摘自<正点原子STM32 F1 开发指南(NANO 板-HAL 库版)>关注官方微信号公众号,获取更多资料:正点原子 ...
- 12、RH850 F1 FLASH存储器介绍
前言: FLASH存储器的英文名称是"Flash Memory",一般简称为"Flash",它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM ...
- MSP430 5xx/6xx Watchdog看门狗编程实例
看门狗定时器是一个32位定时器,可以用作看门狗或间隔定时器. 看门狗定时器模块的主要功能是在出现软件问题后执行受控的系统重启.如果超过选定的时间间隔,将生成系统复位.如果应用程序不需要看门狗功能,则模 ...
- WWDG 窗口看门狗 知识详解
目录 1. WWDG简介 2. WWDG功能框图解析 3. 启动方式 (1)软件启动 (2)硬件启动 4. WWDG超时图解及超时时间计算 1. WWDG简介 独立看门狗(Independent Wa ...
- cubeIDE开发, stm32独立看门狗IWDG的CubeMX配置及HAL库底层实现分析
一.STM32 的IWDG简介 2.1 看门狗原理 看门狗本质上就是一种计数器,和我们现实生活中一炷香现象.沙漏现象等是同理的,计数器一般有两种做法,一种是递增,超过固定阀值报警:一种是递减,通常值降 ...
最新文章
- Power Network [POJ - 1459]
- 常州IBMV3700数据恢复成功
- Centos 上部署jeecms注意1
- 硅谷“封城”前夜的L4级别无人车试乘实况,及其背后创新技术的深度剖析
- 网络工程制图论文计算机,学习系统与工程制图论文
- python数据的格式输出_python数据类型,格式话输出
- MIT JOS学习笔记01:环境配置、Boot Loader(2016.10.22)
- 使用BeetleX.NetBenchmark压测TCP,HTTP和Websocket服务
- win7连接sftp_SFTP远程连接服务器上传下载文件-vs2013项目实例
- mysql如何实现管理权限分离_基于SpringCloud+vue(ElementUI)+mySQL前后端分离设计之--搭建权限管理系统...
- Css+Div设置电脑端显示,手机端不显示代码
- spring加载xml配置文件
- sphinxPHP api全文检索的例子
- 用JQuery实现简单计时答题游戏
- 查看电脑ip(cmd) 利用php获取ip地址
- 第二章、小实例,画字,画线,矩形,画图,动画(iOS学习笔记,从零开始。)
- 【史上最强代码编辑器VS Code】之VS Code 在线听网易云音乐
- Python爬取王者荣耀英雄的皮肤数据并下载皮肤图片项目
- JVM调优:卡表(CardTable)简介
- 使用scrapy框架从爬取安居客数据到分析
热门文章
- Docker容器之Docker Toolbox下配置国内镜像源-阿里云加速器(Windows)
- 全国计算机二级十七套Excel,计算机二级MSOffice十七套题.docx
- 机房服务器维保 招标文件,机房维护服务项目招标文件.docx
- Ackermann函数(阿克曼函数)的递归、非递归(手动栈模拟)
- 基于springboot的实习管理系统设计与实现-计算机毕业设计源码
- (最新)cpu天梯图 (CPU)- Processor Benchmarks
- 华为AR路由器端口配置trunk_瑞哥呕心之作——华为HCIA(HCNA)笔记,还不快快收藏!...
- 信息收集之——子域信息
- Axure RP9 3675(软件+汉化包+Licenses)
- 计量经济学计算机答案14章,伍德里奇---计量经济学第8章部分计算机习题详解(STATA)...