.text
.global _start
_start:
b reset
ldr pc, _undifined_instruction
ldr pc, _software_interrupt
ldr pc, _prefetch_abort
ldr pc, _data_abort
ldr pc, _not_used
ldr pc, _irq
ldr pc, _fiq



_undifined_instruction: .word undifined_instruction
_software_interrupt: .word software_interrupt
_prefetch_abort: .word prefetch_abort
_data_abort: .word data_abort
_not_used: .word not_used
_irq: .word irq
_fiq: .word reset


undifined_instruction:
nop


software_interrupt:
nop

prefetch_abort:
nop

data_abort:
nop


not_used:
nop


irq:
nop


fiq:
nop


reset:
bl set_svc
bl disable_watchdog
bl disable_interrupt
bl disable_mmu
bl light_led


set_svc:
mrs r0, cpsr
bic r0, r0,#0x1f
orr r0, r0,#0xd3
msr cpsr, r0
mov pc, lr


#define pWTCON 0x53000000
disable_watchdog:
ldr r0, =pWTCON
mov r1, #0x0
str r1, [r0]
mov pc, lr


disable_interrupt:
mvn r1, #0x0
ldr r0, =0x4a000008
str r1, [r0]
mov pc, lr

disable_mmu:
mcr p15,0,r0,c7,c7,0
mrc p15,0,r0,c1,c0,0
bic r0, r0, #0x00000007
mcr p15,0,r0,c1,c0,0
mov pc, lr


#define GPBCON 0x56000010
#define GPBDAT 0x56000014
light_led:
ldr r0, =GPBCON
ldr r1, =0x15400
str r1, [r0]

ldr r0, =GPBDAT
ldr r1, = 0x6BF
str r1, [r0]
mov pc, lr

010101010000000000

     11000011111    5678的引脚输出低电平


led汇编



led汇编



led汇编


GPIOGeneral-Purpose Input /Output Ports):
通用输入/输出端口。在嵌入式系统中, CPU经常
需要控制许多结构简单的外部设备或者电路,这
些设备通常只要求两种状态
(/), 对这些设备
的控制,使用传统的串口或者USB口就显得复杂,
所以,在嵌入式微处理器上通常提供了一种“通
用可编程
I/O端口”,也就是GPIO 


一个GPIO端口至少需要两个寄存器,一个是
控制寄存器,用于选择该端口作为输入还是
输出。另一个是存放数据的
数据寄存器



相关文章:

  • 2022-01-22
  • 2022-02-11
  • 2021-12-26
  • 2021-05-11
  • 2022-12-23
  • 2021-11-03
  • 2021-08-17
  • 2022-12-23
猜你喜欢
  • 2022-01-21
  • 2022-12-23
  • 2021-12-13
  • 2022-12-23
  • 2022-01-11
  • 2021-08-01
  • 2021-06-09
相关资源
相似解决方案