-
-;=========================================================================================
-; 7.8 Copy code from Flash to I-RAM
-;=========================================================================================
-#if I_RAM == ON
- LDI #_RAM_IRAM, R0
- LDI #_ROM_IRAM, R1
- LDI #sizeof(IRAM), R13
- CMP #0, R13
- BEQ copy_iram_end
-copy_iram1:
- ADD #-1, R13
- LDUB @(R13, R1), R12
- BNE:D copy_iram1
- STB R12, @(R13, R0)
-copy_iram_end:
- ClearRCwatchdog
-#endif
-
-;=========================================================================================
-; Standard C startup
-;=========================================================================================
-;=========================================================================================
-; 7.10 Clear data
-;=========================================================================================
-; clear DATA section
-; According to ANSI, the DATA section must be cleared during start-up
- LDI:8 #0, R0
- LDI #sizeof DATA &~0x3, R1
- LDI #DATA, R13
- CMP #0, R1
- BEQ data_clr1
-data_clr0:
- ADD2 #-4, R1
- BNE:D data_clr0
- ST R0, @(R13, R1)
-data_clr1:
- LDI:8 #sizeof DATA & 0x3, R1
- LDI #DATA + (sizeof DATA & ~0x3), R13
-
- CMP #0, R1
- BEQ data_clr_end
-data_clr2:
- ADD2 #-1, R1
- BNE:D data_clr2
- STB R0, @(R13, R1)
-data_clr_end:
- ClearRCwatchdog