arm_cpu.h
1 /*
2  * Copyright (C) 2014 Freie Universität Berlin
3  *
4  * This file is subject to the terms and conditions of the GNU Lesser
5  * General Public License v2.1. See the file LICENSE in the top level
6  * directory for more details.
7  */
8 
9 #ifndef ARM_CPU_H
10 #define ARM_CPU_H
11 
12 #include <stdint.h>
13 #include "VIC.h"
14 #include "arm7_common.h"
15 
16 #ifdef __cplusplus
17  extern "C" {
18 #endif
19 
20 #define NEW_TASK_CPSR 0x1F
21 #define WORDSIZE 32
22 
23 uint32_t get_system_speed(void);
24 void cpu_clock_scale(uint32_t source, uint32_t target, uint32_t *prescale);
25 
26 void arm_reset(void);
27 
35 #define STACK_CANARY_WORD (0xEAFFFFFEu)
36 
41 #ifdef __ARM_FEATURE_CLZ
42 #define BITARITHM_LSB_BUILTIN
43 #define BITARITHM_HAS_CLZ
44 #else
45 #define BITARITHM_LSB_LOOKUP
46 #endif
47 
49 #ifdef __cplusplus
50 }
51 #endif
52 
53 #endif /* ARM_CPU_H */
arm7_common.h
ARM7 CPU common declarations.