HWA
Bare metal programming with style
sab_1.h
Go to the documentation of this file.
1
2
/* This file is part of the HWA project.
3
* Copyright (c) 2021 Christophe Duparquet.
4
* All rights reserved. Read LICENSE.TXT for details.
5
*/
6
27
#define hw_class__sab
28
29
/* Differences with STM32F103:
30
* cr1: over8
31
* cr3: onebit
32
*/
33
34
/* Hardware registers // Reset value
35
*/
36
#define hw__sab_sr _r32, 0x00, 0x00000360, 0 // 0x00C0
37
#define hw__sab_dr _r32, 0x04, 0x000001FF, 0 // X
38
#define hw__sab_brr _r32, 0x08, 0x0000FFFF, 0 // 0
39
#define hw__sab_cr1 _r32, 0x0C, 0x0000BFFF, 0 // 0
40
#define hw__sab_cr2 _r32, 0x10, 0x00007F6F, 0 // 0
41
#define hw__sab_cr3 _r32, 0x14, 0x00000FFF, 0 // 0
42
#define hw__sab_gtpr _r32, 0x18, 0x0000FFFF, 0 // 0
43
44
/* Logical registers
45
*/
46
#define hw__sab_cts _cb1, sr, 1, 9
47
#define hw__sab_lbd _cb1, sr, 1, 8
48
#define hw__sab_txe _cb1, sr, 1, 7
49
#define hw__sab_tc _cb1, sr, 1, 6
50
#define hw__sab_rxne _cb1, sr, 1, 5
51
#define hw__sab_idle _cb1, sr, 1, 4
52
#define hw__sab_ore _cb1, sr, 1, 3
53
#define hw__sab_ne _cb1, sr, 1, 2
54
#define hw__sab_fe _cb1, sr, 1, 1
55
#define hw__sab_pe _cb1, sr, 1, 0
56
57
#define hw__sab_divmantissa _cb1, brr, 12, 4
58
#define hw__sab_divfraction _cb1, brr, 4, 0
59
60
#define hw__sab_over8 _cb1, cr1, 1, 15
61
#define hw__sab_ue _cb1, cr1, 1, 13
62
#define hw__sab_m _cb1, cr1, 1, 12
63
#define hw__sab_wake _cb1, cr1, 1, 11
64
#define hw__sab_pce _cb1, cr1, 1, 10
65
#define hw__sab_ps _cb1, cr1, 1, 9
66
#define hw__sab_pceps _cb1, cr1, 2, 9
/* convenient */
67
#define hw__sab_peie _cb1, cr1, 1, 8
68
#define hw__sab_txeie _cb1, cr1, 1, 7
69
#define hw__sab_tcie _cb1, cr1, 1, 6
70
#define hw__sab_rxneie _cb1, cr1, 1, 5
71
#define hw__sab_idleie _cb1, cr1, 1, 4
72
#define hw__sab_te _cb1, cr1, 1, 3
73
#define hw__sab_re _cb1, cr1, 1, 2
74
#define hw__sab_rwu _cb1, cr1, 1, 1
75
#define hw__sab_sbk _cb1, cr1, 1, 0
76
77
#define hw__sab_linen _cb1, cr2, 1, 14
78
#define hw__sab_stop _cb1, cr2, 2, 12
79
#define hw__sab_clken _cb1, cr2, 1, 11
80
#define hw__sab_cpol _cb1, cr2, 1, 10
81
#define hw__sab_cpha _cb1, cr2, 1, 9
82
#define hw__sab_lbcl _cb1, cr2, 1, 8
83
#define hw__sab_lbdie _cb1, cr2, 1, 6
84
#define hw__sab_lbdl _cb1, cr2, 1, 5
85
#define hw__sab_add _cb1, cr2, 4, 0
86
87
#define hw__sab_onebit _cb1, cr3, 1, 11
88
#define hw__sab_ctsie _cb1, cr3, 1, 10
89
#define hw__sab_ctse _cb1, cr3, 1, 9
90
#define hw__sab_rtse _cb1, cr3, 1, 8
91
#define hw__sab_dmat _cb1, cr3, 1, 7
92
#define hw__sab_dmar _cb1, cr3, 1, 6
93
#define hw__sab_scen _cb1, cr3, 1, 5
94
#define hw__sab_nack _cb1, cr3, 1, 4
95
#define hw__sab_hdsel _cb1, cr3, 1, 3
96
#define hw__sab_irlp _cb1, cr3, 1, 2
97
#define hw__sab_iren _cb1, cr3, 1, 1
98
#define hw__sab_eie _cb1, cr3, 1, 0
99
100
#define hw__sab_gt _cb1, gtpr, 8, 8
101
#define hw__sab_psc _cb1, gtpr, 8, 0
102
103
104
#if !defined __ASSEMBLER__
105
106
typedef
struct
{
107
hwa_r32_t brr ;
108
hwa_r32_t cr1 ;
109
hwa_r32_t cr2 ;
110
hwa_r32_t cr3 ;
111
hwa_r32_t gtpr ;
112
} hwa_sab_t ;
113
114
#endif
Generated for HWA by
1.8.6