1 /***********************************************************************/
3 /* PROJECT NAME : RTOSDemo */
4 /* FILE : reset_program.asm */
5 /* DESCRIPTION : Reset Program */
6 /* CPU SERIES : RL78 - G1C */
7 /* CPU TYPE : R5F10JBC */
9 /* This file is generated by e2studio. */
11 /***********************************************************************/
\r
15 /*reset_program.asm*/
\r
19 .global _PowerON_Reset /*! global Start routine */
\r
20 .short _PowerON_Reset
\r
24 .global ___dso_handle
\r
28 .extern _HardwareSetup /*! external Sub-routine to initialise Hardware*/
\r
39 /* ;; HL = start of list
\r
41 ;; BC = step direction (+2 or -2)
\r
46 /* call to _PowerON_Reset */
\r
48 /* initialise user stack pointer */
\r
49 movw sp,#_stack /* Set stack pointer */
\r
52 /* load data section from ROM to RAM */
\r
53 ;; block move to initialize .data
\r
55 ;; we're copying from 00:[_romdatastart] to 0F:[_datastart]
\r
56 ;; and our data is not in the mirrored area.
\r
58 sel rb0 /* ;;bank 0 */
\r
59 movw de, #_mdata /* src ROM address of data section in de */
\r
60 movw hl, #_data /* dest start RAM address of data section in hl */
\r
62 sel rb1 /* bank 1 */
\r
63 movw hl, #_data /* dest start RAM address of data section in hl */
\r
64 movw ax, #_edata /* ;; size of romdata section in ax */
\r
65 subw ax,hl /* store data size */
\r
68 cmpw ax, #0 /* check if end of data */
\r
71 sel rb0 /* bank 0 */
\r
78 sel rb1 /* bank 1 - compare and decrement*/
\r
83 /* bss initialisation : zero out bss */
\r
84 sel rb0 /* bank 0 */
\r
85 movw hl, #_bss /* store the start address of bss in hl */
\r
86 movw ax, #0 /* load AX reg with zero */
\r
87 sel rb1 /* bank 1 */
\r
88 movw ax, #_ebss /* store the end address (size of) bss section in ax */
\r
89 subw ax,hl ;; store data size
\r
95 sel rb0 /* bank 0 */
\r
102 sel rb0 /* bank 0 */
\r
104 /* call the hardware initialiser */
\r
105 call !!_HardwareSetup
\r
108 /* start user program */
\r