|
本帖最后由 shinety53 于 2009-10-21 00:07 编辑
写了一个UART的简单程序。
GET s3c2440_reg.inc
AREA pwm_led , CODE , READONLY
CODE32
ENTRY
ResetEntry
;watch dog disable
ldr r0, =WTCON
mov r1, #0x0
str r1, [r0]
;all interrupt disable
ldr r0, =INTMSK
mov r1, #0xffffffff
str r1,[r0]
;all sub interrupt disable
ldr r0, =INTSUBMSK
ldr r1, =0x7ffff
str r1, [r0]
ldr r0 , =GPHCON
ldr r1 , =0xaa
str r1 , [r0]
ldr r0 , =GPHUP
ldr r1 , =0x0f
str r1 , [r0]
ldr r0 , =ULCON0
ldr r1 , =0x03
str r1 , [r0]
ldr r0 , =UCON0
ldr r1 , =0x05
str r1 , [r0]
ldr r0 , =UFCON0
ldr r1 , =0x00
str r1 , [r0]
ldr r0 , =UMCON0
ldr r1 , =0x00
str r1 , [r0]
ldr r0 , =UMCON0
ldr r1 , =0x00
str r1 , [r0]
ldr r0 , =UBRDIV0
ldr r1 , =0x4d
str r1 , [r0]
ldr r3 , =0x41
LOOP
ldr r0 , =UTRSTAT0
ldr r1 , [r0]
ands r1 ,r1 ,#0x02
beq LOOP
ldr r0 , =UTXH0_s
str r3 , [r0]
add r3 ,r3 , #0x01
cmp r3 , #0x7a
bls LOOP
mov r3 , #0x41
b LOOP
b .
END
先不管循环的代码不是有问题。编译好后用AXD单步调试,就是不见UTXH0_s里面写进数据了。UTXH0_s是发送寄存器的地址,为0x50000020。
使用的是小端模式。
这样配置的:
-info totals -entry 0x30000000 -ro-base 0x30000000 -first uart.o
感觉整个流程都没问题啊。
还是我哪个地方没有设置到?
请知道的兄弟指点一下。谢谢。 |
|