C2A_Core
c2a_core_main.c
[詳解]
1
#pragma section REPRO
2
#include "
c2a_core_main.h
"
3
4
#include "
./Library/git_revision.h
"
5
#include "
./Library/print.h
"
6
#include "
./System/TaskManager/task_dispatcher.h
"
7
#include "
./System/ApplicationManager/app_manager.h
"
8
#include "
./System/EventManager/event_manager.h
"
9
#include "
./System/TimeManager/time_manager.h
"
10
#include "
./System/ModeManager/mode_manager.h
"
11
#include "
./System/WatchdogTimer/watchdog_timer.h
"
12
#include "
./TlmCmd/packet_handler.h
"
13
#include "
./TlmCmd/block_command_table.h
"
14
#include "
./TlmCmd/command_analyze.h
"
15
#include "
./TlmCmd/telemetry_frame.h
"
16
17
#include <
src_user/Applications/app_registry.h
>
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
53
TMGR_down_initializing_flag
();
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である.
62
TDSP_execute_pl_as_task_list
();
63
WDT_clear_wdt
();
64
}
65
66
#pragma section
AM_initialize_all_apps
void AM_initialize_all_apps(void)
Definition:
app_manager.c:48
AM_initialize
void AM_initialize(void)
Definition:
app_manager.c:22
app_manager.h
AR_load_initial_settings
void AR_load_initial_settings(void)
Definition:
app_registry.c:11
app_registry.h
BCT_initialize
void BCT_initialize(void)
BCT の初期化関数
Definition:
block_command_table.c:58
block_command_table.h
BCTの定義, BCT周りの関数
C2A_core_main
void C2A_core_main(void)
Definition:
c2a_core_main.c:56
C2A_core_init
void C2A_core_init(void)
Definition:
c2a_core_main.c:25
GIT_REV_USER_SHORT
const uint32_t GIT_REV_USER_SHORT
Definition:
c2a_core_main.c:23
GIT_REV_CORE
const char GIT_REV_CORE[41]
< 設定ないしcommit hashを読み込む
Definition:
c2a_core_main.c:20
GIT_REV_CORE_SHORT
const uint32_t GIT_REV_CORE_SHORT
Definition:
c2a_core_main.c:21
GIT_REV_USER
const char GIT_REV_USER[41]
Definition:
c2a_core_main.c:22
c2a_core_main.h
CA_initialize
void CA_initialize(void)
CA の初期化
Definition:
command_analyze.c:37
command_analyze.h
コマンドの実行・登録,コマンド関連処理
EM_initialize
void EM_initialize(void)
event_manager の初期化
Definition:
event_manager.c:11
event_manager.h
C2A全体のイベントを管理する
git_revision.h
git revisionをコードに埋め込むための準備をする
MM_initialize
void MM_initialize(void)
モード遷移を管理する ModeManager 構造体 (mode_manager_) の初期化
Definition:
mode_manager.c:50
mode_manager.h
モード遷移の制御の定義
PH_init
void PH_init(void)
Packet Handler を初期化
Definition:
packet_handler.c:75
packet_handler.h
C2A 全体を流れる Common Packet の配送を制御する
print.h
HW 依存 Print, つまり ログ情報のフォーマット出力(デバッグ出力)
Printf
void Printf(const char *format,...)
Definition:
print.c:9
TDSP_initialize
void TDSP_initialize(void)
タスク管理を行うTaskDsipatcher構造体(TaskDsipatcher_)の初期化
Definition:
task_dispatcher.c:48
TDSP_execute_pl_as_task_list
void TDSP_execute_pl_as_task_list(void)
現在時刻に応じて、TaskList から Cmd を一つ実行する or TaskList を再展開する
Definition:
task_dispatcher.c:93
task_dispatcher.h
task list に設定されたタスクを実行する主体
TF_initialize
void TF_initialize(void)
TF の初期化
Definition:
telemetry_frame.c:36
telemetry_frame.h
テレメトリの登録,テレメトリ関連処理
TMGR_down_initializing_flag
void TMGR_down_initializing_flag(void)
C2Aの初期化終了時に呼び出し, 初期化flagを下げ, TMGRをもう一度クリアする
Definition:
time_manager.c:72
time_manager.h
OBC時刻のカウントアップと,各種衛星時刻関連処理
WDT_clear_wdt
void WDT_clear_wdt(void)
WDTのクリア
Definition:
watchdog_timer.c:33
watchdog_timer.h
watchdog timer
src
src_core
c2a_core_main.c
構築:
1.9.1