Skip to content

Commit

Permalink
Merge pull request #328 from arkedge/feature/build_option_docs
Browse files Browse the repository at this point in the history
C2A User 開発者のための簡易なドキュメントを追加
  • Loading branch information
meltingrabbit authored Apr 11, 2024
2 parents 8460284 + ad0c895 commit 80e6c96
Show file tree
Hide file tree
Showing 7 changed files with 46 additions and 2 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ option(C2A_USE_SPACE_PACKET_AS_COMMON_PACKET "Use C2A-core Space Packet as Comm
option(C2A_MOBC_FEATURES "Enable some features for MOBC" OFF)

## C2A CCSDS select
# See alse; /docs/core/ccsds.md
# See also; /docs/core/ccsds.md
option(C2A_USE_CORE_CCSDS_AOS_SPACE_DATA_LINK_PROTOCOL "Use C2A-core CCSDS AOS SPACE DATA LINK PROTOCOL implementation" OFF)
option(C2A_USE_CORE_CCSDS_TC_SPACE_DATA_LINK_PROTOCOL "Use C2A-core CCSDS TC SPACE DATA LINK PROTOCOL implementation" OFF)

Expand Down
2 changes: 2 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ C2A に関する説明の棲み分けは,次のようになっています.
1. [Overview](./general/overview.md)
1. [Requirements](./general/requirements.md)
1. [Release](./general/release.md)
1. [Architecture](./general/architecture.md)
1. [CMake](./general/cmake.md)
1. [Coding Rule](./general/coding_rule.md)
1. [Coding Acronyms](./general/coding_acronyms.md)
1. Application Layer
Expand Down
13 changes: 13 additions & 0 deletions docs/application/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,16 @@

## テレメトリ
- アプリケーションの内部状態を送信するデータを規定する.


## c2a-core Application の利用
次のコンパイルオプションを `ON` とすることで,c2a-core の Application を利用できる.
https://github.com/arkedge/c2a-core/blob/4472ef1a5670c2674f10b6b72b088d616367bd86/CMakeLists.txt#L18-L20

#### `C2A_USE_ALL_CORE_APPS`
test app 以外の全ての [c2a-core Application](/applications/) をビルドする.
`OFF` の場合, `/src_user/applications/CMakeLists.txt` にビルドしたい c2a-core Application を適宜追加すること.
https://github.com/arkedge/c2a-core/blob/459dbbf84d9587730f248ccbadb5a5745b28903d/examples/subobc/src/src_user/applications/CMakeLists.txt#L9-L13

#### `C2A_USE_ALL_CORE_TEST_APPS`
全ての [c2a-core Test Application](/applications/test_app/) をビルドする.
6 changes: 5 additions & 1 deletion docs/core/ccsds.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,8 @@ AOS Space Data Link Protocol や TC Space Data Link Protocol は,様々な設
(今後,適切にリファクタリングする予定.)

また,本コードをコンパイル対象に加えると,少なくない RAM を static に確保してしまうため,デフォルトではコンパイル対象には含まれない.
コンパイル対象に含める場合は, FIXME: で設定すること.


## ビルドオプション
AOS Space Data Link Protocol と TC Space Data Link Protocol の各実装をコンパイル対象に含める場合は,以下の `C2A_USE_CORE_CCSDS_AOS_SPACE_DATA_LINK_PROTOCOL`, `C2A_USE_CORE_CCSDS_TC_SPACE_DATA_LINK_PROTOCOL` オプションをそれぞれ `ON` に設定すること.
https://github.com/arkedge/c2a-core/blob/4472ef1a5670c2674f10b6b72b088d616367bd86/CMakeLists.txt#L26-L29
3 changes: 3 additions & 0 deletions docs/core/communication.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@ C2A 内部を流れるパケットは以下の 3 つである.
C2A 標準として, Space Packet が Core 内で定義されており,基本的にはこれを用いることを想定している.
ただし,C2A 標準 Space Packet は後述する通り,Secondary Header が独自定義されている.

Common Packet の実装として,c2a-core が提供する Space Packet のデフォルト実装を用いる場合は,以下の `C2A_USE_SPACE_PACKET_AS_COMMON_PACKET` オプションを `ON` に設定すること.
https://github.com/arkedge/c2a-core/blob/12c6b614e15e3e5a24f416d640b8b024abca5965/CMakeLists.txt#L22


## C2A 標準 Space Packet 定義
C2A 標準 Space Packet は,CCSDS (Consultative Committee for Space Data Systems.宇宙データシステムの標準化を進めている機関) の Space Packet に準拠したものである(参考: [CCSDS SPACE PACKET PROTOCOL](https://public.ccsds.org/Pubs/133x0b2e1.pdf)).
Expand Down
12 changes: 12 additions & 0 deletions docs/general/architecture.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Architecture

## 概要
C2A が想定する,アーキテクチャについてまとめる (TBW).


## OBC
通信機と接続され衛星の全体を司る MOBC (Main On-Board Computer) と,MOBC の配下に接続される sub OBC (AOCS OBC など) が存在する.
そして,コンポーネントの中心に MOBC があり, sub OBC を含む各コンポーネントは MOBC と接続される.

デフォルトは sub OBC 向けの実装となっており, MOBC を開発するときは,`C2A_MOBC_FEATURES``ON` にし有効化する.
https://github.com/arkedge/c2a-core/blob/4472ef1a5670c2674f10b6b72b088d616367bd86/CMakeLists.txt#L24
10 changes: 10 additions & 0 deletions docs/general/cmake.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# CMake
## CMake Options
C2A User から利用するビルドオプションは, [`/CMakeLists.txt`](/CMakeLists.txt) で定義される.
https://github.com/arkedge/c2a-core/blob/4472ef1a5670c2674f10b6b72b088d616367bd86/CMakeLists.txt#L5-L31


### `stdint.h`
C89 ターゲットでビルドする際に `C2A_USE_STDINT_WRAPPER``ON` にすることで,コンパイラが提供するものではなく,ユーザ定義の `stdint.h` を使うことができる.
その場合, `src_user/library/stdint_impl.h` にユーザー定義の `stdint.h` を配置すること.
https://github.com/arkedge/c2a-core/blob/4472ef1a5670c2674f10b6b72b088d616367bd86/CMakeLists.txt#L14

0 comments on commit 80e6c96

Please sign in to comment.