TRIMUI SMART >> Assembly
PWM0
參考資訊:
1. pdf
PWM0位於PB4
PWM有兩種運作方式:
PWM位址
CTL
PERIOD
main.s
.global _start .equ PWM_BASE, 0x01c21400 .equ GPIO_BASE, 0x01c20800 .equ PB_CFG0, (GPIO_BASE + (0x24 * 1) + 0x00) .equ PWM_CH_CTRL, 0x00 .equ PWM_CH0_PERIOD, 0x04 .arm .text _start: .long 0xea000016 .byte 'e', 'G', 'O', 'N', '.', 'B', 'T', '0' .long 0, __spl_size .byte 'S', 'P', 'L', 2 .long 0, 0 .long 0, 0, 0, 0, 0, 0, 0, 0 .long 0, 0, 0, 0, 0, 0, 0, 0 _vector: b reset b . b . b . b . b . b . b . reset: ldr r0, =PB_CFG0 ldr r1, =0x20000 str r1, [r0] ldr r0, =PWM_BASE ldr r1, =(1 << 4) | (12 << 0) str r1, [r0, #PWM_CH_CTRL] ldr r1, =(1 << 6) | (1 << 4) | (12 << 0) str r1, [r0, #PWM_CH_CTRL] ldr r1, =(666 << 16) | (333 << 0) str r1, [r0, #PWM_CH0_PERIOD] 0: nop b 0b .end
完成