Skip to content

Commit 0947e74

Browse files
committed
Move ARMv7-M specific constants into a cfg-gated module
1 parent 8f42e8f commit 0947e74

File tree

1 file changed

+29
-16
lines changed

1 file changed

+29
-16
lines changed

src/peripheral/mod.rs

Lines changed: 29 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -113,15 +113,6 @@ pub struct Cpuid {
113113
pub csselr: RW<u32>,
114114
}
115115

116-
const CSSELR_IND_POS: u32 = 0;
117-
const CSSELR_IND_MASK: u32 = 1 << CSSELR_IND_POS;
118-
const CSSELR_LEVEL_POS: u32 = 1;
119-
const CSSELR_LEVEL_MASK: u32 = 0x7 << CSSELR_LEVEL_POS;
120-
const CCSIDR_NUMSETS_POS: u32 = 13;
121-
const CCSIDR_NUMSETS_MASK: u32 = 0x7FFF << CCSIDR_NUMSETS_POS;
122-
const CCSIDR_ASSOCIATIVITY_POS: u32 = 3;
123-
const CCSIDR_ASSOCIATIVITY_MASK: u32 = 0x3FF << CCSIDR_ASSOCIATIVITY_POS;
124-
125116
/// Type of cache to select on CSSELR writes.
126117
#[cfg(armv7m)]
127118
pub enum CsselrCacheType {
@@ -140,6 +131,11 @@ impl Cpuid {
140131
///
141132
/// `level` is masked to be between 0 and 7.
142133
pub fn select_cache(&self, level: u8, ind: CsselrCacheType) {
134+
const CSSELR_IND_POS: u32 = 0;
135+
const CSSELR_IND_MASK: u32 = 1 << CSSELR_IND_POS;
136+
const CSSELR_LEVEL_POS: u32 = 1;
137+
const CSSELR_LEVEL_MASK: u32 = 0x7 << CSSELR_LEVEL_POS;
138+
143139
unsafe { self.csselr.write(
144140
(((level as u32) << CSSELR_LEVEL_POS) & CSSELR_LEVEL_MASK) |
145141
(((ind as u32) << CSSELR_IND_POS) & CSSELR_IND_MASK)
@@ -148,6 +144,11 @@ impl Cpuid {
148144

149145
/// Returns the number of sets and ways in the selected cache
150146
pub fn cache_num_sets_ways(&self, level: u8, ind: CsselrCacheType) -> (u16, u16) {
147+
const CCSIDR_NUMSETS_POS: u32 = 13;
148+
const CCSIDR_NUMSETS_MASK: u32 = 0x7FFF << CCSIDR_NUMSETS_POS;
149+
const CCSIDR_ASSOCIATIVITY_POS: u32 = 3;
150+
const CCSIDR_ASSOCIATIVITY_MASK: u32 = 0x3FF << CCSIDR_ASSOCIATIVITY_POS;
151+
151152
self.select_cache(level, ind);
152153
::asm::dsb();
153154
let ccsidr = self.ccsidr.read();
@@ -490,9 +491,6 @@ pub enum FpuAccessMode {
490491
Privileged,
491492
}
492493

493-
const SCB_CCR_IC_MASK: u32 = (1<<17);
494-
const SCB_CCR_DC_MASK: u32 = (1<<16);
495-
496494
const SCB_CPACR_FPU_MASK: u32 = 0b11_11 << 20;
497495
const SCB_CPACR_FPU_ENABLE: u32 = 0b01_01 << 20;
498496
const SCB_CPACR_FPU_USER: u32 = 0b10_10 << 20;
@@ -536,6 +534,15 @@ impl Scb {
536534
}
537535
}
538536

537+
#[cfg(armv7m)]
538+
mod scb_consts {
539+
pub const SCB_CCR_IC_MASK: u32 = (1<<17);
540+
pub const SCB_CCR_DC_MASK: u32 = (1<<16);
541+
}
542+
543+
#[cfg(armv7m)]
544+
use self::scb_consts::*;
545+
539546
#[cfg(armv7m)]
540547
impl Scb {
541548
/// Enables I-Cache if currently disabled
@@ -996,10 +1003,16 @@ pub struct Cbp {
9961003
pub bpiall: WO<u32>,
9971004
}
9981005

999-
const CBP_SW_WAY_POS: u32 = 30;
1000-
const CBP_SW_WAY_MASK: u32 = 0x3 << CBP_SW_WAY_POS;
1001-
const CBP_SW_SET_POS: u32 = 5;
1002-
const CBP_SW_SET_MASK: u32 = 0x1FF << CBP_SW_SET_POS;
1006+
#[cfg(armv7m)]
1007+
mod cbp_consts {
1008+
pub const CBP_SW_WAY_POS: u32 = 30;
1009+
pub const CBP_SW_WAY_MASK: u32 = 0x3 << CBP_SW_WAY_POS;
1010+
pub const CBP_SW_SET_POS: u32 = 5;
1011+
pub const CBP_SW_SET_MASK: u32 = 0x1FF << CBP_SW_SET_POS;
1012+
}
1013+
1014+
#[cfg(armv7m)]
1015+
use self::cbp_consts::*;
10031016

10041017
#[cfg(armv7m)]
10051018
impl Cbp {

0 commit comments

Comments
 (0)