?? tmonitor_func.c
字號:
/*""FILE COMMENT""*************************************************************
* System Name : RENESAS T-Engine/micro T-Engine
* File Name : tmonitor_func.c
* Version : 1.00.00
* Contents : T-Monitor command function
* Model : SH7145 micro T-Engine
* CPU : SH7145F
* Compiler : Renesas SH-C
* OS : T-Kernel
* note : The Software is being delivered to you "AS IS"
* : and Renesas,whether explicitly or implicitly makes
* : no warranty as to its Use or performance.
* : RENESAS AND ITS SUPPLIER DO NOT AND CANNOT WARRANT
* : THE PERFORMANCE OR RESULTS YOU MAY OBTAIN BY USING
* : THE SOFTWARE. AS TO ANY MATTER INCLUDING WITHOUT
* : LIMITATION NONINFRINGEMENT OF THIRD PARTY RIGHTS,
* : MERCHANTABILITY, INTEGRATION, SATISFACTORY QUALITY,
* : OR FITNESS FOR ANY PARTICULAR PURPOSE.
*
* Copyright (c) 2004 RENESAS TECHNOLOGY CORP. All Rights Reserved.
* AND RENESAS SOLUTIONS CORP. All Rights Reserved.
* history : 2006.03.27 ver.1.00.00
*""FILE COMMENT END""*********************************************************/
#include "sh7145.h"
/* Sys Common information */
typedef struct {
void *iramtop; /* SH7145 Internal RAM free space top */
void *iramend; /* SH7145 Internal RAM free space end */
void *ramtop; /* RAM free space top */
void *ramend; /* RAM free space end */
unsigned short Sclk; /* SH7145 system clock (MHz) */
unsigned short Pclk; /* SH7145 peripheral clock (MHz) */
unsigned char *sysconf; /* SYSCONF top */
unsigned char *devconf; /* DEVCONF top */
} SystemInfo;
#define SysInfo ((SystemInfo *)0xFFFFE190)
/* function definition */
#define out_h(port, data) *(volatile unsigned short*)port = data
#define out_b(port, data) *(volatile unsigned char*)port = data
#define in_h(port) *(volatile unsigned short*)port
#define in_b(port) *(volatile unsigned char*)port
/*""FUNC COMMENT""*******************************************************
* ID :
* Outline : Initialize system common information
*-----------------------------------------------------------------------
* Include :
*-----------------------------------------------------------------------
* Definition : void init_scinfo(void)
*-----------------------------------------------------------------------
* Function : Initialize system common information
*-----------------------------------------------------------------------
* Argument : None
*-----------------------------------------------------------------------
* Return : None
*-----------------------------------------------------------------------
* Input : None
* Output : None
*-----------------------------------------------------------------------
* Used Func : None
*-----------------------------------------------------------------------
* Notice : None
*""FUNC COMMENT END""***************************************************/
void init_scinfo( void )
{
/* Set SysCommonInfo */
SysInfo->iramtop = (void *)0xFFFFE300; /* Inner SRAM */
SysInfo->iramend = (void *)0xFFFFF000; /* Inner SRAM */
SysInfo->ramtop = (void *)0x00302000; /* Outer SRAM */
SysInfo->ramend = (void *)0x00380000; /* Outer SRAM */
SysInfo->Pclk = (unsigned short)0x19; /* Peripheral clock=25MHz */
SysInfo->Sclk = (unsigned short)0x32; /* System clock=50MHz */
}
/*""FUNC COMMENT""*******************************************************
* ID :
* Outline : Initialize SCI1 for T-Monitor service functions
*-----------------------------------------------------------------------
* Include :
*-----------------------------------------------------------------------
* Definition : void init_sci(void)
*-----------------------------------------------------------------------
* Function : Initialize SCI1 for T-Monitor service functions
* : set UART mode,115200bps
*-----------------------------------------------------------------------
* Argument : None
*-----------------------------------------------------------------------
* Return : None
*-----------------------------------------------------------------------
* Input : None
* Output : None
*-----------------------------------------------------------------------
* Used Func : None
*-----------------------------------------------------------------------
* Notice : None
*""FUNC COMMENT END""***************************************************/
void init_sci( void )
{
volatile int i;
out_b(SSR1, in_b(SSR1) & ~(SSR_ORER|SSR_FER|SSR_PER));
out_b(SDCR1,0xF0);
out_b(SCR1, 0x00);
out_b(SMR1, 0x00); /* CKS1,0=0 -> P0 = 25MHz */
out_b(BRR1, 0x06); /* 115200 bps */
for(i=0;i<0x100;i++) ;
out_b(SCR1, (SCR_TE|SCR_RE));
}
/*""FUNC COMMENT""*******************************************************
* ID :
* Outline : get character 1byte from SCI1
*-----------------------------------------------------------------------
* Include :
*-----------------------------------------------------------------------
* Definition : int tm_exec_getchar(int wait)
*-----------------------------------------------------------------------
* Function : get 1byte data from SCI1
*-----------------------------------------------------------------------
* Argument : int wait
*-----------------------------------------------------------------------
* Return : >= 1byte data
*-----------------------------------------------------------------------
* Input : None
* Output : None
*-----------------------------------------------------------------------
* Used Func : in_b()
* : out_b()
*-----------------------------------------------------------------------
* Notice : no check the wait parameter
*""FUNC COMMENT END""***************************************************/
int tm_exec_getchar(int wait)
{
char c;
unsigned char sio_status_flg;
/* wait data is coming(check RDRF bit) */
#ifndef SIM
do {
sio_status_flg = in_b(SSR1);
} while( !(sio_status_flg & SSR_RDRF) );
#endif
/* read data */
c = in_b(RDR1) & 0x00FF;
out_b(SSR1,sio_status_flg & ~SSR_RDRF); /* bit clear */
return(c);
}
/*""FUNC COMMENT""*******************************************************
* ID :
* Outline : send 1byte character via SCI1
*-----------------------------------------------------------------------
* Include :
*-----------------------------------------------------------------------
* Definition : int tm_exec_putchar(int nChar)
*-----------------------------------------------------------------------
* Function : send 1byte data to SCI1
*-----------------------------------------------------------------------
* Argument : int nChar
*-----------------------------------------------------------------------
* Return : 1byte data
*-----------------------------------------------------------------------
* Input : None
* Output : None
*-----------------------------------------------------------------------
* Used Func : out_b()
*-----------------------------------------------------------------------
* Notice : no check the Control-C code
*""FUNC COMMENT END""***************************************************/
int tm_exec_putchar(int cChar)
{
/* wait send enable bit(TDRE) */
#ifndef SIM
while( (in_b(SSR1) & SSR_TDRE) == 0);
#endif
/* set data to register */
out_b(TDR1,0x00FF&cChar);
/* clear SSR1's TDRE bit */
out_b(SSR1,(in_b(SSR1) & ~SSR_TDRE));
return 0;
}
/*""FUNC COMMENT""*******************************************************
* ID :
* Outline : send characters via SCI1
*-----------------------------------------------------------------------
* Include :
*-----------------------------------------------------------------------
* Definition : int tm_exec_putstring(unsigned char *)
*-----------------------------------------------------------------------
* Function : send data until NULL code to SCI1
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -