7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ABC language (O.K.版)Advent Calendar 2022

Day 11
この記事誰得? 私しか得しないニッチな技術で記事投稿!

kernel source: TOPPERS/SSP四段活用。落とし方、読み方、コンパイルの仕方、アプリの作り方。7つの壁

Last updated at Posted at 2018-01-22

オープンソースのソフトには、簡単にコンパイルできたり、簡単にバイナリが利用できたりするものが多くなってきた。TOPPERSのオープンソースは、ひょっとしたらその対極にあるかもしれない。TOPPERS/SSPのカーネルソースの勉強会を開催して、高橋さんから次々、便利な道具を提供していただいた。TOPPERS/SSPを正面から全部読んでいくか、使えるところを使いながら、勉強していくか、実は自由。
この文章は、TOPPERSプロジェクトの外から眺めて、使おうと思ったら、どういう壁にぶつかるかを記述しようとしています。

目次

落とし方
-正門
--上門
--左門
-裏門
-高橋門
-貴方の門
読み方
コンパイルの仕方
アプリの作り方

壁1 どこにあるかわからない。

今、自分が必要なソースコードまたはそのソースコードをコンパイルできる道具類を揃えるのに、どこをミラ大尉かわからないという壁が一番大きい。
あるセミナで調査したら、ソースコードをダウンロードした人の半分もコンパイルが成功していなかった。

落とし方(Download)

正門

http://toppers.jp
toppers.png

実は、正門にも、いっぱい門がある。

上門

上に文字列が横に並んだメニューがある。
これが上門。

 Topics
 About Project
 ASP Kernel
 Documents
 Download
 Community
 Report
 Contacts
 FAQ

利用者なら、あも、うもなく、Download。
でも、ASP Kernelを利用するなら ASP Kernelもある。
ま、順当にDownload
kernel.png

わ、いっぱいある。
TOPPERS/ASP3
TOPPERS/ASP
TOPPERS/JSP
TOPPERS/FMP
TOPPERS/FDMP
TOPPERS/HRP2
TOPPERS/EV3RT
TOPPERS/HRP
TOPPERS/SSP
TOPPERS/FI4
TOPPERS/ATK1
..
TOPPERS?ATK2
カーネルだけで12。
これから、自分の必要なカーネルがどれだかわからないかも。
おまけに、古いものと、新しいものが並列に並んでる。
これは、TOPPERSプロジェクトの人もわからないに違いない。<自分>

壁2 どのカーネルを利用したらいいのか分からない。

それぞれのカーネルには、歴史と伝統がある。自分が何をしたいかと、ソースが何を提供しているかは、お見合い。

大丈夫。今日はSSPしか目にない。
でも、簡易パッケージと個別パッケージと2つある。どちを使えばいいんじゃ。

  • 簡易パッケージ
  • 個別パッケージ

こういう時は、上から優先順位が高いと思えばよい。
もし、下に大事なものがあるとすれば、そんなサイトには石投げていいですから。

とにかく、簡易パッケージを開く。実は、個別パッケージでも同じ画面の位置が違うだけ。

ssp1.png

「え、SSPって、Smallest Set Profileの略なんだ。かっこいい。」と言おうと思ったら、書いてないじゃん。こりゃいかん。書き直しの案を作って送ろう。

ssp2.png

Package name, Processor name
CY8CKIT-050 PSoC 5LP Development Kit, Coretex M3
Renesas Startar Kit for R8C/23, M32C/87,同左
Interface FM3, Coretex M3
Design Wave CQ_STARM, STM32F
Interface RX62N, RX62N

え、STM32Fって、CORTEX M3じゃないの?

ターゲット非依存部を落としたら、そこにはarchとtargetという依存部らしきものもある。

壁3 CPU・コンパイラの対応

今、用意されているソースは、どのOS上の設計環境(compilar)の、どのCPUならコンパイルできるか、動くか。

down.png

ナンジャコリャ状態。

down2.png
それぞれのフォルダを開くと、
archの中は、arm, gccという言葉がある。CPUやCompilerに依存した部分。
targetの中には、cq_frk_fm3_gggとある。ボード(CPUを含む)とコンパイラに依存した部分。
なんで、この2つをまとめた対象(target依存)フォルダにしないのだろう。

作った人が整理しやすいのか、相互に関係がないのか。
ssp3.png

左門

会員向けページ 
プロジェクトについて
取り組み
開発成果物
教育コンテンツ
ドキュメント
ダウンロード
関連製品
利用事例
コミュニティ情報
-メーリングリスト
-ソフトウェア
-統合開発環境
-外部リンク
-Contributed Software
-Contributed Software(GitHub)
-AUTOSAR-Wiki
その他の情報

上門は「Download」で。左門は「ダウンロード」。英語でも、日本語でもわかるので、こりゃ、いいや。
どちらから行っても同じ。

裏門

左門のコミュニティ情報の下に、「-Contributed Software」「-Contributed Software(GitHub)」とあるのが裏門。Contributed Software, Contributed Software(GitHub)とあるのが裏門

コミュニティ情報
-メーリングリスト
-ソフトウェア
-統合開発環境
-外部リンク
-Contributed Software
-Contributed Software(GitHub)
-AUTOSAR-Wiki

Contributed Software
http://dev.toppers.jp/trac_user/contrib
「​asp_wo_cfg | 高田広章(名古屋大学 大学院情報科学研究科) | TOPPERS/ASPカーネルを,コンフィギュレータなしで使えるように改造したもの 」
は、TOPPERS開発アプリケーションコンテストで入賞された中村晋一郎さんのご講演で、野良OS利用者としては、コンフィギュレータなしのOSを使いたいとお話になられたのに対して、作成されたもの。

SSP関連だと
「 ​ssp_armv6_m_gcc | Naoki Saito(NMIRI) | TOPPERS/SSPカーネル ARMv6-Mプロセッサ向け個別パッケージ 」
「​ssp_arm_gcc | Naoki Saito(NMIRI) | TOPPERS/SSPカーネル ARMプロセッサ(SkyEyeターゲット)向け個別パッケージ(experimental) 」
「 ​ssp_qb_r5f100le_cs | Naoki Saito(NMIRI) | TOPPERS/SSPカーネルQB-R5F100LE-TBボード(RL78/G13)向け簡易パッケージ」
「​rubycfg_ssp | Naoki Saito(NMIRI) | TOPPERS/SSPカーネルでRuby版コンフィギュレータを使用するためのファイル | SSP1.3.0対象 」

Contributed Software(GitHub)
https://github.com/TOPPERS-ContributedSoftware
には、SP3 Kernel without TECSと、CFG C++ がある。
作成者は、名古屋大学の松原豊さん。

高橋門

上記はTOPPERSのサイトにリンクがあるもの。
高橋さんもContribution softwareに
「CROSS TOOL VMWAREイメージ | 髙橋和浩(個人会員) | ARM GCC CROSS コンパイラ VMwarePlayer6.x イメージ」を挙げられている。
http://dev.toppers.jp/trac_user/contrib/browser/CROS-TOOL-VMWARE

TOPPERS/SSPのシュリンク版などを作って頂いている。
ルネサスの開発環境でのシミュレータの動作させ方の資料も作って頂いた。

貴方の門

自分が使う可能性のあるものだけ、自分のサイトに自分専用の門を作るといいかも。
qiitaでも良い。

読み方

docの下のuser.txtをまず開こう。

user.txt

利用者には、次の4種類が想定できる。

  1. SSPを特定のCPUに移植をする人
  2. SSPで用意されているCPUを別のコンパイラで利用する人
  3. SSPで用意されているCPUを別のボードで利用する人
  4. SSPを用意されているCPU、コンパイラ、ボード上で利用する人

内容が分離されていない。次のコンパイルの仕方に4の人だけ向けに整理

ソースコードを読む

ソースコードを読む場合に、タスク中心で読むか、デバイス中心で読むかで順番が異なる。

タスク

kernelフォルダのtask.c, task_manage.cを読もう。

デバイス

デバイス中心と言っても、timer中心、割り込み中心、シリアル中心などいくつもの視点がある。

timer

extensionフォルダのtime_event.c, time_manage.cから読む

割り込み

kernelフォルダのinterrupt.cから

シリアル

syssvcフォルダのserial.cから

デバイスに関するフォルダがあちこちに分かれている感がある。タスク中心でフォルダを決めているのだろうか。

コンパイルの仕方

コンフィギュレータ

コンフィギュレータは、バイナリファイルも用意されている。
コンフィギュレータのコンパイルに時間はかけたくない。

## 壁4 コンフィギュレータがコンパイルできない

壁5 コンフィギュレーションのスクリプトが書けない

コンパイラ

gccを基本とし、CPUによってはそれ以外のコンパイラにも対応している。

gcc

gccは、コンパイルオプション、リンクオプションが豊富です。
他の開発環境では、ソースコードに工夫が必要な事象も、コンパイルオプション、リンクオプションで解決することがあるらしいです。

ardump.c リンカ・ローダ実践開発テクニック 坂井弘亮(1) coding(89)
https://qiita.com/kaizen_nagoya/items/2a7bf3050ee6ac662272

壁6 クロスコンパイラがコンパイルできない

Clang/LLVMでうまくいっていないことがある。詳細後日追記予定。

## 壁7 クロスコンパイラでコンパイルエラーが出る
過去のログを整理中。

参考文献・URL

TOPPERS まとめ
https://qiita.com/kaizen_nagoya/items/9026c049cb0309b9d451

μITRON4.0仕様
http://www.ertl.jp/ITRON/SPEC/mitron4-j.html

<この項は書きかけです。順次追記します。>
This article is not completed. I will add some words in order.

関連資料

' @kazuo_reve 私が効果を確認した「小川メソッド」
https://qiita.com/kazuo_reve/items/a3ea1d9171deeccc04da

' @kazuo_reve 新人の方によく展開している有益な情報
https://qiita.com/kazuo_reve/items/d1a3f0ee48e24bba38f1

' @kazuo_reve Vモデルについて勘違いしていたと思ったこと
https://qiita.com/kazuo_reve/items/46fddb094563bd9b2e1e

Engineering Festa 2024前に必読記事一覧

登壇直後版 色使い(JIS安全色) Qiita Engineer Festa 2023〜私しか得しないニッチな技術でLT〜 スライド編 0.15
https://qiita.com/kaizen_nagoya/items/f0d3070d839f4f735b2b

プログラマが知っていると良い「公序良俗」
https://qiita.com/kaizen_nagoya/items/9fe7c0dfac2fbd77a945

逆も真:社会人が最初に確かめるとよいこと。OSEK(69)、Ethernet(59)
https://qiita.com/kaizen_nagoya/items/39afe4a728a31b903ddc

統計の嘘。仮説(127)
https://qiita.com/kaizen_nagoya/items/63b48ecf258a3471c51b

自分の言葉だけで論理展開できるのが天才なら、文章の引用だけで論理展開できるのが秀才だ。仮説(136)
https://qiita.com/kaizen_nagoya/items/97cf07b9e24f860624dd

参考文献駆動執筆(references driven writing)・デンソークリエイト編
https://qiita.com/kaizen_nagoya/items/b27b3f58b8bf265a5cd1

「何を」よりも「誰を」。10年後のために今見習いたい人たち
https://qiita.com/kaizen_nagoya/items/8045978b16eb49d572b2

Qiitaの記事に3段階または5段階で到達するための方法
https://qiita.com/kaizen_nagoya/items/6e9298296852325adc5e

出力(output)と呼ばないで。これは状態(state)です。
https://qiita.com/kaizen_nagoya/items/80b8b5913b2748867840

coding (101) 一覧を作成し始めた。omake:最近のQiitaで表示しない5つの事象
https://qiita.com/kaizen_nagoya/items/20667f09f19598aedb68

あなたは「勘違いまとめ」から、勘違いだと言っていることが勘違いだといくつ見つけられますか。人間の間違い(human error(125))の種類と対策
https://qiita.com/kaizen_nagoya/items/ae391b77fffb098b8fb4

プログラマの「プログラムが書ける」思い込みは強みだ。3つの理由。仮説(168)統計と確率(17) , OSEK(79)
https://qiita.com/kaizen_nagoya/items/bc5dd86e414de402ec29

出力(output)と呼ばないで。これは状態(state)です。
https://qiita.com/kaizen_nagoya/items/80b8b5913b2748867840

これからの情報伝達手段の在り方について考えてみよう。炎上と便乗。
https://qiita.com/kaizen_nagoya/items/71a09077ac195214f0db

ISO/IEC JTC1 SC7 Software and System Engineering
https://qiita.com/kaizen_nagoya/items/48b43f0f6976a078d907

アクセシビリティの知見を発信しよう!(再び)
https://qiita.com/kaizen_nagoya/items/03457eb9ee74105ee618

統計論及確率論輪講(再び)
https://qiita.com/kaizen_nagoya/items/590874ccfca988e85ea3

読者の心をグッと惹き寄せる7つの魔法
https://qiita.com/kaizen_nagoya/items/b1b5e89bd5c0a211d862

@kazuo_reve 新人の方によく展開している有益な情報」確認一覧
https://qiita.com/kaizen_nagoya/items/b9380888d1e5a042646b

ソースコードで議論しよう。日本語で議論するの止めましょう(あるプログラミング技術の議論報告)
https://qiita.com/kaizen_nagoya/items/8b9811c80f3338c6c0b0

脳内コンパイラの3つの危険
https://qiita.com/kaizen_nagoya/items/7025cf2d7bd9f276e382

心理学の本を読むよりはコンパイラ書いた方がよくね。仮説(34)
https://qiita.com/kaizen_nagoya/items/fa715732cc148e48880e

NASAを超えるつもりがあれば読んでください。
https://qiita.com/kaizen_nagoya/items/e81669f9cb53109157f6

データサイエンティストの気づき!「勉強して仕事に役立てない人。大嫌い!!」『それ自分かも?』ってなった!!!
https://qiita.com/kaizen_nagoya/items/d85830d58d8dd7f71d07

「ぼくの好きな先生」「人がやらないことをやれ」プログラマになるまで。仮説(37) 
https://qiita.com/kaizen_nagoya/items/53e4bded9fe5f724b3c4

なぜ経済学徒を辞め、計算機屋になったか(経済学部入学前・入学後・卒業後対応) 転職(1)
https://qiita.com/kaizen_nagoya/items/06335a1d24c099733f64

プログラミング言語教育のXYZ。 仮説(52)
https://qiita.com/kaizen_nagoya/items/1950c5810fb5c0b07be4

【24卒向け】9ヶ月後に年収1000万円を目指す。二つの関門と三つの道。
https://qiita.com/kaizen_nagoya/items/fb5bff147193f726ad25

「【25卒向け】Qiita Career Meetup for STUDENT」予習の勧め
https://qiita.com/kaizen_nagoya/items/00eadb8a6e738cb6336f

大学入試不合格でも筆記試験のない大学に入って卒業できる。卒業しなくても博士になれる。
https://qiita.com/kaizen_nagoya/items/74adec99f396d64b5fd5

全世界の不登校の子供たち「博士論文」を書こう。世界子供博士論文遠隔実践中心 安全(99)
https://qiita.com/kaizen_nagoya/items/912d69032c012bcc84f2

小川メソッド 覚え(書きかけ)
https://qiita.com/kaizen_nagoya/items/3593d72eca551742df68

DoCAP(ドゥーキャップ)って何ですか?
https://qiita.com/kaizen_nagoya/items/47e0e6509ab792c43327

views 20,000越え自己記事一覧
https://qiita.com/kaizen_nagoya/items/58e8bd6450957cdecd81

Views1万越え、もうすぐ1万記事一覧 最近いいねをいただいた213記事
https://qiita.com/kaizen_nagoya/items/d2b805717a92459ce853

自己記事一覧

Qiitaで逆リンクを表示しなくなったような気がする。時々、スマフォで表示するとあらわっることがあり、完全に削除したのではなさそう。

4月以降、せっせとリンクリストを作り、統計を取って確率を説明しようとしている。
2025年2月末を目標にしている。

物理記事 上位100
https://qiita.com/kaizen_nagoya/items/66e90fe31fbe3facc6ff

量子(0) 計算機, 量子力学
https://qiita.com/kaizen_nagoya/items/1cd954cb0eed92879fd4

数学関連記事100
https://qiita.com/kaizen_nagoya/items/d8dadb49a6397e854c6d

統計(0)一覧
https://qiita.com/kaizen_nagoya/items/80d3b221807e53e88aba

図(0) state, sequence and timing. UML and お絵描き
https://qiita.com/kaizen_nagoya/items/60440a882146aeee9e8f

品質一覧
https://qiita.com/kaizen_nagoya/items/2b99b8e9db6d94b2e971

言語・文学記事 100
https://qiita.com/kaizen_nagoya/items/42d58d5ef7fb53c407d6

医工連携関連記事一覧
https://qiita.com/kaizen_nagoya/items/6ab51c12ba51bc260a82

自動車 記事 100
https://qiita.com/kaizen_nagoya/items/f7f0b9ab36569ad409c5

通信記事100
https://qiita.com/kaizen_nagoya/items/1d67de5e1cd207b05ef7

日本語(0)一欄
https://qiita.com/kaizen_nagoya/items/7498dcfa3a9ba7fd1e68

英語(0) 一覧
https://qiita.com/kaizen_nagoya/items/680e3f5cbf9430486c7d

転職(0)一覧
https://qiita.com/kaizen_nagoya/items/f77520d378d33451d6fe

仮説(0)一覧(目標100現在40)
https://qiita.com/kaizen_nagoya/items/f000506fe1837b3590df

音楽 一覧(0)
https://qiita.com/kaizen_nagoya/items/b6e5f42bbfe3bbe40f5d

@kazuo_reve 新人の方によく展開している有益な情報」確認一覧
https://qiita.com/kaizen_nagoya/items/b9380888d1e5a042646b

Qiita(0)Qiita関連記事一覧(自分)
https://qiita.com/kaizen_nagoya/items/58db5fbf036b28e9dfa6

鉄道(0)鉄道のシステム考察はてっちゃんがてつだってくれる
https://qiita.com/kaizen_nagoya/items/26bda595f341a27901a0

安全(0)安全工学シンポジウムに向けて: 21
https://qiita.com/kaizen_nagoya/items/c5d78f3def8195cb2409

一覧の一覧( The directory of directories of mine.) Qiita(100)
https://qiita.com/kaizen_nagoya/items/7eb0e006543886138f39

Ethernet 記事一覧 Ethernet(0)
https://qiita.com/kaizen_nagoya/items/88d35e99f74aefc98794

Wireshark 一覧 wireshark(0)、Ethernet(48)
https://qiita.com/kaizen_nagoya/items/fbed841f61875c4731d0

線網(Wi-Fi)空中線(antenna)(0) 記事一覧(118/300目標)
https://qiita.com/kaizen_nagoya/items/5e5464ac2b24bd4cd001

OSEK OS設計の基礎 OSEK(100)
https://qiita.com/kaizen_nagoya/items/7528a22a14242d2d58a3

Error一覧 error(0)
https://qiita.com/kaizen_nagoya/items/48b6cbc8d68eae2c42b8

++ Support(0) 
https://qiita.com/kaizen_nagoya/items/8720d26f762369a80514

Coding(0) Rules, C, Secure, MISRA and so on
https://qiita.com/kaizen_nagoya/items/400725644a8a0e90fbb0

coding (101) 一覧を作成し始めた。omake:最近のQiitaで表示しない5つの事象
https://qiita.com/kaizen_nagoya/items/20667f09f19598aedb68

プログラマによる、プログラマのための、統計(0)と確率のプログラミングとその後
https://qiita.com/kaizen_nagoya/items/6e9897eb641268766909

なぜdockerで機械学習するか 書籍・ソース一覧作成中 (目標100)
https://qiita.com/kaizen_nagoya/items/ddd12477544bf5ba85e2

言語処理100本ノックをdockerで。python覚えるのに最適。:10+12
https://qiita.com/kaizen_nagoya/items/7e7eb7c543e0c18438c4

プログラムちょい替え(0)一覧:4件
https://qiita.com/kaizen_nagoya/items/296d87ef4bfd516bc394

Python(0)記事をまとめたい。
https://qiita.com/kaizen_nagoya/items/088c57d70ab6904ebb53

官公庁・学校・公的団体(NPOを含む)システムの課題、官(0)
https://qiita.com/kaizen_nagoya/items/04ee6eaf7ec13d3af4c3

「はじめての」シリーズ  ベクタージャパン 
https://qiita.com/kaizen_nagoya/items/2e41634f6e21a3cf74eb

AUTOSAR(0)Qiita記事一覧, OSEK(75)
https://qiita.com/kaizen_nagoya/items/89c07961b59a8754c869

プログラマが知っていると良い「公序良俗」
https://qiita.com/kaizen_nagoya/items/9fe7c0dfac2fbd77a945

LaTeX(0) 一覧 
https://qiita.com/kaizen_nagoya/items/e3f7dafacab58c499792

自動制御、制御工学一覧(0)
https://qiita.com/kaizen_nagoya/items/7767a4e19a6ae1479e6b

Rust(0) 一覧 
https://qiita.com/kaizen_nagoya/items/5e8bb080ba6ca0281927

100以上いいねをいただいた記事16選
https://qiita.com/kaizen_nagoya/items/f8d958d9084ffbd15d2a

小川清最終講義、最終講義(再)計画, Ethernet(100) 英語(100) 安全(100)
https://qiita.com/kaizen_nagoya/items/e2df642e3951e35e6a53

<この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。>
This article is an individual impression based on my individual experience. It has nothing to do with the organization or business to which I currently belong.

文書履歴(document history)

ver. 0.10 初稿 20180524
ver. 0.11 名古屋のIoTは名古屋のOSで 追記 20180731

最後までおよみいただきありがとうございました。

いいね 💚、フォローをお願いします。

Thank you very much for reading to the last sentence.

Please press the like icon 💚 and follow me for your happy life.

7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?