107 lines
3.1 KiB
Rust
107 lines
3.1 KiB
Rust
//! Memory addresses of registers
|
|
//! Data sheet: https://www.ti.com/lit/ds/spms376e/spms376e.pdf
|
|
|
|
// TODO: check page 92-94 for more features ("Memory Map" table)!
|
|
|
|
// TODO: check page 1230 onward for PWM
|
|
|
|
/// Modeled after page 660 of data sheet (GPIO Register Map)
|
|
pub mod gpio {
|
|
mod base {
|
|
pub const PORT_A: u32 = 0x4000_4000;
|
|
pub const PORT_F: u32 = 0x4002_5000;
|
|
}
|
|
|
|
/// Page 671 of data sheet
|
|
pub mod afsel {
|
|
const OFFSET: u32 = 0x420;
|
|
|
|
pub const PORT_A: *mut u32 = (super::base::PORT_A + OFFSET) as *mut u32;
|
|
pub const PORT_F: *mut u32 = (super::base::PORT_F + OFFSET) as *mut u32;
|
|
}
|
|
|
|
/// Page 687 of data sheet
|
|
pub mod amsel {
|
|
const OFFSET: u32 = 0x52C;
|
|
|
|
pub const PORT_A: *mut u32 = (super::base::PORT_A + OFFSET) as *mut u32;
|
|
pub const PORT_F: *mut u32 = (super::base::PORT_F + OFFSET) as *mut u32;
|
|
}
|
|
|
|
/// Page 685 of data sheet
|
|
pub mod cr {
|
|
const OFFSET: u32 = 0x524;
|
|
|
|
pub const PORT_A: *mut u32 = (super::base::PORT_A + OFFSET) as *mut u32;
|
|
pub const PORT_F: *mut u32 = (super::base::PORT_F + OFFSET) as *mut u32;
|
|
}
|
|
|
|
/// Page 662 of data sheet
|
|
pub mod data {
|
|
const OFFSET: u32 = 0x3FC;
|
|
|
|
pub const PORT_A: *mut u32 = (super::base::PORT_A + OFFSET) as *mut u32;
|
|
pub const PORT_F: *mut u32 = (super::base::PORT_F + OFFSET) as *mut u32;
|
|
}
|
|
|
|
/// Page 682 of data sheet
|
|
pub mod den {
|
|
const OFFSET: u32 = 0x51C;
|
|
|
|
pub const PORT_A: *mut u32 = (super::base::PORT_A + OFFSET) as *mut u32;
|
|
pub const PORT_F: *mut u32 = (super::base::PORT_F + OFFSET) as *mut u32;
|
|
}
|
|
|
|
/// Page 663 of data sheet
|
|
pub mod dir {
|
|
const OFFSET: u32 = 0x400;
|
|
|
|
pub const PORT_A: *mut u32 = (super::base::PORT_A + OFFSET) as *mut u32;
|
|
pub const PORT_F: *mut u32 = (super::base::PORT_F + OFFSET) as *mut u32;
|
|
}
|
|
|
|
/// Page 684 of data sheet
|
|
pub mod lock {
|
|
const OFFSET: u32 = 0x520;
|
|
|
|
pub const PORT_A: *mut u32 = (super::base::PORT_A + OFFSET) as *mut u32;
|
|
pub const PORT_F: *mut u32 = (super::base::PORT_F + OFFSET) as *mut u32;
|
|
}
|
|
|
|
/// Page 688 of data sheet
|
|
pub mod pctl {
|
|
const OFFSET: u32 = 0x52C;
|
|
|
|
pub const PORT_A: *mut u32 = (super::base::PORT_A + OFFSET) as *mut u32;
|
|
pub const PORT_F: *mut u32 = (super::base::PORT_F + OFFSET) as *mut u32;
|
|
}
|
|
|
|
/// Page 679 of data sheet
|
|
pub mod pdr {
|
|
const OFFSET: u32 = 0x514;
|
|
|
|
pub const PORT_A: *mut u32 = (super::base::PORT_A + OFFSET) as *mut u32;
|
|
pub const PORT_F: *mut u32 = (super::base::PORT_F + OFFSET) as *mut u32;
|
|
}
|
|
|
|
/// Page 677 of data sheet
|
|
pub mod pur {
|
|
const OFFSET: u32 = 0x510;
|
|
|
|
pub const PORT_A: *mut u32 = (super::base::PORT_A + OFFSET) as *mut u32;
|
|
pub const PORT_F: *mut u32 = (super::base::PORT_F + OFFSET) as *mut u32;
|
|
}
|
|
|
|
// TODO: examine page 670 for when (if) I do interrupts
|
|
}
|
|
|
|
// TODO: examine page 690 (ADC) for applicability
|
|
|
|
/// Page 231 of data sheet
|
|
pub mod system {
|
|
const BASE: u32 = 0x400F_E000;
|
|
|
|
// TODO: page 340
|
|
pub const RCGCGPIO: *mut u32 = (BASE + 0x608) as *mut u32;
|
|
}
|