1 /***********************************************************************/
3 /* PROJECT NAME : RTOSDemo */
4 /* FILE : reset_program.asm */
5 /* DESCRIPTION : Reset Program */
6 /* CPU SERIES : RL78 - G14 */
7 /* CPU TYPE : R5F104PJ */
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
51 /* call the hardware initialiser */
55 /* load data section from ROM to RAM */
\r
56 ;; block move to initialize .data
\r
58 ;; we're copying from 00:[_romdatastart] to 0F:[_datastart]
\r
59 ;; and our data is not in the mirrored area.
\r
61 sel rb0 /* ;;bank 0 */
\r
62 movw de, #_mdata /* src ROM address of data section in de */
\r
63 movw hl, #_data /* dest start RAM address of data section in hl */
\r
65 sel rb1 /* bank 1 */
\r
66 movw hl, #_data /* dest start RAM address of data section in hl */
\r
67 movw ax, #_edata /* ;; size of romdata section in ax */
\r
68 subw ax,hl /* store data size */
\r
71 cmpw ax, #0 /* check if end of data */
\r
74 sel rb0 /* bank 0 */
\r
81 sel rb1 /* bank 1 - compare and decrement*/
\r
86 /* bss initialisation : zero out bss */
\r
87 sel rb0 /* bank 0 */
\r
88 movw hl, #_bss /* store the start address of bss in hl */
\r
89 movw ax, #0 /* load AX reg with zero */
\r
90 sel rb1 /* bank 1 */
\r
91 movw ax, #_ebss /* store the end address (size of) bss section in ax */
\r
92 subw ax,hl ;; store data size
\r
98 sel rb0 /* bank 0 */
\r
105 sel rb0 /* bank 0 */
\r
107 /* start user program */
\r