-
-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathsystem.hpp
154 lines (129 loc) · 4.17 KB
/
system.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
#pragma once
//=====================================================================//
/*! @file
@brief R8C/M110AN, R8C/M120AN グループ・システム・レジスター定義
@author 平松邦仁 ([email protected])
@copyright Copyright (C) 2014, 2017 Kunihito Hiramatsu @n
Released under the MIT license @n
https://github.com/hirakuni45/R8C/blob/master/LICENSE
*/
//=====================================================================//
#include "common/io_utils.hpp"
namespace device {
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
/*!
@brief プロセッサモードレジスタ0 PM0
*/
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
struct pm0_t : public rw8_t<0x0010> {
typedef rw8_t<0x0010> io_;
using io_::operator =;
using io_::operator ();
using io_::operator |=;
using io_::operator &=;
bit_rw_t<io_, bitpos::B3> SRST;
};
static pm0_t PM0;
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
/*!
@brief モジュールスタンバイ制御レジスタ MSTCR
*/
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
struct mstcr_t : public rw8_t<0x0012> {
typedef rw8_t<0x0012> io_;
using io_::operator =;
using io_::operator ();
using io_::operator |=;
using io_::operator &=;
bit_rw_t<io_, bitpos::B0> MSTTRJ;
bit_rw_t<io_, bitpos::B1> MSTTRB;
bit_rw_t<io_, bitpos::B4> MSTAD;
bit_rw_t<io_, bitpos::B5> MSTTRC;
bit_rw_t<io_, bitpos::B6> MSTUART;
};
static mstcr_t MSTCR;
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
/*!
@brief プロテクトレジスタ PRCR
*/
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
struct prcr_t : public rw8_t<0x0013> {
typedef rw8_t<0x0013> io_;
using io_::operator =;
using io_::operator ();
using io_::operator |=;
using io_::operator &=;
bit_rw_t<io_, bitpos::B0> PRC0;
bit_rw_t<io_, bitpos::B1> PRC1;
bit_rw_t<io_, bitpos::B3> PRC3;
bit_rw_t<io_, bitpos::B4> PRC4;
};
static prcr_t PRCR;
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
/*!
@brief ハードウェアリセットプロテクトレジスタ HRPR
*/
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
struct hrpr_t : public rw8_t<0x0016> {
typedef rw8_t<0x0016> io_;
using io_::operator =;
using io_::operator ();
using io_::operator |=;
using io_::operator &=;
bit_rw_t<io_, bitpos::B0> RAMCRE;
};
static hrpr_t HRPR;
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
/*!
@brief リセット要因判別レジスタ RSTFR
*/
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
struct rstfr_t : public rw8_t<0x005f> {
typedef rw8_t<0x005f> io_;
using io_::operator =;
using io_::operator ();
using io_::operator |=;
using io_::operator &=;
bit_rw_t<io_, bitpos::B0> CWR;
typedef ro8_t<0x005f> ro_;
bit_ro_t<ro_, bitpos::B1> HWR;
bit_ro_t<ro_, bitpos::B2> SWR;
bit_ro_t<ro_, bitpos::B3> WDR;
};
static rstfr_t RSTFR;
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
/*!
@brief オプション機能選択レジスタ2 OFS2
*/
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
struct ofs2_t : public rw8_t<0xFFDB> {
typedef rw8_t<0xFFDB> io_;
using io_::operator =;
using io_::operator ();
using io_::operator |=;
using io_::operator &=;
bits_rw_t<io_, bitpos::B0, 2> WDTUFS;
bits_rw_t<io_, bitpos::B2, 2> WDTRCS;
bit_rw_t <io_, bitpos::B5> MSTINI;
};
static ofs2_t OFS2;
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
/*!
@brief オプション機能選択レジスタ OFS
*/
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
struct ofs_t : public rw8_t<0xFFFF> {
typedef rw8_t<0xFFFF> io_;
using io_::operator =;
using io_::operator ();
using io_::operator |=;
using io_::operator &=;
bit_rw_t <io_, bitpos::B0> WDTON;
bit_rw_t <io_, bitpos::B2> ROMCR;
bit_rw_t <io_, bitpos::B3> ROMCP1;
bits_rw_t<io_, bitpos::B4, 2> VDSEL;
bit_rw_t <io_, bitpos::B6> LVDAS;
bit_rw_t <io_, bitpos::B7> CSPRONI;
};
static ofs_t OFS;
}