first release for keyboard
Dependencies: F401RE-USBHost2 mbed
my_wait_us_asm.s@0:eb2258e8c4b5, 2016-10-26 (annotated)
- Committer:
- Ownasaurus
- Date:
- Wed Oct 26 02:02:09 2016 +0000
- Revision:
- 0:eb2258e8c4b5
board<-->N64 communication functional
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Ownasaurus | 0:eb2258e8c4b5 | 1 | AREA asm_func, CODE, READONLY |
Ownasaurus | 0:eb2258e8c4b5 | 2 | EXPORT my_wait_us_asm |
Ownasaurus | 0:eb2258e8c4b5 | 3 | |
Ownasaurus | 0:eb2258e8c4b5 | 4 | my_wait_us_asm |
Ownasaurus | 0:eb2258e8c4b5 | 5 | |
Ownasaurus | 0:eb2258e8c4b5 | 6 | WAIT_1_US |
Ownasaurus | 0:eb2258e8c4b5 | 7 | ; According to ARM spec, NOPs may be removed by the assembler, so they |
Ownasaurus | 0:eb2258e8c4b5 | 8 | ; are not a reliable way to eat up time. Instead we simply do empty adds |
Ownasaurus | 0:eb2258e8c4b5 | 9 | ; to eat up clock cycles. |
Ownasaurus | 0:eb2258e8c4b5 | 10 | |
Ownasaurus | 0:eb2258e8c4b5 | 11 | ; My board operates at 180 MHz. Assuming each instruction is 1 clock cycle, |
Ownasaurus | 0:eb2258e8c4b5 | 12 | ; 180 instructions should take 1 microsecond |
Ownasaurus | 0:eb2258e8c4b5 | 13 | |
Ownasaurus | 0:eb2258e8c4b5 | 14 | ADD R1, R2, #0 ; clock cycle 1 |
Ownasaurus | 0:eb2258e8c4b5 | 15 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 16 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 17 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 18 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 19 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 20 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 21 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 22 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 23 | ADD R1, R2, #0 ; clock cycle 10 |
Ownasaurus | 0:eb2258e8c4b5 | 24 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 25 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 26 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 27 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 28 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 29 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 30 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 31 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 32 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 33 | ADD R1, R2, #0 ; clock cycle 20 |
Ownasaurus | 0:eb2258e8c4b5 | 34 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 35 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 36 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 37 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 38 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 39 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 40 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 41 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 42 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 43 | ADD R1, R2, #0 ; clock cycle 20 |
Ownasaurus | 0:eb2258e8c4b5 | 44 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 45 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 46 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 47 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 48 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 49 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 50 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 51 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 52 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 53 | ADD R1, R2, #0 ; clock cycle 30 |
Ownasaurus | 0:eb2258e8c4b5 | 54 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 55 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 56 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 57 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 58 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 59 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 60 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 61 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 62 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 63 | ADD R1, R2, #0 ; clock cycle 50 |
Ownasaurus | 0:eb2258e8c4b5 | 64 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 65 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 66 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 67 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 68 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 69 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 70 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 71 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 72 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 73 | ADD R1, R2, #0 ; clock cycle 60 |
Ownasaurus | 0:eb2258e8c4b5 | 74 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 75 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 76 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 77 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 78 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 79 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 80 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 81 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 82 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 83 | ADD R1, R2, #0 ; clock cycle 70 |
Ownasaurus | 0:eb2258e8c4b5 | 84 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 85 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 86 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 87 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 88 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 89 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 90 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 91 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 92 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 93 | ADD R1, R2, #0 ; clock cycle 80 |
Ownasaurus | 0:eb2258e8c4b5 | 94 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 95 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 96 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 97 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 98 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 99 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 100 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 101 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 102 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 103 | ADD R1, R2, #0 ; clock cycle 90 |
Ownasaurus | 0:eb2258e8c4b5 | 104 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 105 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 106 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 107 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 108 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 109 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 110 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 111 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 112 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 113 | ADD R1, R2, #0 ; clock cycle 100 |
Ownasaurus | 0:eb2258e8c4b5 | 114 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 115 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 116 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 117 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 118 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 119 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 120 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 121 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 122 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 123 | ADD R1, R2, #0 ; clock cycle 110 |
Ownasaurus | 0:eb2258e8c4b5 | 124 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 125 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 126 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 127 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 128 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 129 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 130 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 131 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 132 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 133 | ADD R1, R2, #0 ; clock cycle 120 |
Ownasaurus | 0:eb2258e8c4b5 | 134 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 135 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 136 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 137 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 138 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 139 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 140 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 141 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 142 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 143 | ADD R1, R2, #0 ; clock cycle 130 |
Ownasaurus | 0:eb2258e8c4b5 | 144 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 145 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 146 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 147 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 148 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 149 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 150 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 151 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 152 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 153 | ADD R1, R2, #0 ; clock cycle 140 |
Ownasaurus | 0:eb2258e8c4b5 | 154 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 155 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 156 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 157 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 158 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 159 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 160 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 161 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 162 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 163 | ADD R1, R2, #0 ; clock cycle 150 |
Ownasaurus | 0:eb2258e8c4b5 | 164 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 165 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 166 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 167 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 168 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 169 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 170 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 171 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 172 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 173 | ADD R1, R2, #0 ; clock cycle 160 |
Ownasaurus | 0:eb2258e8c4b5 | 174 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 175 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 176 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 177 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 178 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 179 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 180 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 181 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 182 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 183 | ADD R1, R2, #0 ; clock cycle 170 |
Ownasaurus | 0:eb2258e8c4b5 | 184 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 185 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 186 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 187 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 188 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 189 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 190 | ADD R1, R2, #0 |
Ownasaurus | 0:eb2258e8c4b5 | 191 | ADD R1, R2, #0 ; clock cycle 178 |
Ownasaurus | 0:eb2258e8c4b5 | 192 | |
Ownasaurus | 0:eb2258e8c4b5 | 193 | SUBS R0, R0, #1 ; clock cycle 179 |
Ownasaurus | 0:eb2258e8c4b5 | 194 | BGT WAIT_1_US ; clock cycle 180 |
Ownasaurus | 0:eb2258e8c4b5 | 195 | |
Ownasaurus | 0:eb2258e8c4b5 | 196 | BX LR ; return |
Ownasaurus | 0:eb2258e8c4b5 | 197 | END |