source: azure_iot_hub_riscv/trunk/asp_baseplatform/target/k210_gcc/target_serial.h@ 453

Last change on this file since 453 was 453, checked in by coas-nagasima, 4 years ago

ファイルを追加

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/x-chdr;charset=UTF-8
File size: 5.1 KB
Line 
1/*
2 * TOPPERS/ASP Kernel
3 * Toyohashi Open Platform for Embedded Real-Time Systems/
4 * Advanced Standard Profile Kernel
5 *
6 * Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
7 * Toyohashi Univ. of Technology, JAPAN
8 * Copyright (C) 2005-2011 by Embedded and Real-Time Systems Laboratory
9 * Graduate School of Information Science, Nagoya Univ., JAPAN
10 * Copyright (C) 2017-2019 by TOPPERS PROJECT Educational Working Group.
11 *
12 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
13 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
14 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
15 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
16 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
17 * スコード中に含まれていること.
18 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
19 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用
20 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記
21 * の無保証規定を掲載すること.
22 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
23 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ
24 * と.
25 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
26 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
27 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
28 * 報告すること.
29 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
30 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
31 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
32 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
33 * 免責すること.
34 *
35 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お
36 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
37 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
38 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
39 * の責任を負わない.
40 *
41 * @(#) $Id$
42 */
43
44/*
45 * シリアルI/Oデバイス(SIO)ドライバ(K210用)
46 */
47
48#ifndef TOPPERS_TARGET_SERIAL_H
49#define TOPPERS_TARGET_SERIAL_H
50
51#include "kendryte-k210.h"
52
53/*
54 * シリアルI/Oポート数の定義
55 */
56#ifndef TNUM_SIOP
57#define TNUM_SIOP 2 /* サポートするシリアルI/Oポートの数 */
58#endif
59
60/*
61 * SIOの割込みハンドラのベクタ番号
62 */
63#define INHNO_SIO1 IRQ_VECTOR_UART1
64#define INTNO_SIO1 IRQ_VECTOR_UART1
65#define INHNO_SIO2 IRQ_VECTOR_UART3
66#define INTNO_SIO2 IRQ_VECTOR_UART3
67
68#define INTPRI_SIO -5 /* 割込み優先度 */
69#define INTATR_SIO 0 /* 割込み属性 */
70
71#ifndef TOPPERS_MACRO_ONLY
72
73/*
74 * シリアルI/Oポート管理ブロックの定義
75 */
76typedef struct sio_port_control_block SIOPCB;
77
78/*
79 * コールバックルーチンの識別番号
80 */
81#define SIO_RDY_SND 1U /* 送信可能コールバック */
82#define SIO_RDY_RCV 2U /* 受信通知コールバック */
83
84/*
85 * SIOドライバの初期化
86 */
87extern void sio_initialize(intptr_t exinf);
88
89/*
90 * シリアルI/Oポートのオープン
91 */
92extern SIOPCB *sio_opn_por(ID siopid, intptr_t exinf);
93
94/*
95 * シリアルI/Oポートのクローズ
96 */
97extern void sio_cls_por(SIOPCB *p_siopcb);
98
99/*
100 * SIOの割込みサービスルーチン
101 */
102extern void sio_isr(intptr_t exinf);
103
104/*
105 * シリアルI/Oポートへの文字送信
106 */
107extern bool_t sio_snd_chr(SIOPCB *siopcb, char c);
108
109/*
110 * シリアルI/Oポートからの文字受信
111 */
112extern int_t sio_rcv_chr(SIOPCB *siopcb);
113
114/*
115 * シリアルI/Oポートからのコールバックの許可
116 */
117extern void sio_ena_cbr(SIOPCB *siopcb, uint_t cbrtn);
118
119/*
120 * シリアルI/Oポートからのコールバックの禁止
121 */
122extern void sio_dis_cbr(SIOPCB *siopcb, uint_t cbrtn);
123
124/*
125 * シリアルI/Oポートからの送信可能コールバック
126 */
127extern void sio_irdy_snd(intptr_t exinf);
128
129/*
130 * シリアルI/Oポートからの受信通知コールバック
131 */
132extern void sio_irdy_rcv(intptr_t exinf);
133
134/*
135 * 1文字送信(ポーリングでの出力)
136 */
137extern void sio_pol_snd_chr(int8_t c, ID siopid);
138
139/*
140 * ターゲットのシリアル初期化
141 */
142extern void target_uart_init(ID siopid);
143
144
145#endif /* TOPPERS_MACRO_ONLY */
146#endif /* TOPPERS_TARGET_SERIAL_H */
Note: See TracBrowser for help on using the repository browser.