1 ;;/*********************************************************************************************************************
\r
3 ;;* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products.
\r
4 ;;* No other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all
\r
5 ;;* applicable laws, including copyright laws.
\r
6 ;;* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIESREGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED
\r
7 ;;* OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
\r
8 ;;* NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY
\r
9 ;;* LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE FOR ANY DIRECT,
\r
10 ;;* INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR
\r
11 ;;* ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
\r
12 ;;* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability
\r
13 ;;* of this software. By using this software, you agree to the additional terms and conditions found by accessing the
\r
15 ;;* http://www.renesas.com/disclaimer
\r
17 ;;* Copyright (C) 2015 Renesas Electronics Corporation. All rights reserved.
\r
18 ;;*********************************************************************************************************************/
\r
20 ;;**********************************************************************************************************************
\r
21 ;;* File Name : r_cg_reset_program.asm
\r
22 ;;* Version : Code Generator for RX231 V1.00.00.03 [10 Jul 2015]
\r
23 ;;* Device(s) : R5F52318AxFP
\r
24 ;;* Tool-Chain : GCCRX
\r
25 ;;* Description : This is start up file for RX.
\r
26 ;;* Creation Date: 23/09/2015
\r
27 ;;**********************************************************************************************************************
\r
34 .global _PowerON_Reset ;;global Start routine
\r
36 .extern _HardwareSetup ;;external Sub-routine to initialise Hardware
\r
50 ;;initialise user stack pointer
\r
53 ;;initialise interrupt stack pointer
\r
57 ;; setup exception vector
\r
58 mvtc #_ExceptVectors, extb ;;EXCEPTION VECTOR ADDRESS
\r
61 mvtc #_rvectors_start, intb ;;INTERRUPT VECTOR ADDRESS definition
\r
66 ;;load data section from ROM to RAM
\r
68 mov #_mdata,r2 ;;src ROM address of data section in R2
\r
69 mov #_data,r1 ;;dest start RAM address of data section in R1
\r
70 mov #_edata,r3 ;;end RAM address of data section in R3
\r
71 sub r1,r3 ;;size of data section in R3 (R3=R3-R1)
\r
72 smovf ;;block copy R3 bytes from R2 to R1
\r
74 ;;bss initialisation : zero out bss
\r
76 mov #00h,r2 ;;load R2 reg with zero
\r
77 mov #_ebss, r3 ;;store the end address of bss in R3
\r
78 mov #_bss, r1 ;;store the start address of bss in R1
\r
79 sub r1,r3 ;;ize of bss section in R3 (R3=R3-R1)
\r
81 ;;call the hardware initialiser
\r
82 bsr.a _HardwareSetup
\r
86 mvtc #10000h, psw ;;Set Ubit & Ibit for PSW
\r
88 ;;change PSW PM to user-mode
\r
90 ;;DO NOT CHANGE TO USER MODE OR #00100000h,R1
\r
101 ;;start user program
\r
106 .global _rx_run_preinit_array
\r
107 .type _rx_run_preinit_array,@function
\r
108 _rx_run_preinit_array:
\r
109 mov #__preinit_array_start,r1
\r
110 mov #__preinit_array_end,r2
\r
111 bra.a _rx_run_inilist
\r
113 .global _rx_run_init_array
\r
114 .type _rx_run_init_array,@function
\r
115 _rx_run_init_array:
\r
116 mov #__init_array_start,r1
\r
117 mov #__init_array_end,r2
\r
119 bra.a _rx_run_inilist
\r
121 .global _rx_run_fini_array
\r
122 .type _rx_run_fini_array,@function
\r
123 _rx_run_fini_array:
\r
124 mov #__fini_array_start,r2
\r
125 mov #__fini_array_end,r1
\r
147 .section .init,"ax"
\r
153 .section .fini,"ax"
\r
158 bsr.a _rx_run_fini_array
\r
167 .global ___dso_handle
\r
168 .weak ___dso_handle
\r
172 .section .init,"ax"
\r
173 bsr.a _rx_run_preinit_array
\r
174 bsr.a _rx_run_init_array
\r
177 .global __rx_init_end
\r
180 .section .fini,"ax"
\r
183 .global __rx_fini_end
\r