C2A_Core
c2a_core_main.c
[詳解]
1 #pragma section REPRO
2 #include "c2a_core_main.h"
3 
5 #include "./Library/print.h"
16 
18 
19 // git revisionをコードに埋め込む
20 const char GIT_REV_CORE[41] = GIT_REVISION_C2A_CORE;
21 const uint32_t GIT_REV_CORE_SHORT = GIT_REVISION_C2A_CORE_SHORT;
22 const char GIT_REV_USER[41] = GIT_REVISION_C2A_USER;
23 const uint32_t GIT_REV_USER_SHORT = GIT_REVISION_C2A_USER_SHORT;
24 
25 void C2A_core_init(void)
26 {
27  CA_initialize(); // Cmd Analyze
28  Printf("C2A_init: CA_initialize done.\n");
29  TF_initialize(); // TLM frame
30  Printf("C2A_init: TF_initialize done.\n");
31  PH_init(); // Packet Handler
32  Printf("C2A_init: PH_init done.\n");
33  EM_initialize(); // Event Manager.App Managerより先に初期化するべき
34  Printf("C2A_init: EM_initialize done.\n");
35  AM_initialize(); // App Manager
36  Printf("C2A_init: AM_initialize done.\n");
37  AR_load_initial_settings(); // App Registry
38  Printf("C2A_init: AR_load_initial_settings done.\n");
39  AM_initialize_all_apps(); // App Managerに登録されてる全アプリの初期化
40  Printf("C2A_init: AM_initialize_all_apps done.\n");
41  BCT_initialize(); // Block Cmd Table
42  // BC_load_defaults() もここで呼ばれる
43  Printf("C2A_init: BCT_initialize done.\n");
44  MM_initialize(); // Mode Manager
45  // ここでSTART UP to INITIALのモード遷移も行われる
46  Printf("C2A_init: MM_initialize done.\n");
47  TDSP_initialize(); // Task Dispatcher
48  // MM初期化よりもあとに行われる必要がある
49  Printf("C2A_init: TDSP_initialize done.\n");
50  // DebugOutInit(); // Debugのinit // LVTTL UART ch1での出力.邪魔なのでPrintfの中身とともに無効化 (2019-04-09)
51  // Printf("C2A_init: DebugOutInit done.\n");
52 
54 }
55 
56 void C2A_core_main(void)
57 {
58  // ここでいうtask dispatcherは,TL0とかではなく,
59  // task listのBlockCommandをdispatchしている.
60  // TL0などのPLをdispatchしているのは,tlc_dispatcher @ App/timeline_command_dispatcher である.
61  // なお,PL (packetList) のPL_infoとは,順次dispatchしていくパケットを時系列にならべたlinked listである.
63  WDT_clear_wdt();
64 }
65 
66 #pragma section
void AM_initialize_all_apps(void)
Definition: app_manager.c:48
void AM_initialize(void)
Definition: app_manager.c:22
void AR_load_initial_settings(void)
Definition: app_registry.c:11
void BCT_initialize(void)
BCT の初期化関数
BCTの定義, BCT周りの関数
void C2A_core_main(void)
Definition: c2a_core_main.c:56
void C2A_core_init(void)
Definition: c2a_core_main.c:25
const uint32_t GIT_REV_USER_SHORT
Definition: c2a_core_main.c:23
const char GIT_REV_CORE[41]
< 設定ないしcommit hashを読み込む
Definition: c2a_core_main.c:20
const uint32_t GIT_REV_CORE_SHORT
Definition: c2a_core_main.c:21
const char GIT_REV_USER[41]
Definition: c2a_core_main.c:22
void CA_initialize(void)
CA の初期化
コマンドの実行・登録,コマンド関連処理
void EM_initialize(void)
event_manager の初期化
Definition: event_manager.c:11
C2A全体のイベントを管理する
git revisionをコードに埋め込むための準備をする
void MM_initialize(void)
モード遷移を管理する ModeManager 構造体 (mode_manager_) の初期化
Definition: mode_manager.c:50
モード遷移の制御の定義
void PH_init(void)
Packet Handler を初期化
C2A 全体を流れる Common Packet の配送を制御する
HW 依存 Print, つまり ログ情報のフォーマット出力(デバッグ出力)
void Printf(const char *format,...)
Definition: print.c:9
void TDSP_initialize(void)
タスク管理を行うTaskDsipatcher構造体(TaskDsipatcher_)の初期化
void TDSP_execute_pl_as_task_list(void)
現在時刻に応じて、TaskList から Cmd を一つ実行する or TaskList を再展開する
task list に設定されたタスクを実行する主体
void TF_initialize(void)
TF の初期化
テレメトリの登録,テレメトリ関連処理
void TMGR_down_initializing_flag(void)
C2Aの初期化終了時に呼び出し, 初期化flagを下げ, TMGRをもう一度クリアする
Definition: time_manager.c:72
OBC時刻のカウントアップと,各種衛星時刻関連処理
void WDT_clear_wdt(void)
WDTのクリア
watchdog timer