toppersedujsp config h8 akih8_3048f

toppers edu jsp
https://qiita.com/kaizen_nagoya/items/5561df93c7e156573fd2

toppersedujsp/config/h8/akih8_3048f/
https://github.com/kaizen-nagoya/toppersedujsp/tree/main/config/h8/akih8_3048f

Makefile.config
debug.ld
h8_3048f.h
release.ld
sys_config.c
sys_config.h
sys_defs.h
sys_rename.def
sys_rename.h
sys_support.S
sys_unrename.h
tinet_sys_config.h

## Makefile.config
```c:

```
## debug.ld
```c:

```
## h8_3048f.h
```c:

```
## release.ld
```c:

```
## sys_config.c
```c:
/*
 *  TOPPERS/JSP Kernel
 *      Toyohashi Open Platform for Embedded Real-Time Systems/
 *      Just Standard Profile Kernel
 * 
 *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
 *                              Toyohashi Univ. of Technology, JAPAN
 *  Copyright (C) 2001-2003 by Industrial Technology Institute,
 *                              Miyagi Prefectural Government, JAPAN
 *  Copyright (C) 2001-2003 by Dep. of Computer Science and Engineering
 *                   Tomakomai National College of Technology, JAPAN
 * 
 *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
 *  によって公表されている GNU General Public License の Version 2 に記
 *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
 *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
 *  利用と呼ぶ）することを無償で許諾する．
 *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
 *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
 *      スコード中に含まれていること．
 *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
 *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
 *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
 *      の無保証規定を掲載すること．
 *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
 *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
 *      と．
 *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
 *        作権表示，この利用条件および下記の無保証規定を掲載すること．
 *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
 *        報告すること．
 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
 *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
 *
 *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
 *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
 *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
 *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
 * 
 *  @(#) $Id: sys_config.c,v 1.6 2003/11/11 10:07:15 honda Exp $
 */


#include "jsp_kernel.h"

/*
 *  ターゲットシステム依存 初期化ルーチン
 */

void
sys_initialize()
{
}

/*
 *  ターゲットシステムの終了ルーチン
 */

void
sys_exit(void)
{
  while (1)
  	;
}
```
## sys_config.h
```c:

```
## sys_defs.h
```c:

```
## sys_rename.def
```c:

```
## sys_rename.h
```c:

```
## sys_support.S
```c:
/*
 *  TOPPERS/JSP Kernel
 *      Toyohashi Open Platform for Embedded Real-Time Systems/
 *      Just Standard Profile Kernel
 * 
 *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
 *                              Toyohashi Univ. of Technology, JAPAN
 *  Copyright (C) 2001-2003 by Industrial Technology Institute,
 *                              Miyagi Prefectural Government, JAPAN
 *  Copyright (C) 2001-2003 by Dep. of Computer Science and Engineering
 *                   Tomakomai National College of Technology, JAPAN
 * 
 *  上記著作権者は，以下の (1)～(4) の条件か，Free Software Foundation 
 *  によって公表されている GNU General Public License の Version 2 に記
 *  述されている条件を満たす場合に限り，本ソフトウェア（本ソフトウェア
 *  を改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，
 *  利用と呼ぶ）することを無償で許諾する．
 *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
 *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
 *      スコード中に含まれていること．
 *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
 *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
 *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
 *      の無保証規定を掲載すること．
 *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
 *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
 *      と．
 *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
 *        作権表示，この利用条件および下記の無保証規定を掲載すること．
 *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
 *        報告すること．
 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
 *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
 *
 *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
 *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，その適用可能性も
 *  含めて，いかなる保証も行わない．また，本ソフトウェアの利用により直
 *  接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
 * 
 *  @(#) $Id: sys_support.S,v 1.7 2003/11/11 10:07:15 honda Exp $
 */

#define _MACRO_ONLY
#include "jsp_kernel.h"

	.h8300h

/*
 * 割込みベクタの定義
 */

	.section	.vectors
	.align 4

	.global _vectors
_vectors:

#ifdef AKI_MONITOR

	.long	_start				/*  0, 0x0000: reset	*/
	.long	0				/*  1, 0x0004: reserved	*/
	.long	0				/*  2, 0x0008: reserved	*/
	.long	0				/*  3, 0x000c: reserved	*/
	.long	0				/*  4, 0x0010: reserved	*/
	.long	0				/*  5, 0x0014: reserved	*/
	.long	0				/*  6, 0x0018: reserved	*/
	.long	0				/*  7, 0x001c: NMI	*/
	.long	0				/*  8, 0x0020: trap	*/
	.long	0				/*  9, 0x0024: trap	*/
	.long	0				/* 10, 0x0028: trap	*/
	.long	0				/* 11, 0x002c: trap	*/
	.long	0				/* 12, 0x0030: IRQ0	*/
	.long	0				/* 13, 0x0034: IRQ1	*/
	.long	0				/* 14, 0x0038: IRQ2	*/
	.long	0				/* 15, 0x003c: IRQ3	*/
	.long	0				/* 16, 0x0040: IRQ4	*/
	.long	0				/* 17, 0x0044: IRQ5	*/
	.long	0				/* 18, 0x0048: reserved	*/
	.long	0				/* 19, 0x004c: reserved	*/
	.long	0				/* 20, 0x0050: WOVI	*/
	.long	0				/* 21, 0x0054: CMI	*/
	.long	0				/* 22, 0x0058: reserved	*/
	.long	0				/* 23, 0x005c: reserved	*/
	.long	_timer_handler_entry		/* 24, 0x0060: IMIA0	*/
	.long	0				/* 25, 0x0064: IMIB0	*/
	.long	0				/* 26, 0x0068: OVI0	*/
	.long	0				/* 27, 0x006c: reserved	*/
	.long	0				/* 28, 0x0070: IMIA1	*/
	.long	0				/* 29, 0x0074: IMIB1	*/
	.long	0				/* 30, 0x0078: OVI1	*/
	.long	0				/* 31, 0x007c: reserved	*/
	.long	0				/* 32, 0x0080: IMIA2	*/
	.long	0				/* 33, 0x0084: IMIB2	*/
	.long	0				/* 34, 0x0088: OVI2	*/
	.long	0				/* 35, 0x008c: reserved	*/
	.long	0				/* 36, 0x0090: IMIA3	*/
	.long	0				/* 37, 0x0094: IMIB3	*/
	.long	0				/* 38, 0x0098: OVI3	*/
	.long	0				/* 39, 0x009c: reserved	*/
	.long	0				/* 40, 0x00a0: IMIA4	*/
	.long	0				/* 41, 0x00a4: IMIA4	*/
	.long	0				/* 42, 0x00a8: OVI4	*/
	.long	0				/* 43, 0x00ac: reserved	*/
	.long	0				/* 44, 0x00b0: DEND0A	*/
	.long	0				/* 45, 0x00b4: DEND0B	*/
	.long	0				/* 46, 0x00b8: DEND1A	*/
	.long	0				/* 47, 0x00bc: DEND1B	*/
	.long	0				/* 48, 0x00c0: reserved	*/
	.long	0				/* 49, 0x00c4: reserved	*/
	.long	0				/* 50, 0x00c8: reserved	*/
	.long	0				/* 51, 0x00cc: reserved	*/

#if TNUM_PORT == 1

	.long	0				/* 52, 0x00d0: ERI0	*/
	.long	0				/* 53, 0x00d4: RXI0	*/
	.long	0				/* 54, 0x00d8: TXI0	*/
	.long	0				/* 55, 0x00ec: TEI0	*/

#ifdef H8_CFG_SCI_ERR_HANDLER

	.long	_sio_err_handler_entry		/* 56, 0x00e0: ERI1	*/

#else	/* of #ifdef H8_CFG_SCI_ERR_HANDLER */

	.long	_sio_in_handler_entry		/* 56, 0x00e0: ERI1	*/

#endif	/* of #ifdef H8_CFG_SCI_ERR_HANDLER */

	.long	_sio_in_handler_entry		/* 57, 0x00e4: RXI1	*/
	.long	_sio_out_handler_entry		/* 58, 0x00e8: TXI1	*/
	.long	0				/* 59, 0x00ec: TEI1	*/

#elif TNUM_PORT == 2	/* of #if TNUM_PORT == 1 */

#ifdef H8_CFG_SCI_ERR_HANDLER

	.long	_sio_err_handler_entry		/* 52, 0x00d0: ERI0	*/
	.long	_sio_in_handler_entry		/* 53, 0x00d4: RXI0	*/
	.long	_sio_out_handler_entry		/* 54, 0x00d8: TXI0	*/
	.long	0				/* 55, 0x00ec: TEI0	*/
	.long	_sio_err2_handler_entry		/* 56, 0x00e0: ERI1	*/
	.long	_sio_in2_handler_entry		/* 57, 0x00e4: RXI1	*/
	.long	_sio_out2_handler_entry		/* 58, 0x00e8: TXI1	*/
	.long	0				/* 59, 0x00ec: TEI1	*/

#else	/* of #ifdef H8_CFG_SCI_ERR_HANDLER */

	.long	_sio_in_handler_entry		/* 52, 0x00d0: ERI0	*/
	.long	_sio_in_handler_entry		/* 53, 0x00d4: RXI0	*/
	.long	_sio_out_handler_entry		/* 54, 0x00d8: TXI0	*/
	.long	0				/* 55, 0x00ec: TEI0	*/
	.long	_sio_in2_handler_entry		/* 56, 0x00e0: ERI1	*/
	.long	_sio_in2_handler_entry		/* 57, 0x00e4: RXI1	*/
	.long	_sio_out2_handler_entry		/* 58, 0x00e8: TXI1	*/
	.long	0				/* 59, 0x00ec: TEI1	*/

#endif	/* of #ifdef H8_CFG_SCI_ERR_HANDLER */

#endif	/* of #if TNUM_PORT == 1 */

	.long	0				/* 60, 0x00f0: ADI	*/

#else	/* of #ifdef AKI_MONITOR */

	.long	_start				/*  0, 0x0000: reset	*/
	.long	_no_reg_exception		/*  1, 0x0004: reserved	*/
	.long	_no_reg_exception		/*  2, 0x0008: reserved	*/
	.long	_no_reg_exception		/*  3, 0x000c: reserved	*/
	.long	_no_reg_exception		/*  4, 0x0010: reserved	*/
	.long	_no_reg_exception		/*  5, 0x0014: reserved	*/
	.long	_no_reg_exception		/*  6, 0x0018: reserved	*/
	.long	_no_reg_exception		/*  7, 0x001c: NMI	*/
	.long	_no_reg_exception		/*  8, 0x0020: trap	*/
	.long	_no_reg_exception		/*  9, 0x0024: trap	*/
	.long	_no_reg_exception		/* 10, 0x0028: trap	*/
	.long	_no_reg_exception		/* 11, 0x002c: trap	*/
	.long	_no_reg_exception		/* 12, 0x0030: IRQ0	*/
	.long	_no_reg_exception		/* 13, 0x0034: IRQ1	*/
	.long	_no_reg_exception		/* 14, 0x0038: IRQ2	*/
	.long	_no_reg_exception		/* 15, 0x003c: IRQ3	*/
	.long	_no_reg_exception		/* 16, 0x0040: IRQ4	*/
	.long	_no_reg_exception		/* 17, 0x0044: IRQ5	*/
	.long	_no_reg_exception		/* 18, 0x0048: reserved	*/
	.long	_no_reg_exception		/* 19, 0x004c: reserved	*/
	.long	_no_reg_exception		/* 20, 0x0050: WOVI	*/
	.long	_no_reg_exception		/* 21, 0x0054: CMI	*/
	.long	_no_reg_exception		/* 22, 0x0058: reserved	*/
	.long	_no_reg_exception		/* 23, 0x005c: reserved	*/
	.long	_timer_handler_entry		/* 24, 0x0060: IMIA0	*/
	.long	_no_reg_exception		/* 25, 0x0064: IMIB0	*/
	.long	_no_reg_exception		/* 26, 0x0068: OVI0	*/
	.long	_no_reg_exception		/* 27, 0x006c: reserved	*/
	.long	_no_reg_exception		/* 28, 0x0070: IMIA1	*/
	.long	_no_reg_exception		/* 29, 0x0074: IMIB1	*/
	.long	_no_reg_exception		/* 30, 0x0078: OVI1	*/
	.long	_no_reg_exception		/* 31, 0x007c: reserved	*/
	.long	_no_reg_exception		/* 32, 0x0080: IMIA2	*/
	.long	_no_reg_exception		/* 33, 0x0084: IMIB2	*/
	.long	_no_reg_exception		/* 34, 0x0088: OVI2	*/
	.long	_no_reg_exception		/* 35, 0x008c: reserved	*/
	.long	_no_reg_exception		/* 36, 0x0090: IMIA3	*/
	.long	_no_reg_exception		/* 37, 0x0094: IMIB3	*/
	.long	_no_reg_exception		/* 38, 0x0098: OVI3	*/
	.long	_no_reg_exception		/* 39, 0x009c: reserved	*/
	.long	_no_reg_exception		/* 40, 0x00a0: IMIA4	*/
	.long	_no_reg_exception		/* 41, 0x00a4: IMIA4	*/
	.long	_no_reg_exception		/* 42, 0x00a8: OVI4	*/
	.long	_no_reg_exception		/* 43, 0x00ac: reserved	*/
	.long	_no_reg_exception		/* 44, 0x00b0: DEND0A	*/
	.long	_no_reg_exception		/* 45, 0x00b4: DEND0B	*/
	.long	_no_reg_exception		/* 46, 0x00b8: DEND1A	*/
	.long	_no_reg_exception		/* 47, 0x00bc: DEND1B	*/
	.long	_no_reg_exception		/* 48, 0x00c0: reserved	*/
	.long	_no_reg_exception		/* 49, 0x00c4: reserved	*/
	.long	_no_reg_exception		/* 50, 0x00c8: reserved	*/
	.long	_no_reg_exception		/* 51, 0x00cc: reserved	*/

#if TNUM_PORT == 1

	.long	_no_reg_exception		/* 52, 0x00d0: ERI0	*/
	.long	_no_reg_exception		/* 53, 0x00d4: RXI0	*/
	.long	_no_reg_exception		/* 54, 0x00d8: TXI0	*/
	.long	_no_reg_exception		/* 55, 0x00ec: TEI0	*/

#ifdef H8_CFG_SCI_ERR_HANDLER

	.long	_sio_err_handler_entry		/* 56, 0x00e0: ERI1	*/

#else	/* of #ifdef H8_CFG_SCI_ERR_HANDLER */

	.long	_sio_in_handler_entry		/* 56, 0x00e0: ERI1	*/

#endif	/* of #ifdef H8_CFG_SCI_ERR_HANDLER */

	.long	_sio_in_handler_entry		/* 57, 0x00e4: RXI1	*/
	.long	_sio_out_handler_entry		/* 58, 0x00e8: TXI1	*/
	.long	_no_reg_exception		/* 59, 0x00ec: TEI1	*/

#elif TNUM_PORT == 2	/* of #if TNUM_PORT == 1 */

#ifdef H8_CFG_SCI_ERR_HANDLER

	.long	_sio_err_handler_entry		/* 52, 0x00d0: ERI0	*/
	.long	_sio_in_handler_entry		/* 53, 0x00d4: RXI0	*/
	.long	_sio_out_handler_entry		/* 54, 0x00d8: TXI0	*/
	.long	_no_reg_exception		/* 55, 0x00ec: TEI0	*/
	.long	_sio_err2_handler_entry		/* 56, 0x00e0: ERI1	*/
	.long	_sio_in2_handler_entry		/* 57, 0x00e4: RXI1	*/
	.long	_sio_out2_handler_entry		/* 58, 0x00e8: TXI1	*/
	.long	_no_reg_exception		/* 59, 0x00ec: TEI1	*/

#else	/* of #ifdef H8_CFG_SCI_ERR_HANDLER */

	.long	_sio_in_handler_entry		/* 52, 0x00d0: ERI0	*/
	.long	_sio_in_handler_entry		/* 53, 0x00d4: RXI0	*/
	.long	_sio_out_handler_entry		/* 54, 0x00d8: TXI0	*/
	.long	_no_reg_exception		/* 55, 0x00ec: TEI0	*/
	.long	_sio_in2_handler_entry		/* 56, 0x00e0: ERI1	*/
	.long	_sio_in2_handler_entry		/* 57, 0x00e4: RXI1	*/
	.long	_sio_out2_handler_entry		/* 58, 0x00e8: TXI1	*/
	.long	_no_reg_exception		/* 59, 0x00ec: TEI1	*/

#endif	/* of #ifdef H8_CFG_SCI_ERR_HANDLER */

#endif	/* of #if TNUM_PORT == 1 */

	.long	_no_reg_exception		/* 60, 0x00f0: ADI	*/

#endif	/* of #ifdef AKI_MONITOR */

	.text
	.align 2

/*
 *  リリースでは、外部 RAM 有効にする。
 */

	.global	_hardware_init_hook
_hardware_init_hook:

	/* CCR の UI ビットを割り込みマスクビットとして使用する。*/

	orc	#H8CCR_UI, ccr
	mov.l	#H8SYSCR, er0
	mov.b	@er0, r1h
	bclr	#H8SYSCR_UE_BIT, r1h
	mov.b	r1h, @er0

	/* 全割り込みの優先度を上げる。*/

	mov.b	#0xff, r1l

	add.b	#(H8IPRA - H8SYSCR), r0l
	mov.b	r1l, @er0
	add.b	#(H8IPRB - H8IPRA), r0l
	mov.b	r1l, @er0

	/* 外部 RAM を有効にする。*/

	mov.l	#H8P1DDR, er0
	mov.b	r1l, @er0	/* enable A0  - A7  */

	add.b	#(H8P2DDR - H8P1DDR), r0l
	mov.b	r1l, @er0	/* enable A8  - A15 */

	add.b	#(H8P3DDR - H8P2DDR), r0l
	mov.b	r1l, @er0	/* enable D8  - D15 */

	add.b	#(H8P5DDR - H8P3DDR), r0l
	mov.b	r1l, @er0	/* enable A16 - A19 */

#ifdef ENABLE_LOWER_DATA

	mov.l	#H8P4DDR, er0
	mov.b	r1l, @er0	/* enable D0  - D7  */

#endif	/* #if ENABLE_LOWER_DATA */

#ifdef ENABLE_P8_CS

	mov.l	#H8P8DDR, er0
	mov.b	#ENABLE_P8_CS, r1l
	mov.b	r1l, @er0	/* enable CS0 - CS3 */

#endif	/* #ifdef ENABLE_P8_CS */

#ifdef ENABLE_PA_CS

	mov.l	#H8PADDR, er0
	mov.b	#ENABLE_PA_CS, r1l
	mov.b	r1l, @er0	/* enable CS4 - CS6 */

#elif ENABLE_PA_A21_A23

	mov.l	#H8PADDR, er0
	mov.b	#ENABLE_PA_A21_A23, r1l
	mov.b	r1l, @er0	/* enable A21 - A23 */

#endif	/* #ifdef ENABLE_PA_CS */

#ifdef ENABLE_PB_CS

	mov.l	#H8PBDDR, er0
	mov.b	#ENABLE_PB_CS, r1l
	mov.b	r1l, @er0	/* enable CS7 */

#endif	/* #ifdef ENABLE_PB_CS */

	rts
```
## sys_unrename.h
```c:

```
## tinet_sys_config.h
```c:

```
## Ref.