⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 resetprg.c

📁 瑞萨(Renesas)M16C系列芯片上实现接受摇控板控制的程序
💻 C
字号:
/***********************************************************************/
/*                                                                     */
/*  FILE        :resetprg.c                                            */
/*  DATE        :Sun, Jul 27, 2008                                     */
/*  DESCRIPTION :initialize for C language.                            */
/*  CPU GROUP   :62P                                                   */
/*                                                                     */
/*  This file is generated by Renesas Project Generator (Ver.4.8).     */
/*                                                                     */
/***********************************************************************/

/*********************************************************************
 *  STARTUP for M16C/60,30,20,10                                      
 *  Copyright(c) 2004 Renesas Technology Corp.
 *  And Renesas Solutions Corp.,All Rights Reserved.
 *  resetprg.c : startup file 
 *
 *  Function:initialize each function
 *
 *
 * $Date: 2006/09/29 05:40:30 $
 * $Revision: 1.9 $
 *********************************************************************/
#include "sfr62p.h"
#include "typedefine.h"
#include "resetprg.h"

extern _UINT    _stack_top,_istack_top;
//DEF_BANKSELECT;
DEF_SBREGISTER;

#pragma entry start
void start(void);
extern void initsct(void);
extern void _init(void);
void exit(void);
void main(void);

#pragma section program interrupt 

void start(void)
{
	_isp_	= &_istack_top; 	// set interrupt stack pointer
/*	
	prcr	= 0x02;		// change protect mode register
	pm0	= 0x00;		// set processor mode register
	prcr	= 0x00;		// change protect mode register
*/

	prcr = 0x03;		// change protect mode register
	pm1	= 0x08;		// set processor mode register
	cm0 = 0x0A;///////////////////////////
	cm1 = 0x20;//////////////////////////
	plc0 = 0x92;
	cm1 = 0x22;
	prcr = 0x00;

	_flg_	= __F_value__;	// set flag register
#if __STACKSIZE__!=0
	_sp_	= &_stack_top; 	// set user stack pointer
#endif
	_sb_	= 0x400;	// 400H fixation (Do not change)

	// set variable vector's address
	_asm("	ldc	#((topof vector)>>16)&0FFFFh,INTBH");
	_asm("	ldc	#(topof vector)&0FFFFh,INTBL");

	initsct();		// initlalize each sections
#if __STACKSIZE__!=0
	_sp_	= &_stack_top;	// set user stack pointer
#else
	_isp_	= &_istack_top;	// set interrupt stack pointer
#endif

#if __HEAPSIZE__ != 0
	heap_init();		// initialize heap 
#endif
#if __STANDARD_IO__ != 0
	_init();			// initialize standard I/O
#endif
	_fb_ = 0;	// initialize FB registe for debugger
	main();			// call main routine

	exit();		// call exit
}

void exit(void)
{
	while(1);		// infinite loop
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -