software_APIs  1.0.0
common.h
Go to the documentation of this file.
1 
4 #ifndef COMMON_C_HEADER_FILE
5 #define COMMON_C_HEADER_FILE
6 
7 #include <defs.h>
8 #include <stub.c>
9 #ifdef ARM
10 #include "swift.h"
11 #include <stdbool.h>
12 #else
13 #include <uart.h>
14 #include <irq_vex.h>
15 
16 #endif
17 #include <gpios.h>
18 #include <timer0.h>
19 #include <mgmt_gpio.h>
20 #ifndef OPENFRAME
21 #include <irq_api.h>
22 #endif
23 #include <la.h>
24 #include <uart_api.h>
25 #include <spi_master.h>
26 #include <user_space.h>
27 
28 #ifndef DOXYGEN_SHOULD_SKIP_THIS
29 void enable_debug(){
30  User_enableIF();
31  set_debug_reg1(0);
32  set_debug_reg2(0);
33 
34 }
35 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
36 
47 void enableHkSpi(bool is_enable){reg_hkspi_disable = !is_enable;}
48 // debug regs
49 #ifndef DOXYGEN_SHOULD_SKIP_THIS
50 void set_debug_reg1(unsigned int data){reg_debug_1 = data;}
51 void set_debug_reg2(unsigned int data){reg_debug_2 = data;}
52 unsigned int get_debug_reg1(){return reg_debug_1;}
53 unsigned int get_debug_reg2(){return reg_debug_2;}
54 void wait_debug_reg1(unsigned int data){while (get_debug_reg1() != data);}
55 void wait_debug_reg2(unsigned int data){while (get_debug_reg2() != data);}
56 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
57 
58 // user project registers
59 #ifndef DOXYGEN_SHOULD_SKIP_THIS
60 #ifndef ARM
61 #define reg_mprj_userl (*(volatile unsigned int*)0x300FFFF0)
62 #define reg_mprj_userh (*(volatile unsigned int*)0x300FFFF4)
63 #define reg_oeb_userl (*(volatile unsigned int*)0x300FFFEC)
64 #define reg_oeb_userh (*(volatile unsigned int*)0x300FFFE8)
65 #else
66 #define reg_mprj_userl (*(volatile unsigned int*)0x41FFFFF4)
67 #define reg_mprj_userh (*(volatile unsigned int*)0x41FFFFF0)
68 #define reg_oeb_userl (*(volatile unsigned int*)0x41FFFFEC)
69 #define reg_oeb_userh (*(volatile unsigned int*)0x41FFFFE8)
70 #endif
71 
72 // gpio_user
73 void set_gpio_user_l(unsigned int data){reg_mprj_userl = data;}
74 void set_gpio_user_h(unsigned int data){reg_mprj_userh = data;}
75 unsigned int get_gpio_user_h(){
76  #ifdef ARM
77  return reg_mprj_userh & 0x7; // because with ARM the highest 3 gpios are not used by the design it is used by flashing
78  #else
79  return reg_mprj_userh;
80  #endif
81 }
82 unsigned int get_gpio_user_l(){return reg_mprj_userl;}
83 void wait_gpio_user_l(unsigned int data){while (reg_mprj_userl != data);}
84 void wait_gpio_user_h(unsigned int data){
85  #ifdef ARM
86  data = data&0x7; // because with ARM the highest 3 gpios are not used by the design it is used by flashing
87  #endif
88  while (get_gpio_user_h() != data);
89 }
90 
91 void output_enable_all_gpio_user(char is_enable){
92  if (is_enable){
93  reg_oeb_userl = 0x0;
94  #ifdef ARM
95  reg_oeb_userh = 0x38; // 111000 highest gpios has to be disabled
96  #else
97  reg_oeb_userh = 0x0;
98  #endif
99  }else{
100  reg_oeb_userl = 0xFFFFFFFF;
101  reg_oeb_userh = 0x3F;
102  }
103 
104 }
105 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
106 
107 //
115 void dummyDelay(int num){
116  for (int i=0;i < num;i++){
117  #ifdef ARM
118  reg_wb_enable = reg_wb_enable;
119  #endif //ARM
120  continue;
121  }
122 }
123 
124 
125 
126 // debug
127 #ifndef DOXYGEN_SHOULD_SKIP_THIS
128 void mgmt_debug_enable(){reg_wb_enable = reg_wb_enable | 0x10;}
129 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
130 
131 
132 #endif // COMMON_C_HEADER_FILE
void enableHkSpi(bool is_enable)
Definition: common.h:47
void dummyDelay(int num)
Definition: common.h:115
void User_enableIF()
Definition: user_space.h:13