[117] | 1 | /*
|
---|
| 2 | * TOPPERS ATK2
|
---|
| 3 | * Toyohashi Open Platform for Embedded Real-Time Systems
|
---|
| 4 | * Automotive Kernel Version 2
|
---|
| 5 | *
|
---|
| 6 | * Copyright (C) 2012-2014 by Center for Embedded Computing Systems
|
---|
| 7 | * Graduate School of Information Science, Nagoya Univ., JAPAN
|
---|
| 8 | *
|
---|
| 9 | * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
|
---|
| 10 | * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
|
---|
| 11 | * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
|
---|
| 12 | * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
|
---|
| 13 | * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
|
---|
| 14 | * スコード中に含まれていること.
|
---|
| 15 | * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
|
---|
| 16 | * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用
|
---|
| 17 | * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記
|
---|
| 18 | * の無保証規定を掲載すること.
|
---|
| 19 | * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
|
---|
| 20 | * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ
|
---|
| 21 | * と.
|
---|
| 22 | * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
|
---|
| 23 | * 作権表示,この利用条件および下記の無保証規定を掲載すること.
|
---|
| 24 | * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
|
---|
| 25 | * 報告すること.
|
---|
| 26 | * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
|
---|
| 27 | * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
|
---|
| 28 | * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
|
---|
| 29 | * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
|
---|
| 30 | * 免責すること.
|
---|
| 31 | *
|
---|
| 32 | * 本ソフトウェアは,AUTOSAR(AUTomotive Open System ARchitecture)仕
|
---|
| 33 | * 様に基づいている.上記の許諾は,AUTOSARの知的財産権を許諾するもので
|
---|
| 34 | * はない.AUTOSARは,AUTOSAR仕様に基づいたソフトウェアを商用目的で利
|
---|
| 35 | * 用する者に対して,AUTOSARパートナーになることを求めている.
|
---|
| 36 | *
|
---|
| 37 | * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お
|
---|
| 38 | * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
|
---|
| 39 | * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
|
---|
| 40 | * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
|
---|
| 41 | * の責任を負わない.
|
---|
| 42 | *
|
---|
| 43 | * $Id: uart_rlin.h 164 2015-06-03 01:22:29Z t_ishikawa $
|
---|
| 44 | */
|
---|
| 45 |
|
---|
| 46 | /*
|
---|
| 47 | * シリアルI/Oデバイス(SIO)ドライバ(RLIN用)
|
---|
| 48 | */
|
---|
| 49 |
|
---|
| 50 | #ifndef TOPPERS_UART_RLIN_H
|
---|
| 51 | #define TOPPERS_UART_RLIN_H
|
---|
| 52 |
|
---|
| 53 | #include "prc_sil.h"
|
---|
| 54 | #include "target_serial.h"
|
---|
| 55 |
|
---|
| 56 | #ifdef RLIN3x_USE_PORT0
|
---|
| 57 | #define RLIN3x_BASE RLIN30_BASE
|
---|
| 58 | #elif defined(RLIN3x_USE_PORT1)
|
---|
| 59 | #define RLIN3x_BASE RLIN31_BASE
|
---|
| 60 | #elif defined(RLIN3x_USE_PORT2)
|
---|
| 61 | #define RLIN3x_BASE RLIN32_BASE
|
---|
| 62 | #elif defined(RLIN3x_USE_PORT3)
|
---|
| 63 | #define RLIN3x_BASE RLIN33_BASE
|
---|
| 64 | #elif defined(RLIN3x_USE_PORT4)
|
---|
| 65 | #define RLIN3x_BASE RLIN34_BASE
|
---|
| 66 | #elif defined(RLIN3x_USE_PORT5)
|
---|
| 67 | #define RLIN3x_BASE RLIN35_BASE
|
---|
| 68 | #else
|
---|
| 69 | #error please define RLIN3x port number.
|
---|
| 70 | #endif /* RLIN3x_USE_PORT0 */
|
---|
| 71 |
|
---|
| 72 | #define RLIN3xLWBR_B 0x00000001
|
---|
| 73 | #define RLIN3xLBRP01_H 0x00000002
|
---|
| 74 | #define RLIN3xLBRP0_B 0x00000002
|
---|
| 75 | #define RLIN3xLBRP1_B 0x00000003
|
---|
| 76 | #define RLIN3xLSTC_B 0x00000004
|
---|
| 77 | #define RLIN3xLMD_B 0x00000008
|
---|
| 78 | #define RLIN3xLBFC_B 0x00000009
|
---|
| 79 | #define RLIN3xLSC_B 0x0000000a
|
---|
| 80 | #define RLIN3xLWUP_B 0x0000000b
|
---|
| 81 | #define RLIN3xLIE_B 0x0000000c
|
---|
| 82 | #define RLIN3xLEDE_B 0x0000000d
|
---|
| 83 | #define RLIN3xLCUC_B 0x0000000e
|
---|
| 84 | #define RLIN3xLTRC_B 0x00000010
|
---|
| 85 | #define RLIN3xLMST_B 0x00000011
|
---|
| 86 | #define RLIN3xLST_B 0x00000012
|
---|
| 87 | #define RLIN3xLEST_B 0x00000013
|
---|
| 88 | #define RLIN3xLDFC_B 0x00000014
|
---|
| 89 | #define RLIN3xLIDB_B 0x00000015
|
---|
| 90 | #define RLIN3xLCBR_B 0x00000016
|
---|
| 91 | #define RLIN3xLUDB0_B 0x00000017
|
---|
| 92 | #define RLIN3xLDBR1_B 0x00000018
|
---|
| 93 | #define RLIN3xLDBR2_B 0x00000019
|
---|
| 94 | #define RLIN3xLDBR3_B 0x0000001a
|
---|
| 95 | #define RLIN3xLDBR4_B 0x0000001b
|
---|
| 96 | #define RLIN3xLDBR5_B 0x0000001c
|
---|
| 97 | #define RLIN3xLDBR6_B 0x0000001d
|
---|
| 98 | #define RLIN3xLDBR7_B 0x0000001e
|
---|
| 99 | #define RLIN3xLDBR8_B 0x0000001f
|
---|
| 100 | #define RLIN3xLUOER_B 0x00000020
|
---|
| 101 | #define RLIN3xLUOR1_B 0x00000021
|
---|
| 102 | #define RLIN3xLUTDR_H 0x00000024
|
---|
| 103 | #define RLIN3xLUTDRL_B 0x00000024
|
---|
| 104 | #define RLIN3xLUTDRH_B 0x00000025
|
---|
| 105 | #define RLIN3xLURDR_H 0x00000026
|
---|
| 106 | #define RLIN3xLURDRL_B 0x00000026
|
---|
| 107 | #define RLIN3xLURDRH_B 0x00000027
|
---|
| 108 | #define RLIN3xLUWTDR_H 0x00000028
|
---|
| 109 | #define RLIN3xLUWTDRL_B 0x00000028
|
---|
| 110 | #define RLIN3xLUWTDRH_B 0x00000029
|
---|
| 111 |
|
---|
| 112 | #ifndef TOPPERS_MACRO_ONLY
|
---|
| 113 |
|
---|
| 114 | /*
|
---|
| 115 | * カーネルの低レベル出力用関数
|
---|
| 116 | */
|
---|
| 117 | LOCAL_INLINE void uart_putc(char8 c);
|
---|
| 118 |
|
---|
| 119 | LOCAL_INLINE void
|
---|
| 120 | uart_putc(char8 c)
|
---|
| 121 | {
|
---|
| 122 | while ((sil_reb_mem((void *) (RLIN3x_BASE + RLIN3xLST_B)) & 0x10) == 0x10) ;
|
---|
| 123 | sil_wrb_mem((void *) (RLIN3x_BASE + RLIN3xLUTDRL_B), c);
|
---|
| 124 | }
|
---|
| 125 |
|
---|
| 126 | /*
|
---|
| 127 | * serial.c から呼び出される関数群
|
---|
| 128 | */
|
---|
| 129 |
|
---|
| 130 | /*
|
---|
| 131 | * 初期化処理
|
---|
| 132 | */
|
---|
| 133 | extern void InitHwSerial(void);
|
---|
| 134 |
|
---|
| 135 | /*
|
---|
| 136 | * 終了処理
|
---|
| 137 | */
|
---|
| 138 | extern void TermHwSerial(void);
|
---|
| 139 |
|
---|
| 140 | /*
|
---|
| 141 | * 受信コールバックハンドラ
|
---|
| 142 | */
|
---|
| 143 | extern void RxSerialInt(uint8 character);
|
---|
| 144 |
|
---|
| 145 | extern ISR(RxHwSerialInt);
|
---|
| 146 |
|
---|
| 147 | #endif /* TOPPERS_MACRO_ONLY */
|
---|
| 148 | #endif /* TOPPERS_UART_RLIN_H */
|
---|