AT91SAM7S64 >> Assembly

LED


參考資訊:
1. pdf
2. pid
3. sam7s_samples

Enable


Output


Output High


Output Low


main.s

  .equ PMC_PCER, 0xfffffc10
  .equ PIO_PER,  0xfffff400
  .equ PIO_OER,  0xfffff410
  .equ PIO_SODR, 0xfffff430
  .equ PIO_CODR, 0xfffff434
 
  .text
  .align 2
  .global _start
_start:    b reset
_undef:    b .
_swi:      b .
_pabort:   b .
_dabort:   b .
_reserved: b .
_irq:      b .
_fiq:      b .

reset:
  ldr r0, =PMC_PCER
  ldr r1, =4
  str r1, [r0]
 
  ldr r0, =PIO_PER
  ldr r1, =0x40000
  str r1, [r0]
  
  ldr r0, =PIO_OER
  ldr r1, =0x40000
  str r1, [r0]
 
loop:
  ldr r0, =PIO_SODR
  ldr r1, =0x40000
  str r1, [r0]
  mov r4, #0x300
1:
  subs r4, #1
  bne 1b
 
  ldr r0, =PIO_CODR
  ldr r1, =0x40000
  str r1, [r0]
  mov r4, #0x300
1:
  subs r4, #1
  bne 1b
  b loop
  .end

main.ld

MEMORY
{
  ram : ORIGIN = 0x00200000, LENGTH = 16K
  rom : ORIGIN = 0x00100000, LENGTH = 64K
}

SECTIONS
{
  .text : { *(.text*) } > rom
  .bss : { *(.bss*) } > ram
}

Makefile

all: main.bin

main.o: main.s
	arm-none-eabi-as main.s -o main.o

main.bin: main.o main.ld
	arm-none-eabi-ld main.o -T main.ld -o main.elf
	arm-none-eabi-objdump -D main.elf > main.list
	arm-none-eabi-objcopy main.elf main.bin -O binary

clean:
	rm -f *.bin *.o *.elf *.list

完成


返回上一頁