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

📄 cstartup.paf.arm

📁 ARM入门的好帮手.包含了从简单到相对较复杂的程序.
💻 ARM
📖 第 1 页 / 共 5 页
字号:

#line 62

#line 62

#line 62

#line 62

#line 62

#line 62

#line 62

#line 62

#line 62

#line 62

#line 62
#define IRQ_STACK_SIZE           (3*8*4)     
#line 62
#define FIQ_STACK_SIZE           (3*4)       
#line 62
#define ABT_STACK_SIZE           (1*4)       
#line 62
#define UND_STACK_SIZE           (1*4)       
#line 62

#line 62

#line 62

#line 62

#line 62

#line 62

#line 62

#line 62

#line 62

#line 62

#line 62
#define TOP_EXCEPTION_STACK          RAM_LIMIT           
#line 62
#define TOP_APPLICATION_STACK        EXT_SRAM_LIMIT      
#line 62

#line 62

#line 62

#line 62

#line 62
                ldr     r0, =TOP_EXCEPTION_STACK
#line 62

#line 62

#line 62
                msr     CPSR_c, ARM_MODE_FIQ | I_BIT | F_BIT
#line 62
                mov     r13, r0                     
#line 62
                sub     r0, r0, FIQ_STACK_SIZE
#line 62

#line 62

#line 62
                msr     CPSR_c, ARM_MODE_IRQ | I_BIT | F_BIT
#line 62
                mov     r13, r0                     
#line 62
                sub     r0, r0, IRQ_STACK_SIZE
#line 62

#line 62

#line 62
                msr     CPSR_c, ARM_MODE_ABORT | I_BIT | F_BIT
#line 62
                mov     r13, r0                     
#line 62
                sub     r0, r0, ABT_STACK_SIZE
#line 62

#line 62

#line 62
                msr     CPSR_c, ARM_MODE_UNDEF | I_BIT | F_BIT
#line 62
                mov     r13, r0                     
#line 62
                sub     r0, r0, UND_STACK_SIZE
#line 62

#line 62

#line 62
                msr     CPSR_c, ARM_MODE_SVC | I_BIT | F_BIT
#line 62
                mov     r13, r0                     
#line 62

#line 62

#line 62

#line 62

#line 62

#line 62

#line 62

#line 62

#line 62

#line 62
                msr     CPSR_c, ARM_MODE_USER      
#line 62
                ldr     r13, =TOP_APPLICATION_STACK 
#line 62
                
#line 62

#line 62

#line 62

#line 62
 
#line 62
 
#line 62
 
#line 62
 .weak __ghsbegin_bss
#line 62
 .weak __ghsend_bss
#line 62
 
#line 62
                ldr         r1, =__ghsend_bss     
#line 62
                ldr         r3, =__ghsbegin_bss   
#line 62
 		mov         r2, 0
#line 62
LoopZI          
#line 62
 		cmp         r3, r1                 
#line 62
                strcc       r2, [r3], 4
#line 62
                bcc         LoopZI      
#line 62
 
#line 62
 
#line 62
 
#line 62
 .weak __ghsbegin_sbss
#line 62
 .weak __ghsend_sbss
#line 62
 
#line 62
                ldr         r1, =__ghsend_sbss    
#line 62
                ldr         r3, =__ghsbegin_sbss  
#line 62
 		mov         r2, 0
#line 62
LoopZI2          
#line 62
 		cmp         r3, r1                 
#line 62
                strcc       r2, [r3], 4
#line 62
                bcc         LoopZI2      
#line 62
 
#line 62
 
#line 62
 
#line 62
 .weak __ghsbegin_data
#line 62
 .weak __ghsend_data
#line 62
 .weak __ghsbegin_romdata
#line 62
 
#line 62
                ldr         r0, =__ghsbegin_romdata 
#line 62
                ldr         r1, =__ghsbegin_data    
#line 62
                ldr         r3, =__ghsend_data      
#line 62
LoopRW
#line 62
 		cmp         r1, r3                  
#line 62
                ldrcc       r2, [r0], 4
#line 62
 		strcc       r2, [r1], 4
#line 62
                bcc         LoopRW      
#line 62

#line 62

#line 62

#line 62

#line 62

#line 62

#line 62

#line 62

#line 62
                IMPORT      main
#line 62

#line 62
                ldr         r0, =main
#line 62
                mov         lr, pc
#line 62
                bx          r0
#line 62

#line 62

#line 62

#line 62

#line 62

#line 62

#line 62

#line 62
End
#line 62
                b           End
#line 62
                
#line 62
.type __main, $function
#line 62
.size __main,.-__main
#line 62
                
#line 62
            /*END*/
#line 62

#line 62
#line 63
#line 63

#line 64

#line 65

#line 66

#line 67

#line 68
__low_level_init
#line 69

#line 70

#line 71

#line 72

#line 73

#line 74

#line 75

#line 76
                #if  defined(SRAM_TEST_ENABLE      )
#line 77

#line 78
                mov     r0, 0          
#line 79
                ldr r1, =0x00040000     
#line 80
                mov r2, r0              
#line 81
                mvn r3, r0              
#line 82
                mov r4, r0              
#line 83
                mov r5, r0              
#line 84
                mov r6, r0              
#line 85
        
#line 86

#line 87

#line 88

#line 89
w0_loop0_pass1
#line 90

#line 91
        cmp r6, r1
#line 92
        beq r0_loop1_pass1
#line 93
        str r2, [r6]
#line 94
        add r6, r6,4
#line 95
        b   w0_loop0_pass1
#line 96
        
#line 97

#line 98

#line 99
r0_loop1_pass1
#line 100

#line 101
        sub r6, r1,4
#line 102
        sub r7, r0,4
#line 103
        
#line 104
r0_loop_1_pass1
#line 105

#line 106
        cmp r6, r7
#line 107
        beq r1_loop2_pass1
#line 108
        
#line 109
        ldr r5, [r6]
#line 110
        cmp r5, r2
#line 111
        beq w1_loop1_pass1
#line 112
        add r4, r4,1
#line 113
        
#line 114
w1_loop1_pass1
#line 115

#line 116
        str r3, [r6]
#line 117
        sub r6, r6,4
#line 118
        b   r0_loop_1_pass1
#line 119
        
#line 120
        
#line 121

#line 122
r1_loop2_pass1
#line 123
        
#line 124
        mov r6, r0
#line 125
        
#line 126
r1_loop_pass1     
#line 127

#line 128
        cmp r6, r1
#line 129
        beq r1_w0_loop3_pass1
#line 130
        
#line 131
        ldr r5, [r6]
#line 132
        cmp r5, r3
#line 133
        
#line 134
        beq w0_loop2_pass1
#line 135
        add r4, r4,1
#line 136
        
#line 137
w0_loop2_pass1
#line 138

#line 139
        str r2, [r6]
#line 140

#line 141

#line 142
        ldr r5, [r6]
#line 143
        cmp r5, r2
#line 144
        beq w1_loop2_pass1
#line 145
        
#line 146
        add r4, r4,1
#line 147
        
#line 148
w1_loop2_pass1
#line 149

#line 150
        str r3, [r6]
#line 151
        add r6, r6,4
#line 152
        
#line 153
        b   r1_loop_pass1
#line 154
        
#line 155

#line 156
r1_w0_loop3_pass1
#line 157

#line 158
        mov r6, r0
#line 159

#line 160
r1_loop3_pass1
#line 161

#line 162
        cmp r6, r1
#line 163
        beq r0_w1_r1_w0_loop4_pass1
#line 164
        
#line 165
        ldr r5, [r6]
#line 166
        cmp r5, r3
#line 167
        beq w0_loop3_pass1
#line 168
        
#line 169
        add r4, r4,1
#line 170
        
#line 171
w0_loop3_pass1
#line 172

#line 173
        str r2, [r6]
#line 174
        add r6, r6,4
#line 175
        b   r1_loop3_pass1
#line 176
        
#line 177

#line 178
r0_w1_r1_w0_loop4_pass1
#line 179
        
#line 180
        mov r6, r0
#line 181

#line 182
r0_loop4_pass1
#line 183

#line 184
        cmp r6, r1
#line 185
        beq r0_loop5_pass1
#line 186
        
#line 187
        ldr r5, [r6]
#line 188
        cmp r5, r2
#line 189
        beq w1_loop4_pass1
#line 190
        add r4,r4,1
#line 191
        
#line 192
w1_loop4_pass1
#line 193

#line 194
        str r3, [r6]
#line 195
        
#line 196
r1_loop4_pass1
#line 197

#line 198
        ldr r5, [r6]
#line 199
        cmp r5, r3
#line 200
        beq w0_loop4_pass1
#line 201
        add r4, r4,1
#line 202
        
#line 203
w0_loop4_pass1
#line 204

#line 205
        str r2, [r6]
#line 206
        add r6, r6,4
#line 207
        
#line 208
        b   r0_loop4_pass1
#line 209

#line 210

#line 211
r0_loop5_pass1
#line 212

#line 213
        mov r6, r0
#line 214
        
#line 215
r0_loop_pass1
#line 216

#line 217
        cmp r6, r1
#line 218
        beq write_result_pass1
#line 219
        
#line 220
        ldr r5, [r6]
#line 221
        add r6, r6,4
#line 222
        cmp r5, r2
#line 223
        beq r0_loop_pass1
#line 224
        add r4, r4,1
#line 225
        b   r0_loop_pass1
#line 226
        
#line 227
        
#line 228
write_result_pass1
#line 229

#line 230

#line 231
        cmp r4, 0
#line 232
        bne test_failed_pass1
#line 233
        ldr r0,=0x0000BEAD
#line 234
        ldr r1,=0x20000
#line 235
        str r0,[r1]
#line 236
        b   march_lr_end_pass1
#line 237
    
#line 238

#line 239
test_failed_pass1
#line 240

#line 241
        ldr r0,=0x00000BAD
#line 242
        ldr r1,=0x20000
#line 243
        str r0,[r1]
#line 244

#line 245
march_lr_end_pass1                
#line 246

#line 247

#line 248

#line 249

#line 250

#line 251

#line 252
                mov r0, 0              
#line 253
                ldr r1, =0x00040000     
#line 254
                ldr r2, =0x55555555     
#line 255
                mvn r3, r2              
#line 256
                mov r4, r0              
#line 257
                mov r5, r0              
#line 258
                mov r6, r0              
#line 259
        
#line 260

#line 261

#line 262

#line 263
w0_loop0_pass2
#line 264

#line 265
        cmp r6, r1
#line 266
        beq r0_loop1_pass2
#line 267
        str r2, [r6]
#line 268
        add r6, r6,4
#line 269
        b   w0_loop0_pass2
#line 270
        
#line 271

#line 272

#line 273
r0_loop1_pass2
#line 274

#line 275
        sub r6, r1,4
#line 276
        sub r7, r0,4
#line 277
        
#line 278
r0_loop_1_pass2
#line 279

#line 280
        cmp r6, r7
#line 281
        beq r1_loop2_pass2
#line 282
        
#line 283
        ldr r5, [r6]
#line 284
        cmp r5, r2
#line 285
        beq w1_loop1_pass2
#line 286
        add r4, r4,1
#line 287
        
#line 288
w1_loop1_pass2
#line 289

#line 290
        str r3, [r6]
#line 291
        sub r6, r6,4
#line 292
        b   r0_loop_1_pass2
#line 293
        
#line 294
        
#line 295

#line 296
r1_loop2_pass2
#line 297
        
#line 298
        mov r6, r0
#line 299
        
#line 300
r1_loop_pass2     
#line 301

#line 302
        cmp r6, r1
#line 303
        beq r1_w0_loop3_pass2
#line 304
        
#line 305
        ldr r5, [r6]
#line 306
        cmp r5, r3
#line 307
        
#line 308
        beq w0_loop2_pass2
#line 309
        add r4, r4,1
#line 310
        
#line 311
w0_loop2_pass2
#line 312

#line 313
        str r2, [r6]
#line 314

#line 315

#line 316
        ldr r5, [r6]
#line 317
        cmp r5, r2
#line 318
        beq w1_loop2_pass2
#line 319
        
#line 320
        add r4, r4,1
#line 321
        
#line 322
w1_loop2_pass2
#line 323

#line 324
        str r3, [r6]
#line 325
        add r6, r6,4
#line 326
        
#line 327
        b   r1_loop_pass2
#line 328
        
#line 329

#line 330
r1_w0_loop3_pass2
#line 331

#line 332
        mov r6, r0
#line 333

#line 334
r1_loop3_pass2
#line 335

#line 336
        cmp r6, r1
#line 337
        beq r0_w1_r1_w0_loop4_pass2
#line 338
        
#line 339
        ldr r5, [r6]
#line 340
        cmp r5, r3
#line 341
        beq w0_loop3_pass2
#line 342
        
#line 343
        add r4, r4,1
#line 344
        
#line 345
w0_loop3_pass2
#line 346

#line 347
        str r2, [r6]
#line 348
        add r6, r6,4
#line 349
        b   r1_loop3_pass2
#line 350
        
#line 351

#line 352
r0_w1_r1_w0_loop4_pass2
#line 353
        
#line 354
        mov r6, r0
#line 355

#line 356
r0_loop4_pass2
#line 357

#line 358
        cmp r6, r1
#line 359
        beq r0_loop5_pass2
#line 360
        
#line 361
        ldr r5, [r6]
#line 362
        cmp r5, r2
#line 363
        beq w1_loop4_pass2
#line 364
        add r4,r4,1
#line 365
        
#line 366
w1_loop4_pass2
#line 367

#line 368
        str r3, [r6]
#line 369
        
#line 370
r1_loop4_pass2
#line 371
        
#line 372
        ldr r5, [r6]
#line 373
        cmp r5, r3
#line 374
        beq w0_loop4_pass2
#line 375
        add r4, r4,1
#line 376
        
#line 377
w0_loop4_pass2
#line 378

#line 379
        str r2, [r6]
#line 380
        add r6, r6,4
#line 381
        
#line 382
        b   r0_loop4_pass2
#line 383
        
#line 384

#line 385

#line 386
r0_loop5_pass2
#line 387

#line 388
        mov r6, r0
#line 389
        
#line 390
r0_loop_pass2
#line 391

#line 392
        cmp r6, r1
#line 393
        beq write_result_pass2
#line 394
        
#line 395
        ldr r5, [r6]
#line 396
        add r6, r6,4
#line 397
        cmp r5, r2
#line 398
        beq r0_loop_pass2
#line 399
        add r4, r4,1
#line 400
        b   r0_loop_pass2
#line 401
        
#line 402
        
#line 403
write_result_pass2
#line 404

#line 405

#line 406
        cmp r4, 0
#line 407
        bne test_failed_pass2
#line 408
        ldr r0,=0x0000BEAD
#line 409
        ldr r1,=0x20004
#line 410
        str r0,[r1]
#line 411
        b   march_lr_end_pass2
#line 412
    
#line 413

#line 414
test_failed_pass2
#line 415

#line 416
        ldr r0,=0x00000BAD
#line 417
        ldr r1,=0x20004
#line 418
        str r0,[r1]
#line 419
march_lr_end_pass2                
#line 420

#line 421

#line 422
        #endif           
#line 423

#line 424

#line 425

#line 426

#line 427

#line 428
                mov         pc,r14              
#line 429
                #endif                           
#line 430

#line 431
 
#line 432

#line 433
        /*END*/
#line 434

⌨️ 快捷键说明

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