C2A_Core
c2a_main.c
[詳解]
1
#include <
src_core/Library/git_revision.h
>
2
#include <
src_core/Library/print.h
>
3
#include <
src_core/c2a_core_main.h
>
4
#include <
src_core/System/TimeManager/time_manager.h
>
5
#include <
src_core/System/WatchdogTimer/watchdog_timer.h
>
6
#include "
./Settings/sils_define.h
"
7
8
// SILSの時,通常main関数はC2A外にある
9
#ifdef DEFINE_MAIN_ON_SILS
10
int
main(
void
);
11
#endif
12
13
static
void
address_fixed_main_
(
void
);
14
static
void
C2A_init_
(
void
);
15
static
void
C2A_main_
(
void
);
16
static
void
timer_setting_
(
void
);
17
18
#ifdef DEFINE_MAIN_ON_SILS
19
int
main(
void
)
20
{
21
address_fixed_main_
();
22
return
0;
23
}
24
#endif
25
26
27
// RAM上でのアドレス固定main関数
28
#pragma section _FIX_MAIN
29
// Pセクションしか割り当てていないので,
30
// D, Bセクションに乗るような変数定義は禁止!!!
31
static
void
address_fixed_main_
(
void
)
32
{
33
#ifndef SILS_FW
34
// BOOT_LOADER_main();
35
#endif
36
C2A_init_
();
37
C2A_main_
();
38
}
39
#pragma section
40
41
42
#pragma section REPRO
43
static
void
C2A_main_
(
void
)
44
{
45
while
(1)
// whileもuserから隠蔽したいが,自由度とのトレードオフ...?
46
{
47
C2A_core_main
();
48
49
// ユーザー定義loop処理はここに入れる
50
}
51
52
// ここに来ることはないはずなので,来たらWDTのResetをかけるようにする?
53
}
54
#pragma section
55
56
57
#pragma section REPRO
58
// C2A関連の初期化
59
// HW関連部分(タイマー,割り込み設定など)のみ独自に初期化
60
// Printf内部で WDT_clear_wdt(); が呼ばれてることに注意!
61
static
void
C2A_init_
(
void
)
62
{
63
Printf
(
"C2A_init: user revision = %s\n"
,
GIT_REV_USER
);
64
65
WDT_init
();
66
TMGR_init
();
// Time Manager
67
// AM_initialize_all_apps での時間計測のためにここで初期化
68
Printf
(
"C2A_init: TMGR_init done.\n"
);
69
timer_setting_
();
// Timer 割り込み開始
70
Printf
(
"C2A_init: timer_setting_ done.\n"
);
71
72
C2A_core_init
();
73
74
// TaskDispatcherでの大量のアノマリを避けるために、一度時刻を初期化する。
75
TMGR_clear
();
76
Printf
(
"C2A_init: TMGR_init done.\n"
);
77
}
78
#pragma section
79
80
81
static
void
timer_setting_
(
void
)
82
{
83
}
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
const char GIT_REV_USER[41]
Definition:
c2a_core_main.c:22
c2a_core_main.h
C2A_main_
static void C2A_main_(void)
Definition:
c2a_main.c:43
timer_setting_
static void timer_setting_(void)
Definition:
c2a_main.c:81
C2A_init_
static void C2A_init_(void)
Definition:
c2a_main.c:61
address_fixed_main_
static void address_fixed_main_(void)
Definition:
c2a_main.c:31
git_revision.h
git revisionをコードに埋め込むための準備をする
print.h
HW 依存 Print, つまり ログ情報のフォーマット出力(デバッグ出力)
sils_define.h
Switch the build settings between your real OBC and SILS
Printf
void Printf(const char *format,...)
Definition:
print.c:9
TMGR_init
void TMGR_init(void)
TimeManager 構造体を初期化する
Definition:
time_manager.c:44
TMGR_clear
void TMGR_clear(void)
master_clock_ と unixtime_info_ をクリアし全てゼロにする
Definition:
time_manager.c:51
time_manager.h
OBC時刻のカウントアップと,各種衛星時刻関連処理
WDT_init
void WDT_init(void)
WDTの初期化
Definition:
watchdog_timer.c:18
watchdog_timer.h
watchdog timer
src
src_user
c2a_main.c
構築:
1.9.1