annotate packages/hal/cortexm/arch/current/include/hal_io.h @ 3076:a532b7c12094

* include/hal_io.h: conditional VTOR setting. [ Bugzilla 1001117 ]
author sergeig
date Wed, 19 Jan 2011 18:59:15 +0000
parents 8fe6d83b6d48
children 9aec6a8ff9b9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2580
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
1 #ifndef CYGONCE_HAL_IO_H
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
2 #define CYGONCE_HAL_IO_H
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
3 /*==========================================================================
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
4 //
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
5 // hal_io.h
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
6 //
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
7 // Cortex-M architecture IO register definitions
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
8 //
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
9 //==========================================================================
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2671
diff changeset
10 // ####ECOSGPLCOPYRIGHTBEGIN####
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2671
diff changeset
11 // -------------------------------------------
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2671
diff changeset
12 // This file is part of eCos, the Embedded Configurable Operating System.
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2671
diff changeset
13 // Copyright (C) 2008 Free Software Foundation, Inc.
2580
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
14 //
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2671
diff changeset
15 // eCos is free software; you can redistribute it and/or modify it under
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2671
diff changeset
16 // the terms of the GNU General Public License as published by the Free
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2671
diff changeset
17 // Software Foundation; either version 2 or (at your option) any later
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2671
diff changeset
18 // version.
2580
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
19 //
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2671
diff changeset
20 // eCos is distributed in the hope that it will be useful, but WITHOUT
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2671
diff changeset
21 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2671
diff changeset
22 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2671
diff changeset
23 // for more details.
2580
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
24 //
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2671
diff changeset
25 // You should have received a copy of the GNU General Public License
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2671
diff changeset
26 // along with eCos; if not, write to the Free Software Foundation, Inc.,
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2671
diff changeset
27 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
2580
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
28 //
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2671
diff changeset
29 // As a special exception, if other files instantiate templates or use
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2671
diff changeset
30 // macros or inline functions from this file, or you compile this file
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2671
diff changeset
31 // and link it with other works to produce a work based on this file,
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2671
diff changeset
32 // this file does not by itself cause the resulting work to be covered by
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2671
diff changeset
33 // the GNU General Public License. However the source code for this file
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2671
diff changeset
34 // must still be made available in accordance with section (3) of the GNU
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2671
diff changeset
35 // General Public License v2.
2580
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
36 //
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2671
diff changeset
37 // This exception does not invalidate any other reasons why a work based
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2671
diff changeset
38 // on this file might be covered by the GNU General Public License.
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2671
diff changeset
39 // -------------------------------------------
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2671
diff changeset
40 // ####ECOSGPLCOPYRIGHTEND####
2580
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
41 //==========================================================================
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
42 //#####DESCRIPTIONBEGIN####
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
43 //
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
44 // Author(s): nickg
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
45 // Date: 2008-07-30
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
46 // Description: Define IO registers
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
47 //
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
48 //####DESCRIPTIONEND####
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
49 //
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
50 //========================================================================*/
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
51
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
52 #include <pkgconf/system.h>
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
53 #include <pkgconf/hal.h>
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
54
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
55 #include <cyg/infra/cyg_type.h>
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
56
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
57 #include <cyg/hal/var_io.h>
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
58
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
59 //==========================================================================
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
60 // Handy macros for defining register bits and fields:
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
61 //
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
62
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
63 #define BIT_(__n) (1<<(__n))
2671
12ae993c7267 Various Cortex-M patches.
nickg
parents: 2580
diff changeset
64 #define MASK_(__n,__s) (((1<<(__s))-1)<<(__n))
2580
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
65 #define VALUE_(__n,__v) ((__v)<<(__n))
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
66
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
67 //==========================================================================
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
68 // SysTick timer
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
69 //
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
70 // This is really part of the NVIC, but we break it out into a
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
71 // separate definition for convenience.
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
72
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
73 #define CYGARC_REG_SYSTICK_BASE 0xE000E010
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
74
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
75 #define CYGARC_REG_SYSTICK_CSR 0
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
76 #define CYGARC_REG_SYSTICK_RELOAD 4
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
77 #define CYGARC_REG_SYSTICK_VALUE 8
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
78 #define CYGARC_REG_SYSTICK_CAL 12
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
79
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
80 #define CYGARC_REG_SYSTICK_CSR_COUNTFLAG BIT_(16)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
81 #define CYGARC_REG_SYSTICK_CSR_CLK_EXT VALUE_(2,0)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
82 #define CYGARC_REG_SYSTICK_CSR_CLK_INT VALUE_(2,1)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
83 #define CYGARC_REG_SYSTICK_CSR_TICKINT BIT_(1)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
84 #define CYGARC_REG_SYSTICK_CSR_ENABLE BIT_(0)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
85
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
86 #define CYGARC_REG_SYSTICK_CAL_NOREF BIT_(31)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
87 #define CYGARC_REG_SYSTICK_CAL_SKEW BIT_(30)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
88 #define CYGARC_REG_SYSTICK_CAL_TENMS MASK_(0,23)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
89
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
90 //==========================================================================
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
91 // NVIC registers
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
92
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
93 #define CYGARC_REG_NVIC_BASE 0xE000E000
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
94
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
95 #if defined(CYGHWR_HAL_CORTEXM_M3)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
96 #define CYGARC_REG_NVIC_TYPE 0x004
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
97 #endif
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
98
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
99 #define CYGARC_REG_NVIC_SER0 0x100
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
100 #define CYGARC_REG_NVIC_CER0 0x180
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
101 #define CYGARC_REG_NVIC_SPR0 0x200
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
102 #define CYGARC_REG_NVIC_CPR0 0x280
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
103 #define CYGARC_REG_NVIC_ABR0 0x300
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
104 #define CYGARC_REG_NVIC_PR0 0x400
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
105
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
106 // Generate address of 32 bit control register for interrupt
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
107 #define CYGARC_REG_NVIC_SER(__intr) (CYGARC_REG_NVIC_SER0+4*((__intr)>>5))
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
108 #define CYGARC_REG_NVIC_CER(__intr) (CYGARC_REG_NVIC_CER0+4*((__intr)>>5))
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
109 #define CYGARC_REG_NVIC_SPR(__intr) (CYGARC_REG_NVIC_SPR0+4*((__intr)>>5))
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
110 #define CYGARC_REG_NVIC_CPR(__intr) (CYGARC_REG_NVIC_CPR0+4*((__intr)>>5))
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
111 #define CYGARC_REG_NVIC_ABR(__intr) (CYGARC_REG_NVIC_ABR0+4*((__intr)>>5))
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
112
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
113 // Generate bit in register for interrupt
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
114 #define CYGARC_REG_NVIC_IBIT(__intr) BIT_((__intr)&0x1F)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
115
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
116 // Generate byte address of interrupt's priority register.
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
117 #define CYGARC_REG_NVIC_PR(__intr) (CYGARC_REG_NVIC_PR0+(__intr))
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
118
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
119
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
120 #if defined(CYGHWR_HAL_CORTEXM_M3)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
121
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
122 #define CYGARC_REG_NVIC_CPUID 0xD00
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
123 #define CYGARC_REG_NVIC_ICSR 0xD04
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
124 #define CYGARC_REG_NVIC_VTOR 0xD08
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
125 #define CYGARC_REG_NVIC_AIRCR 0xD0C
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
126 #define CYGARC_REG_NVIC_SCR 0xD10
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
127 #define CYGARC_REG_NVIC_CCR 0xD14
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
128 #define CYGARC_REG_NVIC_SHPR0 0xD18
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
129 #define CYGARC_REG_NVIC_SHPR1 0xD1C
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
130 #define CYGARC_REG_NVIC_SHPR2 0xD20
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
131 #define CYGARC_REG_NVIC_SHCSR 0xD24
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
132 #define CYGARC_REG_NVIC_CFSR 0xD28
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
133 #define CYGARC_REG_NVIC_HFSR 0xD2C
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
134 #define CYGARC_REG_NVIC_DFSR 0xD30
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
135 #define CYGARC_REG_NVIC_MMAR 0xD34
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
136 #define CYGARC_REG_NVIC_BFAR 0xD38
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
137 #define CYGARC_REG_NVIC_AFSR 0xD3C
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
138 #define CYGARC_REG_NVIC_PFR0 0xD40
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
139 #define CYGARC_REG_NVIC_PFR1 0xD44
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
140 #define CYGARC_REG_NVIC_DFR0 0xD48
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
141 #define CYGARC_REG_NVIC_AFR0 0xD4C
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
142 #define CYGARC_REG_NVIC_MMFR0 0xD50
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
143 #define CYGARC_REG_NVIC_MMFR1 0xD54
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
144 #define CYGARC_REG_NVIC_MMFR2 0xD58
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
145 #define CYGARC_REG_NVIC_MMFR3 0xD5C
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
146 #define CYGARC_REG_NVIC_ISAR0 0xD60
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
147 #define CYGARC_REG_NVIC_ISAR1 0xD64
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
148 #define CYGARC_REG_NVIC_ISAR2 0xD68
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
149 #define CYGARC_REG_NVIC_ISAR3 0xD6C
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
150 #define CYGARC_REG_NVIC_ISAR4 0xD70
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
151 #define CYGARC_REG_NVIC_STIR 0xF00
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
152 #define CYGARC_REG_NVIC_PID4 0xFD0
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
153 #define CYGARC_REG_NVIC_PID5 0xFD4
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
154 #define CYGARC_REG_NVIC_PID6 0xFD8
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
155 #define CYGARC_REG_NVIC_PID7 0xFDC
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
156 #define CYGARC_REG_NVIC_PID0 0xFE0
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
157 #define CYGARC_REG_NVIC_PID1 0xFE4
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
158 #define CYGARC_REG_NVIC_PID2 0xFE8
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
159 #define CYGARC_REG_NVIC_PID3 0xFEC
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
160 #define CYGARC_REG_NVIC_CID0 0xFF0
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
161 #define CYGARC_REG_NVIC_CID1 0xFF4
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
162 #define CYGARC_REG_NVIC_CID2 0xFF8
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
163 #define CYGARC_REG_NVIC_CID3 0xFFC
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
164
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
165 // ICSR
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
166
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
167 #define CYGARC_REG_NVIC_ICSR_NMIPENDSET BIT_(31)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
168 #define CYGARC_REG_NVIC_ICSR_PENDSVSET BIT_(28)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
169 #define CYGARC_REG_NVIC_ICSR_PENDSVCLR BIT_(27)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
170 #define CYGARC_REG_NVIC_ICSR_PENDSTSET BIT_(26)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
171 #define CYGARC_REG_NVIC_ICSR_PENDSTCLR BIT_(25)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
172 #define CYGARC_REG_NVIC_ICSR_ISRPREEMPT BIT_(23)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
173 #define CYGARC_REG_NVIC_ICSR_ISRPENDING BIT_(22)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
174 #define CYGARC_REG_NVIC_ICSR_VECTPENDING MASK_(12,9)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
175 #define CYGARC_REG_NVIC_ICSR_RETTOBASE BIT_(11)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
176 #define CYGARC_REG_NVIC_ICSR_VECTACTIVE MASK_(0,9)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
177
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
178 // VTOR
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
179
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
180 #define CYGARC_REG_NVIC_VTOR_TBLOFF(__o) VALUE_(7,__o)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
181 #define CYGARC_REG_NVIC_VTOR_TBLBASE_CODE 0
3076
a532b7c12094 * include/hal_io.h: conditional VTOR setting. [ Bugzilla 1001117 ]
sergeig
parents: 2842
diff changeset
182 #ifndef CYGARC_REG_NVIC_VTOR_TBLBASE_SRAM
2580
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
183 #define CYGARC_REG_NVIC_VTOR_TBLBASE_SRAM BIT_(29)
3076
a532b7c12094 * include/hal_io.h: conditional VTOR setting. [ Bugzilla 1001117 ]
sergeig
parents: 2842
diff changeset
184 #endif
2580
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
185
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
186 // AI/RCR
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
187
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
188 #define CYGARC_REG_NVIC_AIRCR_KEY VALUE_(16,0x5FA)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
189 #define CYGARC_REG_NVIC_AIRCR_BIGENDIAN BIT_(15)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
190 #define CYGARC_REG_NVIC_AIRCR_PRIGROUP(__p) VALUE_(8,__p)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
191 #define CYGARC_REG_NVIC_AIRCR_SYSRESETREQ BIT_(2)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
192 #define CYGARC_REG_NVIC_AIRCR_VECTCLRACTIVE BIT_(1)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
193 #define CYGARC_REG_NVIC_AIRCR_VECTRESET BIT_(0)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
194
2842
8fe6d83b6d48 Add STM32 and synthetic target ADC drivers.
nickg
parents: 2729
diff changeset
195 // SCR
8fe6d83b6d48 Add STM32 and synthetic target ADC drivers.
nickg
parents: 2729
diff changeset
196
8fe6d83b6d48 Add STM32 and synthetic target ADC drivers.
nickg
parents: 2729
diff changeset
197 #define CYGARC_REG_NVIC_SCR_SLEEPONEXIT BIT_(1)
8fe6d83b6d48 Add STM32 and synthetic target ADC drivers.
nickg
parents: 2729
diff changeset
198 #define CYGARC_REG_NVIC_SCR_DEEPSLEEP BIT_(2)
8fe6d83b6d48 Add STM32 and synthetic target ADC drivers.
nickg
parents: 2729
diff changeset
199 #define CYGARC_REG_NVIC_SCR_SEVONPEND BIT_(4)
8fe6d83b6d48 Add STM32 and synthetic target ADC drivers.
nickg
parents: 2729
diff changeset
200
2580
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
201 // SHCSR
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
202
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
203 #define CYGARC_REG_NVIC_SHCSR_USGFAULTENA BIT_(18)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
204 #define CYGARC_REG_NVIC_SHCSR_BUSFAULTENA BIT_(17)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
205 #define CYGARC_REG_NVIC_SHCSR_MEMFAULTENA BIT_(16)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
206 #define CYGARC_REG_NVIC_SHCSR_SVCALLPENDED BIT_(15)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
207 #define CYGARC_REG_NVIC_SHCSR_BUSFAULTPENDED BIT_(14)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
208 #define CYGARC_REG_NVIC_SHCSR_MEMFAULTPENDED BIT_(13)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
209 #define CYGARC_REG_NVIC_SHCSR_USGFAULTPENDED BIT_(12)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
210 #define CYGARC_REG_NVIC_SHCSR_SYSTICKACT BIT_(11)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
211 #define CYGARC_REG_NVIC_SHCSR_PENDSVACT BIT_(10)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
212 #define CYGARC_REG_NVIC_SHCSR_MONITORACT BIT_(8)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
213 #define CYGARC_REG_NVIC_SHCSR_SVCALLACT BIT_(7)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
214 #define CYGARC_REG_NVIC_SHCSR_USGFAULTACT BIT_(3)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
215 #define CYGARC_REG_NVIC_SHCSR_BUSFAULTACT BIT_(1)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
216 #define CYGARC_REG_NVIC_SHCSR_MEMFAULTACT BIT_(0)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
217
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
218 #endif
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
219
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
220 //==========================================================================
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
221 // Debug registers
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
222
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
223 #if defined(CYGHWR_HAL_CORTEXM_M3)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
224
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
225 #define CYGARC_REG_DEBUG_BASE 0xE000EDF0
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
226
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
227 #define CYGARC_REG_DEBUG_DHSR 0x00
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
228 #define CYGARC_REG_DEBUG_DCRSR 0x04
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
229 #define CYGARC_REG_DEBUG_DCRDR 0x08
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
230 #define CYGARC_REG_DEBUG_DEMCR 0x0C
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
231
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
232
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
233 #define CYGARC_REG_DEBUG_DHSR_DBGKEY VALUE_(16,0xA05F)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
234 #define CYGARC_REG_DEBUG_DHSR_S_RESET BIT_(25)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
235 #define CYGARC_REG_DEBUG_DHSR_S_RETIRE BIT_(24)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
236 #define CYGARC_REG_DEBUG_DHSR_S_LOCKUP BIT_(19)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
237 #define CYGARC_REG_DEBUG_DHSR_S_SLEEP BIT_(18)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
238 #define CYGARC_REG_DEBUG_DHSR_S_HALT BIT_(17)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
239 #define CYGARC_REG_DEBUG_DHSR_S_REGRDY BIT_(16)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
240 #define CYGARC_REG_DEBUG_DHSR_C_SNAPSTALL BIT_(5)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
241 #define CYGARC_REG_DEBUG_DHSR_C_MASKINTS BIT_(3)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
242 #define CYGARC_REG_DEBUG_DHSR_C_STEP BIT_(2)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
243 #define CYGARC_REG_DEBUG_DHSR_C_HALT BIT_(1)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
244 #define CYGARC_REG_DEBUG_DHSR_C_DEBUGEN BIT_(0)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
245
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
246
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
247 #define CYGARC_REG_DEBUG_DCRSR_REG_WRITE BIT_(16)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
248 #define CYGARC_REG_DEBUG_DCRSR_REG_READ 0
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
249 #define CYGARC_REG_DEBUG_DCRSR_REG(__x) VALUE_(0,__x)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
250
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
251
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
252 #define CYGARC_REG_DEBUG_DEMCR_TRCENA BIT_(24)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
253 #define CYGARC_REG_DEBUG_DEMCR_MON_REQ BIT_(19)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
254 #define CYGARC_REG_DEBUG_DEMCR_MON_STEP BIT_(18)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
255 #define CYGARC_REG_DEBUG_DEMCR_MON_PEND BIT_(17)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
256 #define CYGARC_REG_DEBUG_DEMCR_MON_EN BIT_(16)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
257 #define CYGARC_REG_DEBUG_DEMCR_VC_HARDERR BIT_(10)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
258 #define CYGARC_REG_DEBUG_DEMCR_VC_INTERR BIT_(9)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
259 #define CYGARC_REG_DEBUG_DEMCR_VC_BUSERR BIT_(8)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
260 #define CYGARC_REG_DEBUG_DEMCR_VC_STATERR BIT_(7)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
261 #define CYGARC_REG_DEBUG_DEMCR_VC_CHKERR BIT_(6)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
262 #define CYGARC_REG_DEBUG_DEMCR_VC_NOCPERR BIT_(5)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
263 #define CYGARC_REG_DEBUG_DEMCR_VC_MMERR BIT_(4)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
264 #define CYGARC_REG_DEBUG_DEMCR_VC_CORERESET BIT_(0)
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
265
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
266 #endif
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
267
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
268 //==========================================================================
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
269 // IO Register address.
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
270 // This type is for recording the address of an IO register.
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
271
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
272 typedef volatile CYG_ADDRWORD HAL_IO_REGISTER;
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
273
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
274 //-----------------------------------------------------------------------------
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
275 // HAL IO macros.
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
276
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
277 #ifndef HAL_IO_MACROS_DEFINED
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
278
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
279 //-----------------------------------------------------------------------------
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
280 // BYTE Register access.
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
281 // Individual and vectorized access to 8 bit registers.
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
282
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
283
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
284 #define HAL_READ_UINT8( _register_, _value_ ) \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
285 ((_value_) = *((volatile CYG_BYTE *)(_register_)))
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
286
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
287 #define HAL_WRITE_UINT8( _register_, _value_ ) \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
288 (*((volatile CYG_BYTE *)(_register_)) = (_value_))
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
289
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
290 #define HAL_READ_UINT8_VECTOR( _register_, _buf_, _count_, _step_ ) \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
291 CYG_MACRO_START \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
292 cyg_count32 _i_,_j_; \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
293 for( _i_ = 0, _j_ = 0; _i_ < (_count_); _i_++, _j_ += (_step_)) \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
294 (_buf_)[_i_] = ((volatile CYG_BYTE *)(_register_))[_j_]; \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
295 CYG_MACRO_END
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
296
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
297 #define HAL_WRITE_UINT8_VECTOR( _register_, _buf_, _count_, _step_ ) \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
298 CYG_MACRO_START \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
299 cyg_count32 _i_,_j_; \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
300 for( _i_ = 0, _j_ = 0; _i_ < (_count_); _i_++, _j_ += (_step_)) \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
301 ((volatile CYG_BYTE *)(_register_))[_j_] = (_buf_)[_i_]; \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
302 CYG_MACRO_END
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
303
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
304 #define HAL_READ_UINT8_STRING( _register_, _buf_, _count_ ) \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
305 CYG_MACRO_START \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
306 cyg_count32 _i_; \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
307 for( _i_ = 0; _i_ < (_count_); _i_++) \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
308 (_buf_)[_i_] = ((volatile CYG_BYTE *)(_register_))[_i_]; \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
309 CYG_MACRO_END
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
310
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
311 #define HAL_WRITE_UINT8_STRING( _register_, _buf_, _count_ ) \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
312 CYG_MACRO_START \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
313 cyg_count32 _i_; \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
314 for( _i_ = 0; _i_ < (_count_); _i_++) \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
315 ((volatile CYG_BYTE *)(_register_)) = (_buf_)[_i_]; \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
316 CYG_MACRO_END
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
317
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
318 //-----------------------------------------------------------------------------
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
319 // 16 bit access.
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
320 // Individual and vectorized access to 16 bit registers.
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
321
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
322
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
323 #define HAL_READ_UINT16( _register_, _value_ ) \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
324 ((_value_) = *((volatile CYG_WORD16 *)(_register_)))
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
325
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
326 #define HAL_WRITE_UINT16( _register_, _value_ ) \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
327 (*((volatile CYG_WORD16 *)(_register_)) = (_value_))
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
328
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
329 #define HAL_READ_UINT16_VECTOR( _register_, _buf_, _count_, _step_ ) \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
330 CYG_MACRO_START \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
331 cyg_count32 _i_,_j_; \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
332 for( _i_ = 0, _j_ = 0; _i_ < (_count_); _i_++, _j_ += (_step_)) \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
333 (_buf_)[_i_] = ((volatile CYG_WORD16 *)(_register_))[_j_]; \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
334 CYG_MACRO_END
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
335
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
336 #define HAL_WRITE_UINT16_VECTOR( _register_, _buf_, _count_, _step_ ) \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
337 CYG_MACRO_START \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
338 cyg_count32 _i_,_j_; \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
339 for( _i_ = 0, _j_ = 0; _i_ < (_count_); _i_++, _j_ += (_step_)) \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
340 ((volatile CYG_WORD16 *)(_register_))[_j_] = (_buf_)[_i_]; \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
341 CYG_MACRO_END
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
342
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
343 #define HAL_READ_UINT16_STRING( _register_, _buf_, _count_) \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
344 CYG_MACRO_START \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
345 cyg_count32 _i_; \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
346 for( _i_ = 0; _i_ < (_count_); _i_++) \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
347 (_buf_)[_i_] = ((volatile CYG_WORD16 *)(_register_))[_i_]; \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
348 CYG_MACRO_END
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
349
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
350 #define HAL_WRITE_UINT16_STRING( _register_, _buf_, _count_) \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
351 CYG_MACRO_START \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
352 cyg_count32 _i_; \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
353 for( _i_ = 0; _i_ < (_count_); _i_++) \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
354 ((volatile CYG_WORD16 *)(_register_))[_i_] = (_buf_)[_i_]; \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
355 CYG_MACRO_END
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
356
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
357 //-----------------------------------------------------------------------------
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
358 // 32 bit access.
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
359 // Individual and vectorized access to 32 bit registers.
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
360
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
361 #define HAL_READ_UINT32( _register_, _value_ ) \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
362 ((_value_) = *((volatile CYG_WORD32 *)(_register_)))
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
363
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
364 #define HAL_WRITE_UINT32( _register_, _value_ ) \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
365 (*((volatile CYG_WORD32 *)(_register_)) = (_value_))
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
366
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
367 #define HAL_READ_UINT32_VECTOR( _register_, _buf_, _count_, _step_ ) \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
368 CYG_MACRO_START \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
369 cyg_count32 _i_,_j_; \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
370 for( _i_ = 0, _j_ = 0; _i_ < (_count_); _i_++, _j_ += (_step_)) \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
371 (_buf_)[_i_] = ((volatile CYG_WORD32 *)(_register_))[_j_]; \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
372 CYG_MACRO_END
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
373
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
374 #define HAL_WRITE_UINT32_VECTOR( _register_, _buf_, _count_, _step_ ) \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
375 CYG_MACRO_START \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
376 cyg_count32 _i_,_j_; \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
377 for( _i_ = 0, _j_ = 0; _i_ < (_count_); _i_++, _j_ += (_step_)) \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
378 ((volatile CYG_WORD32 *)(_register_))[_j_] = (_buf_)[_i_]; \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
379 CYG_MACRO_END
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
380
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
381 #define HAL_READ_UINT32_STRING( _register_, _buf_, _count_) \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
382 CYG_MACRO_START \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
383 cyg_count32 _i_; \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
384 for( _i_ = 0; _i_ < (_count_); _i_++) \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
385 (_buf_)[_i_] = ((volatile CYG_WORD32 *)(_register_))[_i_]; \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
386 CYG_MACRO_END
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
387
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
388 #define HAL_WRITE_UINT32_STRING( _register_, _buf_, _count_) \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
389 CYG_MACRO_START \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
390 cyg_count32 _i_; \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
391 for( _i_ = 0; _i_ < (_count_); _i_++) \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
392 ((volatile CYG_WORD32 *)(_register_))[_i_] = (_buf_)[_i_]; \
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
393 CYG_MACRO_END
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
394
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
395
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
396 #define HAL_IO_MACROS_DEFINED
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
397
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
398 #endif // !HAL_IO_MACROS_DEFINED
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
399
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
400 // Enforce a flow "barrier" to prevent optimizing compiler from reordering
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
401 // operations.
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
402 #define HAL_IO_BARRIER()
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
403
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
404
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
405 //==========================================================================
07fc475e1c28 Add Cortex-M architecture HAL, STM32 variant and STM3210E platform HALs.
nickg
parents:
diff changeset
406 #endif //CYGONCE_HAL_IO_H