⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cp15.lst

📁 ucos 在 arm9 芯片上的移植
💻 LST
📖 第 1 页 / 共 5 页
字号:
                                                                 
  132 00000168 E3A00000        mov              r0,#&0
  133 0000016C EE0D0F10        mcr              p15,0,r0,c13,c0,0 ;write FCSE P
                                                            ID Register        
                                                                               
                                                                               
                                                                               
                                                                  
  134 00000170         
  135 00000170         ;mrc             p15,0,r0,c1,c0,0    ;Read Control Regis
                       ter                                                     
                                           
  136 00000170         ;ldr             r1,=&fffa0c00                          
                                                                               
                            
  137 00000170         ;bic             r0,r0,r1            ;clear SBZ bits    
                                                                               
                                           
  138 00000170         ;ldr             r1,=&00050078                          
                                                                               
                            
  139 00000170         ;orr             r0,r0,r1            ;set SBO bits      
                                                                               
                                           
  140 00000170         ;bic             r0,r0,#&80          ;Little-endian     
                                                                               
                                           



ARM Macro Assembler    Page 10 


  141 00000170         ;orr             r0,r0,#&1           ;MMU enable        
                                                                               
                                           
  142 00000170         ;orr             r0,r0,#&1000        ;ICache enable     
                                                                               
                                           
  143 00000170         ;orr             r0,r0,#&4           ;DCache enable     
                                                                               
                                           
  144 00000170         ;mcr             p15,0,r0,c1,c0,0    ;write Control Regi
                       ster                                                    
                                           
  145 00000170         ;mov             r3,pc                                  
                                                                               
                                          
  146 00000170         ;ldr             r2,[r3,#0]                             
                                                                               
                                          
  147 00000170         ;ldr             r2,[r3,#0]                             
                                                                               
                                          
  148 00000170         ;ldr             r2,[r3,#0]                             
                                                                               
                                          
  149 00000170         
  150 00000170         ; add xhl
  151 00000170         ; flush TLBs
  152 00000170 E3A00000        mov              r0, #0
  153 00000174 E1A00000        nop
  154 00000178 E1A00000        nop
  155 0000017C EE080F15        mcr              p15, #0, r0, c8, c5, #0
  156 00000180 E1A00000        nop
  157 00000184 E1A00000        nop
  158 00000188 E1A00000        nop
  159 0000018C E1A00000        nop
  160 00000190 EE080F16        mcr              p15, #0, r0, c8, c6, #0
  161 00000194 E1A00000        nop
  162 00000198 E1A00000        nop
  163 0000019C E1A00000        nop
  164 000001A0 E1A00000        nop
  165 000001A4         
  166 000001A4         ; flush cache               
  167 000001A4 E3A00000        mov              r0, #0
  168 000001A8 E1A00000        nop
  169 000001AC E1A00000        nop
  170 000001B0 EE070F15        mcr              p15, #0, r0, c7, c5, #0
  171 000001B4 E1A00000        nop
  172 000001B8 E1A00000        nop
  173 000001BC E1A00000        nop
  174 000001C0 E1A00000        nop
  175 000001C4 EE070F16        mcr              p15, #0, r0, c7, c6, #0
  176 000001C8 E1A00000        nop
  177 000001CC E1A00000        nop
  178 000001D0 E1A00000        nop
  179 000001D4 E1A00000        nop
  180 000001D8         
  181 000001D8         ; enable the instruction cache and data cache
  182 000001D8 EE111F10        mrc              p15, #0, r1, c1, c0, #0
  183 000001DC E3A00A01        mov              r0,#0x1000



ARM Macro Assembler    Page 11 


  184 000001E0 E1811000        orr              r1, r1, r0  ; enable IC
  185 000001E4 E1A00000        nop                          ; avoid LATECANCEL 
                                                            bug
  186 000001E8 EE011F10        mcr              p15, #0, r1, c1, c0, #0
  187 000001EC E1A00000        nop                          ; avoid LATECANCEL 
                                                            bug and allow pipe
  188 000001F0 E1A00000        nop                          ; to empty
  189 000001F4 E1A00000        nop
  190 000001F8 E1A00000        nop
  191 000001FC         
  192 000001FC EE111F10        mrc              p15, #0, r1, c1, c0, #0
  193 00000200 E3A00005        mov              r0,#5
  194 00000204 E1811000        orr              r1, r1, r0  ; enable DC, MMU (D
                                                            C - 4, MMU - 1)
  195 00000208 E1A00000        nop                          ; avoid LATECANCEL 
                                                            bug
  196 0000020C EE011F10        mcr              p15, #0, r1, c1, c0, #0
  197 00000210 E1A00000        nop
  198 00000214 E1A00000        nop
  199 00000218 E1A00000        nop
  200 0000021C E1A00000        nop
  201 00000220 EE111F10        mrc              p15, #0, r1, c1, c0, #0 
                                                            ; verify 
  202 00000224 E1A00000        nop
  203 00000228 E1A00000        nop
  204 0000022C E1A00000        nop
  205 00000230 E1A00000        nop
  206 00000234         
  207 00000234         ; flush TLBs
  208 00000234 E3A00000        mov              r0, #0
  209 00000238 E1A00000        nop
  210 0000023C E1A00000        nop
  211 00000240 EE080F15        mcr              p15, #0, r0, c8, c5, #0
  212 00000244 E1A00000        nop
  213 00000248 E1A00000        nop
  214 0000024C E1A00000        nop
  215 00000250 E1A00000        nop
  216 00000254 EE080F16        mcr              p15, #0, r0, c8, c6, #0
  217 00000258 E1A00000        nop
  218 0000025C E1A00000        nop
  219 00000260 E1A00000        nop
  220 00000264 E1A00000        nop
  221 00000268         
  222 00000268         
  223 00000268         ; flush cache   
  224 00000268 E3A01000        mov              r1, #0
  225 0000026C E1A00000        nop
  226 00000270 E1A00000        nop
  227 00000274 EE070F15        mcr              p15, #0, r0, c7, c5, #0
  228 00000278 E1A00000        nop
  229 0000027C E1A00000        nop
  230 00000280 E1A00000        nop
  231 00000284 E1A00000        nop
  232 00000288 EE070F16        mcr              p15, #0, r0, c7, c6, #0
  233 0000028C E1A00000        nop
  234 00000290 E1A00000        nop
  235 00000294 E1A00000        nop
  236 00000298 E1A00000        nop
  237 0000029C         



ARM Macro Assembler    Page 12 


  238 0000029C E1A0F00E        mov              pc, r14     ; Go back to where 
                                                            cache() is called f
                                                            rom 
  239 000002A0         
  240 000002A0         
  241 000002A0 E1A00000        nop
  242 000002A4 E1A00000        nop
  243 000002A8 E1A00000        nop
  244 000002AC E1A00000        nop
  245 000002B0         ;xhl add end
  246 000002B0         mmuend
  247 000002B0 E12FFF1E        bx               lr
  248 000002B4         
  249 000002B4         
  250 000002B4         memregions
  251 000002B4 04000000        DCD              0x04000000  ;size
  252 000002B8 00000000        DCD              0x00000000  ;offset
  253 000002BC 00000000        DCD              0x00000000  ;Description
  254 000002C0 00000C0C        DCD              0x00000c0c  ;Description
  255 000002C4 04000000        DCD              0x04000000
  256 000002C8 04000000        DCD              0x04000000
  257 000002CC 04000000        DCD              0x04000000
  258 000002D0 00000C00        DCD              0x00000c00
  259 000002D4 02000000        DCD              0x02000000
  260 000002D8 08000000        DCD              0x08000000
  261 000002DC 08000000        DCD              0x08000000
  262 000002E0 00000C00        DCD              0x00000c00
  263 000002E4 00100000        DCD              0x00100000
  264 000002E8 10100000        DCD              0x10100000
  265 000002EC 10100000        DCD              0x10100000
  266 000002F0 00000C00        DCD              0x00000c00
  267 000002F4 02000000        DCD              0x02000000
  268 000002F8 30000000        DCD              0x30000000
  269 000002FC 30000000        DCD              0x30000000
  270 00000300 00000C00        DCD              0x00000c00
  271 00000304 01000000        DCD              0x01000000
  272 00000308 38000000        DCD              0x38000000
  273 0000030C 38000000        DCD              0x38000000
  274 00000310 00000C00        DCD              0x00000c00
  275 00000314 00800000        DCD              0x00800000
  276 00000318 40000000        DCD              0x40000000
  277 0000031C 40000000        DCD              0x40000000
  278 00000320 00000C00        DCD              0x00000c00
  279 00000324 00100000        DCD              0x00100000
  280 00000328 48000000        DCD              0x48000000
  281 0000032C 48000000        DCD              0x48000000
  282 00000330 00000C00        DCD              0x00000c00
  283 00000334 00000000        DCD              0x00000000
  284 00000338         
  285 00000338         ;*******************************************************
                       **********
  286 00000338         ;*
  287 00000338         ;* Function Name
  288 00000338         ;*    ARM_disableIRQ
  289 00000338         ;* Inputs
  290 00000338         ;*    None
  291 00000338         ;* Outputs
  292 00000338         ;*    None
  293 00000338         ;* Return Codes



ARM Macro Assembler    Page 13 


  294 00000338         ;*    None
  295 00000338         ;* Description
  296 00000338         ;*   Disable IRQ interrupt for ARM  
  297 00000338         ;* Date:
  298 00000338         ;*    2008-03-06
  299 00000338         ;*******************************************************
                       **********/
  300 00000338                 EXPORT           ARM_disableIRQ
  301 00000338         ARM_disableIRQ
  302 00000338 E92D0007        stmfd            r13!, {r0-r2}
  303 0000033C E10F1000        mrs              r1, cpsr
  304 00000340 E201201F        and              r2, r1, #0x1F
  305 00000344 E3520012        cmp              r2, #0x12   ;see if currently i
                                                            n IRQ mode
  306 00000348 1A000001        bne              disableIRQ  ;If not in IRQ mode
                                                            , continue
  307 0000034C E8BD0007        ldmfd            r13!, {r0-r2}
  308 00000350 E12FFF1E        bx               lr
  309 00000354         
  310 00000354         disableIRQ
  311 00000354 E3811080        orr              r1, r1, #0x80 ;disable IRQ
  312 00000358 E121F001        msr              cpsr_c, r1
  313 0000035C E8BD0007        ldmfd            r13!, {r0-r2}
  314 00000360         ;movs  pc, lr
  315 00000360 E1A0F00E        mov              pc, lr
  316 00000364         ;*******************************************************
                       **********
  317 00000364         ;*
  318 00000364         ;* Function Name
  319 00000364         ;*    ARM_enableIRQ
  320 00000364         ;* Inputs
  321 00000364         ;*    None
  322 00000364         ;* Outputs
  323 00000364         ;*    None
  324 00000364         ;* Return Codes
  325 00000364         ;*    None
  326 00000364         ;* Description
  327 00000364         ;*   Enable IRQ interrupt for ARM  
  328 00000364         ;* Date:
  329 00000364         ;*    2008-03-06
  330 00000364         ;*******************************************************
                       **********/
  331 00000364                 EXPORT           ARM_enableIRQ
  332 00000364         ARM_enableIRQ
  333 00000364 E92D0007        stmfd            r13!, {r0-r2}
  334 00000368         
  335 00000368 E10F1000        mrs              r1, cpsr
  336 0000036C E201201F        and              r2, r1, #0x1F
  337 00000370 E3520012        cmp              r2, #0x12   ; see if currently 
                                                            in IRQ mode
  338 00000374 1A000001        bne              enableIRQ   ; If not in IRQ mod

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -