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
//! # FPU support for the Cortex-M4F // **************************************************************************** // // Imports // // **************************************************************************** use cortex_m; // **************************************************************************** // // Public Types // // **************************************************************************** // None // **************************************************************************** // // Public Data // // **************************************************************************** // None // **************************************************************************** // // Private Types // // **************************************************************************** // None // **************************************************************************** // // Private Data // // **************************************************************************** // ***************************************************************************** // // The following are defines for the bit fields in the NVIC_CPAC register. // // ***************************************************************************** const NVIC_CPAC_CP11_M: usize = 0x00C00000; // CP11 Coprocessor Access Privilege const NVIC_CPAC_CP11_FULL: usize = 0x00C00000; // Full Access const NVIC_CPAC_CP10_M: usize = 0x00300000; // CP10 Coprocessor Access Privilege const NVIC_CPAC_CP10_FULL: usize = 0x00300000; // Full Access // **************************************************************************** // // Public Functions // // **************************************************************************** /// Enable full access to the FPU pub fn init() { unsafe { (*cortex_m::peripheral::SCB.get()).cpacr.modify(|r| { (r & !(NVIC_CPAC_CP11_M as u32 | NVIC_CPAC_CP10_M as u32)) | (NVIC_CPAC_CP11_FULL as u32 | NVIC_CPAC_CP10_FULL as u32) }); } } // **************************************************************************** // // Private Functions // // **************************************************************************** // None // **************************************************************************** // // End Of File // // ****************************************************************************