1 #ifndef __ZBOOT_MACRO_H 2 #define __ZBOOT_MACRO_H 3 4 /* The LIST command is used to include comments in the script */ 5 .macro LIST comment 6 .endm 7 8 /* The ED command is used to write a 32-bit word */ 9 .macro ED, addr, data 10 LDR r0, 1f 11 LDR r1, 2f 12 STR r1, [r0] 13 B 3f 14 1 : .long \addr 15 2 : .long \data 16 3 : 17 .endm 18 19 /* The EW command is used to write a 16-bit word */ 20 .macro EW, addr, data 21 LDR r0, 1f 22 LDR r1, 2f 23 STRH r1, [r0] 24 B 3f 25 1 : .long \addr 26 2 : .long \data 27 3 : 28 .endm 29 30 /* The EB command is used to write an 8-bit word */ 31 .macro EB, addr, data 32 LDR r0, 1f 33 LDR r1, 2f 34 STRB r1, [r0] 35 B 3f 36 1 : .long \addr 37 2 : .long \data 38 3 : 39 .endm 40 41 /* The WAIT command is used to delay the execution */ 42 .macro WAIT, time, reg 43 LDR r1, 1f 44 LDR r0, 2f 45 STR r0, [r1] 46 10 : 47 LDR r0, [r1] 48 CMP r0, #0x00000000 49 BNE 10b 50 NOP 51 B 3f 52 1 : .long \reg 53 2 : .long \time * 100 54 3 : 55 .endm 56 57 /* The DD command is used to read a 32-bit word */ 58 .macro DD, start, end 59 LDR r1, 1f 60 B 2f 61 1 : .long \start 62 2 : 63 .endm 64 65 #endif /* __ZBOOT_MACRO_H */ 66