mtkernel_3

μT-Kernel3.0 TX03 M367 IoT-Engine向け実装仕様書

Version.02.00.00

2023.12.01

1. 概要

1.1. 目的

本書はTX03 M367 IoT-Engine向けのμT-Kernel3.0の実装仕様を記す。 対象は、トロンフォーラムから公開されているμT-Kernel 3.0(V3.00.07)のうち、TX03 M367 IoT-Engine向けの実装部分である。 ハードウェアに依存しない共通の実装仕様は「μT-Kernel3.0共通実装仕様書」を参照、ARMv7mコアに共通の仕様は「μT-Kernel3.0 ARMv7-M向け実装仕様書」を参照のこと。

以降、単にOSと称する場合はμT-Kenrel3.0を示し、本実装と称する場合、前述のソースコードの実装を示す。

1.2. 基本事項

1.2.1. 対象ハードウェア

実装対象のハードウェアは以下の通りである。

分類 名称 備考
実機 TX03 M367 IoT-Engine UCテクノロジー製
搭載マイコン TX03シリーズ M360グループ
TMPM367FDFG
東芝デバイス&ストレージ製

1.2.2. ターゲット名

TX03 M367 IoT-Engineのターゲット名および派生する識別名は以下とする。

分類 名称 対象
ターゲット名 _IOTE_M367_  
対象システム IOTE_M367 TX03 M367 IoT-Engine
対象CPU CPU_TMPM367FDFG TMPM367FDFG
対象CPUアーキテクチャ CPU_CORE_ARMV7M ARMv7-M
対象CPUコア CPU_CORE_ACM3 ARM Cortex-M3コア

識別名は以下のファイルで定義される。

 include/sys/sysdepend/iote_m367/machine.h

1.3. 関連ドキュメント

以下に関連するドキュメントを記す。

分類 名称 発行
OS μT-Kernel 3.0仕様書(Ver.3.00.01)
TEF020-S004-03.00.01
トロンフォーラム
OS μT-Kernel3.0共通実装仕様書(Ver.2.00.00)
TEF033-W002-2304xx
トロンフォーラム
T-Monitor T-Monitor仕様書
TEF020-S002-01.00.01
トロンフォーラム
デバイスドライバ μT-Kernel 3.0 デバイスドライバ説明書(Ver.1.00.05)
TEF033-W007-221007
トロンフォーラム
実機 UCT TX03 M367 IoT-Engine取扱説明書 UCテクノロジー
搭載マイコン TMPM367FDFGデーターシート 東芝デバイス&ストレージ

1.4. ソースコード構成

機種依存定義sysdependディレクトリ下の本実装のディレクトリ構成を以下に示す。名称に(*)の点いたディレクトリが本実装の対象である。

─ sysdepend         ハードウェア依存部
├ iote_m367              TX03 M367 Iot-Engine依存部 (*)
├       :
├ <ターゲットn>          ターゲットn 依存部
└ cpu                    CPU依存部
   ├ tx03_m367              	     TX03 M367マイコン依存部 (*)
   ├     :
   └ <CPUn>                        CPUn依存部
   └ core                          コア依存部
          ├ armv7m                      ARMv7-Mコア依存部
          ├    :
          └ <core n>                    コアn依存部

「ARMv7-Mコア依存部」は、ARMv7-Mコアに共通するコードであり、他のARMv7-Mコアを有するマイコンと共通である。 「TX03 M367マイコン依存部」は、前述のコア依存部以外の本マイコンに固有のコードである。 「TX03 M367 IoT-Engine依存部」は、前述のコア依存部およびマイコン依存部以外のTX03 M367 IoT-Enginのハードウェアに固有のコードである。

2. 基本実装仕様

2.1. マイコン関連

2.1.1. 対象マイコン

実装対象のマイコンの基本的な仕様を以下に記す。

項目 内容
CPUコア ARM Cortex-M3
ROM 512KB(内蔵フラッシュROM)
RAM 128KB(内蔵RAM)

2.1.2. 実行モードと保護レベル

ARMv7-M実装仕様書を参照のこと。

2.1.3. CPUレジスタ

ARMv7-M実装仕様書を参照のこと。

2.1.4. 低消費電力モードと省電力機能

省電力機能はサポートしていない。プロファイルTK_SUPPORT_LOWPOWERはFALSEである。よって、マイコンの低消費電力モードに対応する機能は持たない。

省電力機能のAPI(low_pow、off_pow)は、/kernel/sysdepend/iote_m367/power_save.cに空関数として記述されている。なお、本関数に適切な省電力処理を記述し、プロファイルTK_SUPPORT_LOWPOWERをTRUEに指定すれば、OSの省電力機能(tk_set_pow)は使用可能となる。

2.1.5. コプロセッサ対応

本マイコンにはコプロセッサは存在しない。よって、プロファイルTK_SUPPORT_COPnはすべてFALSEである。 コプロセッサに関するAPI(tk_set_cpr, tk_get_cpr)は提供されない。

2.2. メモリ関連

2.2.1. メモリモデル

ARMv7-M実装仕様書を参照のこと。

2.2.2. マイコンのアドレス・マップ

マイコンのアドレス・マップは、基本的にARM Cortex-M3のデフォルト・アドレス・マップに従う。 以下にマイコンのアドレス・マップを記す。表の備考欄のCode、SRAM、Peripheralの各領域は、Cortex-M3のアドレス・マップの対応する領域を示す(詳細はマイコンの仕様書を参照のこと)。

アドレス
(上段:開始
下段:終了)
種別 サイズ
(KByte)
備考
0x0000 0000
0x0007 FFFF
内蔵ROM 512 Code領域
内蔵フラッシュROM
0x2000 0000
0x2000 07FF
バックアップRAM 2 SRAM領域※1
0x2000 0800
0x2001 FFFF
メインRAM 126 SRAM領域
0x4000 0000
0x41FF FFFF
SFR(Special function Register)   Peripheral領域
0x6000 0000
0x63FF FFFF
外部バス領域    
0xE000 0000
0xE00F FFFF
CPU内レジスタ領域    

※1 低消費電力モード時もデータ保持するメモリ領域

本実装では、ビットバンドによるメモリアクセスは行っていない。ユーザのプログラムからは可能である。

2.2.3. OSのメモリマップ

本実装では、メモリはマイコンの内蔵ROMおよびメインRAMを使用する。 OSを含む全てのプログラムのコードは内蔵ROMに配置され実行される。 例外ベクタテーブルは、リセット時は内蔵ROM上にあるが、OSの初期化処理にてRAM上に転送される。ただし、コンフィグレーションUSE_STATIC_IVTを1に設定することにより、RAM上への再配置を禁止することができる。再配置を禁止した場合、APIによる割込みハンドラの登録は不可となる。初期値は無効(0)である。

以下に内蔵ROMおよびメインRAMのメモリマップを示す。表中でアドレスに「ー」が記載された箇所はデータのサイズによりC言語の処理系にてアドレスが決定され、OS内ではアドレスの指定は行っていない。

(1) 内蔵ROMのメモリマップ

アドレス
(上段:開始
下段:終了)
種別 内容
0x0000 0000
例外ベクタテーブル 例外や割込みのベクタテーブル
リセット時のみ有効

プログラムコード プログラムコードが配置される領域

定数データ C言語の定数データなどが配置される領域

(2) メインRAMのメモリマップ

アドレス
(上段:開始
下段:終了)
種別 内容
0x2000 0800
例外ベクタテーブル 例外や割込みのベクタテーブル
OSの初期化後に有効

プログラムデータ C言語の変数等が配置される領域

OS管理領域 OS内部の動的メモリ管理の領域

0x2001 FFFF
例外スタック領域 初期化スタックとして、初期化処理時のみに使用

2.2.4. スタック

ARMv7-M向け実装仕様書を参照のこと。

2.2.5. 動的メモリ管理

ARMv7-M向け実装仕様書を参照のこと。

2.3. 割込みおよび例外関係

2.3.1. マイコンの割込みおよび例外

ARMv7-M向け実装仕様書を参照のこと。

2.3.2. 割込み関連定義

本マイコンのハードウェアに関わる割込み関連の定義を以下に記す。項目はARMv7-Mにおいて共通である。ARMv7-M向け実装仕様書を参照のこと。

名称 意味
N_INTVEC 128 外部割込み数
N_SYSVEC 16 例外数
INTPRI_BITWIDTH 3 割込み優先度の幅(ビット数)
INTPRI_MAX_EXTINT_PRI 1 外部割込みの最高優先度
INTPRI_SVC 0 SVC例外の優先度
INTPRI_SYSTICK 1 システムタイマ例外の優先度
INTPRI_PENDSV 7 PendSV例外の優先度

以上の定義は以下のファイルで記述される。

 /include/sys/sysdepend/cpu/tx03_m367/sysdef.h

2.3.3. ベクタテーブル

本マイコンは、前述の各種例外に対応する例外ハンドラのアドレスを設定したベクタテーブルを有する。 本実装では、リセット時のベクタテーブルは、以下のファイルにvector_tblとしてROM上に定義される。

 kernel/sysdepend/cpu/tx03_m367/vector_tbl.c

OSの初期化処理において、上記のROM上のベクタテーブルはRAM上にコピーされ、以降そちらが使用される。このRAM上のベクターテーブルはARMv7-Mにおいて共通である。ARMv7-M向け実装仕様書を参照のこと。 ただし、コンフィグレーションUSE_STATIC_IVTが1に設定されている場合は、ROM上のベクターテーブルが使用され続ける。USE_STATIC_IVTの初期値は0である。

2.3.4. 割込み優先度

ARMv7-Mに共通する事項はARMv7-M向け実装仕様書を参照のこと。 本マイコンは、割込み優先度を3bit(0~7)の8段階に設定できる(優先度の数字の小さい方が優先度は高い)。 外部割込みは優先度0~7が割り当て可能である。ただし、優先度0はOSからマスク不可のため、使用は許されない。また、優先度1と7はOS内の割込み処理で使用しているため、同様に使用は許されない。よって、実際に割当て可能な外部割込みの優先度は、2~6の5段階とする。

次の例外は、ハードウェアの仕様により優先度0より高い優先度に固定されている。

  • リセット(優先度 -3)
  • NMI(優先度 -2)
  • ハードフォルト(優先度 -1)

2.3.5. OS内部で使用する割込み

OSの内部で使用する割込みには、以下のようにマイコンの割込みまたは例外が割り当てられる。詳細はARMv7-M向け実装仕様書を参照のこと。

種類 割込み番号 割り当てられる割込み・例外 優先度
システムタイマ割込み 15 SysTick 1
ディスパッチ要求 14 PendSV 7
強制ディスパッチ要求 14 PendSV 7

各割込みの優先度は以下のファイルで定義される。

/include/sys/sysdepend/cpu/tx03_m367/sysdef.h ``` #define INTPRI_SYSTICK        1    // システムタイマ割込み #define INTPRI_PENDSV         7   // PendSV ```

2.3.6. 多重割込み対応

ARMv7-M向け実装仕様書を参照のこと。

2.3.7. クリティカルセクション

最高外部割込み優先度は以下のファイルで定義される。詳細はARMv7-M向け実装仕様書を参照のこと。

/include/sys/sysdepend/cpu/tx03_m367/sysdef.h ``` #define INTPRI_MAX_EXTINT_PRI 1    // 最高外部割込み優先度 ```

2.3.8. μT-Kenrel/OSの割込み管理機能

ARMv7-M向け実装仕様書を参照のこと。

2.3.9. μT-Kernel/SMの割込み管理機能

μT-Kernel/SMの割込み管理機能は、CPUの割込み管理機能および割込みコントローラ(NVIC)の制御を行う。

  • CPU割込み制御 ARMv7-M向け実装仕様書を参照のこと。

  • 割込みコントローラ制御 ARMv7-Mの標準割込みコントローラNVICの制御を行う。また「スタンバイ解除要因となる割込み」については、本マイコン内蔵のクロックジェネレータの制御も行う。 NVICについてはARMv7-Mの実装依存部で処理される。ARMv7-M向け実装仕様書を参照のこと。 クロックジェネレータの制御は、本マイコンの実装依存部で処理される。 以下に各機能の実装を記す。

① 割込みコントローラの割込み許可(EnableInt) 割込みコントローラ(NVIC)の割込みイネーブルセットレジスタ(ISER)を設定し、指定された割込みを許可する。同時に割込み優先度レジスタ(IPR)に指定された割込み優先度を設定する。

② 割込みコントローラの割込み禁止(DisableInt) 割込みコントローラ(NVIC)の割込みイネーブルクリアレジスタ(ICER)を設定し、指定された割込みを禁止する。

③ 割込み発生のクリア(ClearInt) 割込みコントローラ(NVIC)の割込み保留クリアレジスタ(ICPR)を設定し、指定された割込みが保留されていればクリアする。 また、スタンバイ解除要因となる割込みについては、クロックジェネレータの設定を行い、保持されている割込み要因をクリアする。

④ 割込みコントローラのEOI発行(EndOfInt) ARMv7-MではEOIの発行は不要である。よって、EOI発行(EndOfInt)は何も実行しないマクロとして定義される。

⑤ 割込み発生の検査(CheckInt) 割込み発生の検査(CheckInt)は、割込みコントローラ(NVIC)の割込み保留クリアレジスタ(ICPR)を参照することにより実現する。

⑥ 割込みモード設定(SetIntMode) クロックジェネレータに割込みのモードを設定する。指定可能な割込みは「スタンバイ解除要因となる割込み」のみである。 指定可能な割込みモードは以下のように定義される。ただし、割込みの種別により指定可能なモードが定められているので、マイコンのマニュアルを参照のこと。

#define IM_LEVEL    0x0002         /* Level trigger */
#define IM_EDGE     0x0000         /* Edge trigger */
#define IM_HI       0x0000         /* H level/Interrupt at rising edge */
#define IM_LOW      0x0001         /* L level/Interrupt at falling edge */

⑦ 割込みコントローラの割込みマスクレベル設定(SetCtrlIntLevel) 割込みコントローラ(NVIC)に本機能はないため、未実装である。

⑧ 割込みコントローラの割込みマスクレベル取得(GetCtrlIntLevel) 割込みコントローラ(NVIC)に本機能はないため、未実装である。

上記のAPIは以下のファイルに記述される。

 lib/libtk/sysdepend/cpu/tx03_m367/int_m367.c

2.3.10. OS管理外割込み

ARMv7-M向け実装仕様書を参照のこと。

2.3.11. その他の例外処理

ARMv7-M向け実装仕様書を参照のこと。

3. システムの起動

3.1. 起動処理

3.1.1. リセットハンドラ

リセットハンドラはARMv7-M向け実装仕様書を参照のこと。 リセットハンドラから呼ばれるknl_startup_hw関数により対象システムに固有の処理が実行される。 knl_startup_hw関数は以下のファイルに定義される。

 kernel/sysdepend/iote_m367/hw_setting.c

knl_startup_hw関数では以下の処理が実行される。ユーザは必要に応じてknl_startup_hw関数の内容を変更してよい。

(1) ウォッチドックタイマの無効化 ウォッチドックタイマは停止状態に設定している。

(2) CPUクロックの設定 CPUクロックの設定は以下のファイルのstartup_clock関数で行っている。

 kernel/sysdepend/iote_m367/cpu_clock.c

本実装では以下の設定となる。

項目 内容
PLL逓倍値設定 入力クロック12MHz
出力クロック72MHz(6逓倍)
fperiph選択 fgearを選択
プリスケーラクロック選択 fperiphを選択
高速クロック(fc)のギア選択 fc/2
SCOUT出力選択 fsys/2

クロックの値はプログラム中で使用可能なように以下のファイルで定義されている。

 include/sys/sysdepend/cpu/tx03_m367/sysdef.h
#define HISPEED_CLOCK_MHz     12
#define PLL_MODE_6X           6

#define CLOCK_fPLL          (HISPEED_CLOCK_MHz * PLL_MODE_6X * 1000000)
#define CLOCK_fc            (CLOCK_fPLL)
#define CLOCK_fgear         (CLOCK_fc / 2)
#define CLOCK_fsys          (CLOCK_fgear)
#define CLOCK_fperiph       (CLOCK_fgear)
#define CLOCK_T0            (CLOCK_fperiph)

なお、クロックの初期設定は原則として変更してはならない。もし変更した場合は、OSのクロック制御やデバイスドライバの制御にも影響がある場合があるため、合わせてプログラムの変更を行わなくてはならない。

(3) I/O端子の設定 入出力ポートの各レジスタ(PxCR, PxFRy, PxPUPなど)を初期化し、各I/O端子の機能設定を行う。 設定はsetup_regsテーブルの内容に従い実行する。 setup_regsテーブルの要素は以下の構造体であり、レジスタのアドレスと設定値を示す。テーブルの内容を変更することにより、I/O端子の設定を変えることができる。

typedef struct {
	UW	addr;     // レジスタのアドレス
	UW	data;     // レジスタの設定値
} T_SETUP_REG;

初期値では以下の端子の機能が設定されている。

● コンフィギュレーションUSE_SDEV_DRVが無効(0)の場合

I/Oポート名 機能名 用途
PA4 RTS5 デバッグ用シリアル入出力(T-Monitor)
PA5 RXD5 同上
PA6 TXD5 同上
PA7 CTS5 同上

● コンフィギュレーションUSE_SDEV_DRVが有効(1)の場合

I/Oポート名 機能名 用途
PA4 RTS5 デバッグ用シリアル入出力(T-Monitor)
PA5 RXD5 同上
PA6 TXD5 同上
PA7 CTS5 同上
PF6 SCL1 デバイスドライバ(I2C)
PF7 SDA1 同上
PL1 GPIO 出力ポート

3.1.2. OS初期化処理

OS初期化処理は共通部のmain関数で実行される。 main関数から以下の対象システムに依存する処理が実行される。

(1) デバイスの初期化 knl_init_device main関数より呼び出され、デバイスドライバの登録に先立ち、必要なハードウェアの初期化を行う。 デバイスの初期化は以下のファイルにknl_init_device関数として実装される。

 kernel/sysdepend/iote_m367/devinit.c

なお、本実装ではknl_init_device関数内の処理は記述されてないので、ユーザは必要に応じてknl_init_device関数に処理を記述すること。

3.2. 初期タスク

3.2.1. 初期タスクの処理

初期タスクの処理は共通部のinit_task_main関数で実行される。 init_task_main関数から以下の対象システムに依存する処理が実行される。

(1) デバイスの実行(knl_start_device) デバイスドライバの登録、実行を行う。本処理は以下のファイルにknl_start_device関数として定義される。

 kernel/sysdepend/iote_m367/devinit.c

コンフィギュレーションUSE_SDEV_DRVが有効(1)の場合、以下の基本的なデバイスドライバが登録される。

デバイス名 機能
serb シリアル通信(UART5)
iicb I2C通信(SBI1)
adca A/Dコンバータ(ADC)

コンフィギュレーションUSE_SDEV_DRVが無効(0)の場合、デバイスドライバの登録は行われない(初期値は無効(0))。

ユーザが使用するデバイスドライバを変更する場合は、必要に応じて上記の関数の処理を変更する必要がある。

4. システムの終了と再起動

4.1. 終了処理と再起動処理

終了処理と再起動処理は共通部のshutdown_system関数で実行される。shutdown_system関数からハードウェアに依存する処理が呼び出される。 対象ハードウェアに依存する処理のうち、ARMv7-Mコアに共通の処理はARMv7-M向け実装仕様書を参照のこと。

(1) デバイスの終了処理 knl_finish_device knl_start_deviceと対となるデバイスの終了処理を実行する。 knl_finish_device関数は以下のファイルに定義される。

 kernel/sysdepend/iote_m367/devinit.c

なお、本実装ではknl_finish_device関数内の処理は記述されてないので、ユーザは必要に応じてknl_finish_device関数に処理を記述すること。

(2) ハードウェア停止処理(knl_shutdown_hw) ハードウェアをすべて停止し、マイコンを終了状態とする。本関数の処理でシステムは終了する。 knl_shutdown_hw関数は以下のファイルに定義される。

 kernel/sysdepend/iote_m367/hw_setting.c

なお、本実装では割込みを無効とし無限ループを行っている。ユーザは必要に応じてknl_shutdown_hw関数の内容を変更してよい。

(2) ハードウェア再起動(knl_restart_hw) ハードウェアの再起動処理を行う。knl_restart_hw関数は以下のファイルに定義される。

 kernel/sysdepend/iote_m367/hw_setting.c

なお、本実装では再起動には対応していないので、処理のひな型のみを記述している。knl_restart_hw関数はエラーを返して終了し、システムは終了するようになっている。ユーザは必要に応じて、knl_restart_hw関数に再起動処理を記述すること。

5. タスク

本マイコンに依存するタスクの仕様を以下に記す。ARMv7-M向け実装仕様書も参照のこと。

5.1. タスク属性

タスク属性のハードウェア依存仕様を以下に示す。

属性 可否 説明
TA_COPn × 本マイコンはコプロセッサを持たない。
TA_FPU × 本マイコンはFPUを持たない。

5.2. タスクの処理ルーチン

ARMv7-M向け実装仕様書を参照のこと。

5.3. タスク・コンテキスト情報

ARMv7-M向け実装仕様書を参照のこと。

6. 時間管理機能

6.1. システムタイマ

ARMv7-M向け実装仕様書を参照のこと。

6.2. タイムイベントハンドラ

タイムイベントハンドラの実行中の割込みマスクレベルは、タイムイベントハンドラ割込みレベルTIMER_INTLEVELに設定される。TIMER_INTLEVELは、以下のファイルで定義される。

 include/sys/sysdepend/cpu/tx03_m367/sysdef.h

本実装では初期値は以下のように0(すべての割込みを許可)が設定されている。

 #define TIMER_INTLEVEL   0    //すべての割込みを許可

7. その他の実装仕様

7.1. 物理タイマ機能

7.1.1. 使用するハードウェアタイマ

マイコン内蔵の16ビットタイマ(TMRB)を16ビットインターバルタイマモードで使用して8個の物理タイマが実装されている。 16ビットタイマTMRB0~TMRB7以下のように物理タイマ番号が1から割り当てられる。

物理タイマ番号 対応するタイマ ビット幅
1 TMRB0 16
2 TMRB1 16
3 TMRB2 16
4 TMRB3 16
5 TMRB4 16
6 TMRB5 16
7 TMRB6 16
8 TMRB7 16

TMRBは物理タイマ以外の用途にも使用可能である。その場合は物理タイマAPIを呼び出さなければよい(API StartPhysicalTimerにてTMRBは物理タイマに初期化される)。

7.1.2. タイマの設定

物理タイマのクロック設定は、以下のファイルで定義される。

 include/sys/sysdepend/cpu/tx03_m367/sysdef.h
#define	TB0MOD_TBCLK	(0x00000001)    // Source clock = T1
#define	TB1MOD_TBCLK	(0x00000001)    // Source clock = T1
#define	TB2MOD_TBCLK	(0x00000001)    // Source clock = T1
#define	TB3MOD_TBCLK	(0x00000001)    // Source clock = T1
#define	TB4MOD_TBCLK	(0x00000001)    // Source clock = T1
#define	TB5MOD_TBCLK	(0x00000001)    // Source clock = T1
#define	TB6MOD_TBCLK	(0x00000001)    // Source clock = T1
#define	TB7MOD_TBCLK	(0x00000001)    // Source clock = T1

この値は、TMRBのTBxMODレジスタのTBCLKビットに設定される。上記の設定を変更することにより、各物理タイマのクロックを変更できる。 本実装においてタイマの周波数はfc/4である。fcは72MHzなので18MHzとなる。

7.1.3. タイマ割込み

物理タイマはその内部処理において、各TMRBのコンペア一致/オーバーフロー割込み(INTTB)を使用する。

物理タイマ番号 対応する割込み 割込み番号
1 INTTB0 75
2 INTTB1 78
3 INTTB2 81
4 INTTB3 84
5 INTTB4 87
6 INTTB5 90
7 INTTB6 93
8 INTTB7 96

各割込みの優先度は以下のファイルに定義される。割込み優先度は必要に応じて変更可能である。

 include/sys/sysdepend/cpu/tx03_m367/sysdef.h
#define INTPRI_TMRB0	5	// 物理タイマ1
#define INTPRI_TMRB1	5	// 物理タイマ2
#define INTPRI_TMRB2	5	// 物理タイマ3
#define INTPRI_TMRB3	5	// 物理タイマ4
#define INTPRI_TMRB4	5	// 物理タイマ5
#define INTPRI_TMRB5	5	// 物理タイマ6
#define INTPRI_TMRB6	5	// 物理タイマ7
#define INTPRI_TMRB7	5	// 物理タイマ8

7.2. T-Monitor互換ライブラリ

7.2.1. コンソール入出力

T-Monitor互換ライブラリのAPIによるコンソール入出力の仕様を以下に示す。

項目 内容
デバイス 内蔵UART Channel 5
ボーレート 115200bps
データ形式 data 8bit, stop 1bit, no parity

8. 変更履歴

版数 日付 内容
2.00.00 2023.12.01 ・内容・構成の全面見直し
1.00.10 2022.10.14 ・誤字修正
1.00.09 2022.10.07 ・μT-Kernelおよび関連仕様書バージョン更新
・5.1リセット処理 (2)ベクタテーブルの移動
誤記修正 (誤) USE_NOINIT (正)USE_STATIC_IVT
1.00.08 2022.06.30 ・5.2ハードウェアの初期化および終了処理
cpu_clock.cファイルのパス変更
1.00.07 2021.11.15 ・1.4 関連ドキュメント バージョン番号等を更新
・誤記修正 (正)RNG (誤)RING
1.00.06 2021.03.31 ・1.3 ターゲット名
ターゲット名「CPU_TMPM369FDFG」を実CPUと同じ「CPU_TMPM367FDFG」に変更
・1.4 関連ドキュメント バージョン番号等を更新
・4. 割込みおよび例外
説明の見直し
設定可能な優先度の誤記修正(正)優先度2~6
SetCpuIntLevelおよびGetCpuIntLevelについて、誤記修正(マスクレベル0指定時の動作)およびINTLEVEL_EI、INTLEVEL_DIに関する説明を追加
1.00.05 2020.12.09 ・1.4 関連ドキュメント バージョン番号等を更新
・1.5 ソースコード構成
コア依存部の変更等を記載
・2.4 低消費電力モードと省電力機能
ファイル名の変更「power.c」→「power_save.c」
・3.5 OS内の動的メモリ管理 説明追加
・4.2 ベクタテーブル
ファイルのパス(ディレクトリ)の変更
・5.2 ハードウェアの初期化および終了処理
コンフィギュレーションUSE_SDEV_DRVによるハードウェアの初期化の説明を追加
・5.3 デバイスドライバの実行および終了
コンフィギュレーションUSE_SDEV_DRVによるデバイスドライバの初期化の説明を追加
・6 タスク および、7時間管理
「6.その他の実装仕様」から独立した章に変更
1.00.04 2020.10.21 ・1.4 関連ドキュメント バージョン番号等を更新
・4.4 OS内部で使用する割込み
使用していないSVC割込みの記述を削除
・5.2ハードウェアの初期化および終了処理
ハードウェアの初期設定の処理について説明を追記
・6.3.2 タイマの設定
物理タイマのクロック設定について説明を追記
1.00.03 2020.07.13 ・4.4 OS内部で使用する割込み
ディスパッチ要求と強制ディスパッチ要求を同一<の割込み(PendSV)を使用するように変更
・4.6 4.6 μT-Kernel/SMの割込み管理機能 ユーザが使用できる割込み範囲を変更(2~5 → 2~6)
・6.3 物理タイマ機能 新規
1.00.02 2020.05.29 ・1.4 関連ドキュメント バージョン番号等を更新・4.4 OS内部で使用する割込み 説明分の見直し
1.00.01 2020.03.13 ・1.4 関連ドキュメント 更新
・3.3 OSのメモリマップ
コンフィグレーションUSE_STATIC_IVTの説明を追加
・4.5 μT-Kenrel/OSの割込み管理機能
「割込みハンドラの優先度」の説明を本来の「4.6 μT-Kernel/SMの割込み管理機能」に移動。また「割込みハンドラの優先度」を「割込みの優先度」に修正。
・5.2 ハードウェアの初期化および終了処理
5.3 デバイスドライバの実行および終了
ハードウェアの周辺デバイスと、OSが管理するデバイスドライバが、デバイスという同一の名称で一緒に説明されていたので、節を分けるように修正。また、後者をデバイスと呼び前者はハードウェアと呼ぶこととした。
・その他
全角、半角の文字統一など文章の体裁の修正
1.00.00 2019.12.11 ・初版