📄 initsct.h
字号:
/***********************************************************************/
/* */
/* FILE :initsct.h */
/* DATE :Wed, Nov 19, 2008 */
/* DESCRIPTION :define the macro for initialization of sections. */
/* CPU GROUP :1B */
/* */
/* This file is generated by Renesas Project Generator (Ver.4.8). */
/* */
/***********************************************************************/
/***********************************************************
* COMPILER for R8C/Tiny
*
* Copyright(c) 2004 Renesas Technology Corp.
* And Renesas Solutions Corp.,All Rights Reserved.
*
* initsct.h
*
* clear for bss section
* transfer initialized data to data section
*
* note: Do not modify
*
* $Date: 2007/01/31 03:16:12 $
* $Revision: 1.9.4.2 $
**********************************************************/
#include "cstartdef.h"
#pragma section program interrupt
#if __WATCH_DOG__ != 1
#define scopy(X,Y,Z) _asm(" .initsct "X","Y","Z"\n"\
" .initsct "X"I,rom"Y",noalign\n"\
" mov.w #(topof "X"I)&0ffffH,A0\n"\
" mov.b #00H,R1H\n"\
" mov.w #(topof "X")&0ffffH,A1\n"\
" mov.w #sizeof "X",R3\n"\
" smovf.b");
#define sclear(X,Y,Z) _asm(" .initsct "X","Y","Z"\n"\
" mov.b #00H,R0L\n"\
" mov.w #(topof "X") ,A1\n"\
" mov.w #sizeof "X",R3\n"\
" sstr.b");
#else
#define scopy(X,Y,Z) _asm(" .initsct "X","Y","Z"\n"\
" .initsct "X"I,rom"Y",noalign\n"\
" scopy "X"I,"X"");
#define sclear(X,Y,Z) _asm(" .initsct "X","Y","Z"\n"\
" N_BZERO "X"");
#endif
#define scopy_f(X,Y,Z) _asm(" .initsct "X","Y","Z"\n"\
" .initsct "X"I,rom"Y",noalign\n"\
" push.w #(sizeof "X") >> 16\n"\
" push.w #(sizeof "X") & 0ffffH\n"\
" push.w #(topof "X") >> 16\n"\
" push.w #(topof "X") & 0ffffH\n"\
" push.w #(topof "X"I) >> 16\n"\
" push.w #(topof "X"I) & 0ffffH\n"\
" .stk 12\n"\
" .glb _bcopy\n"\
" .call _bcopy,G\n"\
" jsr.a _bcopy\n"\
" add.b #12,sp\n"\
" .stk -12");
#define sclear_f(X,Y,Z) _asm(" .initsct "X","Y","Z"\n"\
" push.w #(sizeof "X")>>16\n"\
" push.w #(sizeof "X")&0ffffH\n"\
" push.w #(topof "X")>>16\n"\
" push.w #(topof "X")&0ffffH\n"\
" .stk 8\n"\
" .glb _bzero\n"\
" .call _bzero,G\n"\
" jsr.a _bzero\n"\
" add.b #8H,sp\n"\
" .stk -8");
#if __WATCH_DOG__ == 1
#pragma ASM
scopy .macro FROM_,TO_
mov.b #00,0DH
mov.b #0ffH,0DH
mov.w #0000H,R0
.local M1
M1:
cmp.w #sizeof TO_,R0
.local M2
jeq M2
cmp.w #0064H,R0
.local M3
jne M3
mov.b #00,0DH
mov.b #0ffH,0DH
M3:
mov.w #(topof FROM_)&0ffffH,A0
mov.w #(topof TO_)&0ffffH,A1
add.w R0,A0
add.w R0,A1
mov.b [A0],[A1]
add.w #1,R0
jmp M1
M2:
.endm
N_BZERO .macro SECT_
mov.b #00,0DH
mov.b #0ffH,0DH
mov.w #0000H,R0
.local M1
M1:
cmp.w #sizeof SECT_,R0
.local M2
jeq M2
cmp.w #0064H,R0
.local M3
jne M3
mov.b #00,0DH
mov.b #0ffH,0DH
M3:
mov.w #(topof SECT_)&0ffffH,A0
add.w R0,A0
mov.b #00H,[A0]
add.w #1H,R0
jmp M1
M2:
.endm
#pragma ENDASM
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -