NPO toppers/ssp/syssvc

µITRON4.0 Specification
https://www.ertl.jp/ITRON/SPEC/mitron4-e.html

TOPPERS/SSP
https://www.toppers.jp/ssp-kernel.html

Drags files here, to add them to your repository
Yowza, that’s a lot of files. Try uploading fewer than 100 at a time.
Github
https://github.com/kaizen-nagoya/toppersssp

toppers/ssp upload
https://qiita.com/kaizen_nagoya/items/cffa0aaf2c029cef7334
# syssvc

banner.c
banner.cfg
banner.h
banner.tf
log_output.c
logtask.c
logtask.cfg
logtask.h
serial.c
serial.cfg
serial.h
syslog.c
syslog.cfg
syslog.h
syssvc_def.csv
vasyslog.c

## banner.c
```c:banner.c
/*
 *  TOPPERS/SSP Kernel
 *      Smallest Set Profile Kernel
 * 
 *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
 *                              Toyohashi Univ. of Technology, JAPAN
 *  Copyright (C) 2004-2010 by Embedded and Real-Time Systems Laboratory
 *              Graduate School of Information Science, Nagoya Univ., JAPAN
 *  Copyright (C) 2010-2012 by Meika Sugimoto
 * 
 *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
 *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
 *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
 *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
 *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
 *      スコード中に含まれていること．
 *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
 *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
 *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
 *      の無保証規定を掲載すること．
 *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
 *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
 *      と．
 *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
 *        作権表示，この利用条件および下記の無保証規定を掲載すること．
 *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
 *        報告すること．
 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
 *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
 *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
 *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
 *      免責すること．
 * 
 *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
 *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
 *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
 *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
 *  の責任を負わない．
 * 
 */

/*
 *		カーネル起動メッセージの出力
 */

#include <kernel.h>
#include "target_syssvc.h"

#ifndef TARGET_COPYRIGHT
#define TARGET_COPYRIGHT
#endif /* TARGET_COPYRIGHT */

extern const char banner[];
extern const int32_t banner_size;

void
print_banner(intptr_t exinf)
{
	int_t i;
	
	for(i = 0 ; i < banner_size - 1 ; i++)
	{
		target_fput_log(banner[i]);
	}
}
```
## banner.cfg
```c:
/*
 *  @(#) $Id: banner.cfg 823 2008-03-18 13:02:11Z hiro $
 */

/*
 *		カーネル起動メッセージの出力のコンフィギュレーションファイル
 */

#include "syssvc/banner.h"
ATT_INI({ TA_NULL, 0, print_banner });
```
## banner.h
```c:
/*
 *  TOPPERS/SSP Kernel
 *      Toyohashi Open Platform for Embedded Real-Time Systems/
 *      Advanced Standard Profile Kernel
 * 
 *  Copyright (C) 2008 by Embedded and Real-Time Systems Laboratory
 *              Graduate School of Information Science, Nagoya Univ., JAPAN
 * 
 *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
 *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
 *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
 *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
 *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
 *      スコード中に含まれていること．
 *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
 *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
 *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
 *      の無保証規定を掲載すること．
 *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
 *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
 *      と．
 *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
 *        作権表示，この利用条件および下記の無保証規定を掲載すること．
 *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
 *        報告すること．
 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
 *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
 *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
 *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
 *      免責すること．
 * 
 *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
 *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
 *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
 *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
 *  の責任を負わない．
 * 
 *  @(#) $Id: banner.h 774 2008-03-08 06:35:57Z hiro $
 */

/*
 *		カーネル起動メッセージの出力
 */

#ifndef TOPPERS_BANNER_H
#define TOPPERS_BANNER_H

/*
 *  カーネル起動メッセージの出力
 */
extern void	print_banner(intptr_t exinf) throw();

#endif /* TOPPERS_BANNER_H */
```
## banner.tf
```c:
$ 
$ バナー出力用のテンプレートファイル
$ 
$FILE "kernel_cfg.c"$

$ カーネル名称
$KERNEL_NAME = "\"TOPPERS/SSP Kernel \""$

$ バージョンの取り出し

$MAJOR_VERSION = ((TKERNEL_PRVER >> 12) & 0x0f)$
$MINOR_VERSION = ((TKERNEL_PRVER >> 4) & 0xff)$
$PATCH_VERSION = ((TKERNEL_PRVER & 0x0f) & 0x0f)$

$ 開発者
$AUTHOR = "\t\t\"Copyright (C) 2010 by Meika Sugimoto\\n\"\t\\\n"$
$AUTHOR	= CONCAT(AUTHOR , "\t\t\"Copyright (C) 2010 by Naoki Saito\\n\"\t\\\n")$
$AUTHOR	= CONCAT(AUTHOR , "\t\t\"            Nagoya Municipal Industrial Research Institute, JAPAN\\n\"\t\\\n")$

$BANNER = CONCAT("\"\\n\" " , KERNEL_NAME)$
$BANNER = CONCAT(BANNER , FORMAT(" \"%d.%X.%d \" \t\\\n" , MAJOR_VERSION , MINOR_VERSION , PATCH_VERSION))$
$BANNER = CONCAT(BANNER , "\t\t\" for \" TARGET_NAME ")$
$BANNER = CONCAT(BANNER , "\" (\" __DATE__ \" , \" __TIME__ \")\\n\"\t\\\n")$
$BANNER = CONCAT(BANNER , CONCAT(AUTHOR , "\t\tTARGET_COPYRIGHT \"\\n\""))$

$NL$
$NL$

#ifndef TARGET_COPYRIGHT$NL$
#define TARGET_COPYRIGHT$NL$
#endif /* TARGET_COPYRIGHT */$NL$
$NL$
$NL$
#ifndef TARGET_NAME$NL$
#define TARGET_NAME$NL$
#endif /* TARGET_NAME */$NL$
$NL$
$NL$
const char banner[] = $BANNER$;$NL$
const int32_t banner_size = sizeof(banner) / sizeof(banner[0]);
$NL$
$NL$
```
## log_output.c
```c:
```
## logtask.c
```c:
```
## logtask.cfg
```c:
```
## logtask.h
```c:
```
## serial.c
```c:
```
## serial.cfg
```c:
```
## serial.h
```c:
```
## syslog.c
```c:
```
## syslog.cfg
```c:
```
## syslog.h
```c:
```
## syssvc_def.csv
```c:
```
## vasyslog.c
```c:
```