新石器Wiki

近年はシリコン(石)から進化した便利なもので溢れる時代。そんな気になった事や試した事など記す。

ユーザ用ツール

サイト用ツール


develop:rtk_kernel:rtk_kernel-user-application


差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
develop:rtk_kernel:rtk_kernel-user-application [2020/01/07 14:11] – ↷ develop:yt-kernel:ytkernel-user-application から develop:rtk_kernel:rtk_kernel-user-application へページの移動と名称変更しました。 yokodevelop:rtk_kernel:rtk_kernel-user-application [2026/07/28 13:16] (現在) – 外部編集 127.0.0.1
行 1: 行 1:
-yt-kernelユーザアプリケーション +====== rtk_kernelユーザアプリケーション ====== 
-============================= +rtk_kernelから呼ばれるユーザアプリケーションには以下の2種類がある。
-yt-kernelから呼ばれるユーザアプリケーションには以下の2種類がある。+
  
-1. T-Kernelと一緒にリンクしたアプリケーションプログラム。 +  - T-Kernelと一緒にリンクしたアプリケーションプログラム。 
-2. T-Kernelとは別オブジェクトで作成されたアプリケーションプログラム。+  T-Kernelとは別オブジェクトで作成されたアプリケーションプログラム。
  
-概要 +===== 概要 =====
-----+
 T-Kernelが起動すると、`opt_main()`タスクが実行され(`tkernel_source/kernel/sysmain/src/opt_main.c`)、rominfoで指定(`userinit`)した開始番地からのヘッダ情報をチェックしてOKなら開始番地の外部アプリに分岐する。   T-Kernelが起動すると、`opt_main()`タスクが実行され(`tkernel_source/kernel/sysmain/src/opt_main.c`)、rominfoで指定(`userinit`)した開始番地からのヘッダ情報をチェックしてOKなら開始番地の外部アプリに分岐する。  
 開始番地が未定義(`0`)かヘッダ情報が不正の場合は、ワーニング表示して`opt_main()`に記述してあるサンプルアプリを実行する。 開始番地が未定義(`0`)かヘッダ情報が不正の場合は、ワーニング表示して`opt_main()`に記述してあるサンプルアプリを実行する。
  
-1.T-Kernelとリンクするアプリ +=====   -T-Kernelとリンクするアプリ =====
---------------------------+
 T-Kernelとリンクしたユーザアプリプログラムを使いたい場合は、`opt_main()`から呼ばれる同梱のサンプルアプリ(T2EXの簡易ショル)の代わりにユーザ定義のプログラムが実行されるように直接記述していく。 T-Kernelとリンクしたユーザアプリプログラムを使いたい場合は、`opt_main()`から呼ばれる同梱のサンプルアプリ(T2EXの簡易ショル)の代わりにユーザ定義のプログラムが実行されるように直接記述していく。
  
-2.T-Kernelとは別オブジェクトの外部アプリ +=====   -T-Kernelとは別オブジェクトの外部アプリ ===== 
-------------------------------------- +外部アプリは、本`rtk_kernel`プロジェクトを直接変更して利用する事もできるが、アプリプロジェクト内にGitサブモジュール機能でサブディレクトリとして登録して使う事を想定。  
-外部アプリは、本`yt-kernel`プロジェクトを直接変更して利用する事もできるが、アプリプロジェクト内にGitサブモジュール機能でサブディレクトリとして登録して使う事を想定。  +
 又、別プロジェクトで動かす外部アプリのサンプルプロジェクトも公開していく予定。 又、別プロジェクトで動かす外部アプリのサンプルプロジェクトも公開していく予定。
  
行 30: 行 26:
  
 ### 外部アプリのヘッダ情報 ### 外部アプリのヘッダ情報
-yt-kernelでは不正なプログラムを実行しないように、開始番地からヘッダ情報(下記)をチェックし、整合が確認できたら開始番地に分岐する。+rtk_kernelでは不正なプログラムを実行しないように、開始番地からヘッダ情報(下記)をチェックし、整合が確認できたら開始番地に分岐する。
  
 ^ 相対番地   ^ 名称            ^ 説明              ^ 備考            ^ ^ 相対番地   ^ 名称            ^ 説明              ^ 備考            ^
行 42: 行 38:
 | +0x1C  | (Reserved)    | `0`にしておく        | 予約            | | +0x1C  | (Reserved)    | `0`にしておく        | 予約            |
  
-外部アプリ作成要領 +===== 外部アプリ作成要領 =====
------------------+
 外部アプリは、全く独立した実行モジュールなので、C言語などで動かす場合はスタートアップルーチンから記述する。T-Kernel機能の呼び出しはサービスコールにより行い、T-Kernelサービスコールのライブラリをリンクする必要がある。 外部アプリは、全く独立した実行モジュールなので、C言語などで動かす場合はスタートアップルーチンから記述する。T-Kernel機能の呼び出しはサービスコールにより行い、T-Kernelサービスコールのライブラリをリンクする必要がある。
  
 別モジュールなので自由にプログラムでき、[[wpjp>Newlib]] のC標準ライブラリなども利用する事も可能。 別モジュールなので自由にプログラムでき、[[wpjp>Newlib]] のC標準ライブラリなども利用する事も可能。
  
-{{tag>yt-kernel}}+{{tag>rtk_kernel}}
  
develop/rtk_kernel/rtk_kernel-user-application.1578373894.txt.gz · 最終更新: by yoko