芯片复制ARM S2C2410A控制
芯片复制S3C2410A还是S3C2440A,其IO口B都是11位二进制数,xxx xxxx xxxx,现在控制第5、6、7、8为做输出点亮LED灯(共阳极,输出0点亮),即xx8 765x xxxx,GPBCON equ 0x56000010
GPBDAT equ 0x56000014
GPBUP equ 0x56000018
xport xmain
area Init,code,readonly
entry
export
xmain
ldr r0,=GPBCON
ldr r1,[r0]
bic r1,#0x3fC00 ;r1=xx00 0000 00xx xxxx xxxx
orr r1,#0x15400 ;r1=xx01 0101 01xx xxxx xxxx
str r1,[r0] ;r1传给GPBCON设置8765位为输出
ldr r0,=GPBUP
ldr r1,[r0]
orr r1,#0x1e0 ;r1=xx1 111x xxxx
str r1,[r0] ;开B口第8、7、6、5位上拉电阻
ldr r0,=GPBDAT
ldr r2,[r0] ;把B口最初状态保存在R2
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
芯片复制LOOP dr r1,[r2]
orr r1,#0x1c0
str r1,[r0]
bl delay ;BL跳转时将PC+4值自动保存在R14即LR中,也就是将程序的下一个语句地址保存在lr中
;在转移的程序后执行mov pc,lr相当于返回,这样BL相当于调用子程序,pc=lr相当于子程序返回
;;;;;;;;;;;;;;;;;;
dr r1,[r2]
orr r1,#0x1a0
str r1,[r0]
bl delay
;;;;;;;;;;;;;;;;;;;;;
ldr r1,[r2]
orr r1,#0x160
str r1,[r0]
bl delay
;;;;;;;;;;;;;;;;;;;;;;;;
ldr r1,[r2]
orr r1,#0x0e0
str r1,[r0]
bl delay
;;;;;;;;;;;;;;;;;;;;;;;;
b LOOP
delay
mov r3,#3
delay1 sub r3,r3,#1
cmp r3,#0x0
bne delay1
mov pc,lr ;这句相当于子程序返回语句
end

芯片解密