Submit Search
Upload
20211002 stm32 cube halとtoppes
•
Download as PPTX, PDF
•
0 likes
•
169 views
S
Seiichi Horie
Follow
Background of Suikan in TOPPERS meeting
Read less
Read more
Technology
Report
Share
Report
Share
1 of 41
Download now
Recommended
2014 0228 OSC-Spring Tokyo NETMF
2014 0228 OSC-Spring Tokyo NETMF
Atomu Hidaka
Open stack+lagopus できるかな
Open stack+lagopus できるかな
Masaru Oki
OPNFVをインストールしてみた
OPNFVをインストールしてみた
Mibu Ryota
THETA S でライブストリーミング
THETA S でライブストリーミング
KatsuyaENDOH
Opnfv handson apex intro
Opnfv handson apex intro
Tomofumi Hayashi
Trema コミッタになるには
Trema コミッタになるには
Yasuhito Takamiya
Software forwarding path
Software forwarding path
Tomofumi Hayashi
OpenContrail days 2014 Spring めざせ超オンプレ(汗)
OpenContrail days 2014 Spring めざせ超オンプレ(汗)
Junpei YOSHINO
Recommended
2014 0228 OSC-Spring Tokyo NETMF
2014 0228 OSC-Spring Tokyo NETMF
Atomu Hidaka
Open stack+lagopus できるかな
Open stack+lagopus できるかな
Masaru Oki
OPNFVをインストールしてみた
OPNFVをインストールしてみた
Mibu Ryota
THETA S でライブストリーミング
THETA S でライブストリーミング
KatsuyaENDOH
Opnfv handson apex intro
Opnfv handson apex intro
Tomofumi Hayashi
Trema コミッタになるには
Trema コミッタになるには
Yasuhito Takamiya
Software forwarding path
Software forwarding path
Tomofumi Hayashi
OpenContrail days 2014 Spring めざせ超オンプレ(汗)
OpenContrail days 2014 Spring めざせ超オンプレ(汗)
Junpei YOSHINO
Polyphony: Python ではじめる FPGA
Polyphony: Python ではじめる FPGA
ryos36
Introduction to Ostinato, network packet crafting and generator.
Introduction to Ostinato, network packet crafting and generator.
Kentaro Ebisawa
Pynq祭り資料
Pynq祭り資料
一路 川染
13.08.10 7行110bytesで構文を拡張 出来るReVIEWの話
13.08.10 7行110bytesで構文を拡張 出来るReVIEWの話
Kei Nakazawa
Lagopus performance
Lagopus performance
Masaru Oki
OpenStack Liberty Router の NAT機能調査
OpenStack Liberty Router の NAT機能調査
Takashi Umeno
Ubuntu LibreOffice Update
Ubuntu LibreOffice Update
Shiojiri Ohhara
Rust-DPDK
Rust-DPDK
Masaru Oki
最新ポートスキャン対策
最新ポートスキャン対策
FFRI, Inc.
つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜
つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜
Hideki Takase
Gr sakuraでtinet
Gr sakuraでtinet
Kazuhiro Takahashi
福岡市LoRawan(TM)実証実験
福岡市LoRawan(TM)実証実験
Kaz Ueno
2013 1019osc-fallnetmf
2013 1019osc-fallnetmf
Atomu Hidaka
Open-hardware and Japan
Open-hardware and Japan
Shigeru Kobayashi
2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF
Atomu Hidaka
TOPPERSプロジェクト紹介 OSC2016京都
TOPPERSプロジェクト紹介 OSC2016京都
Takuya Azumi
ElixirをIoTボードで動かしてみた ~ラズパイ・big.LITTLE・Zynq編~
ElixirをIoTボードで動かしてみた ~ラズパイ・big.LITTLE・Zynq編~
Hideki Takase
OSC Tokyo/Spring NETMF 170311
OSC Tokyo/Spring NETMF 170311
Atomu Hidaka
openSUSE におけるパッケージ管理入門
openSUSE におけるパッケージ管理入門
Fuminobu Takeyama
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
Hideki Takase
Shell入門
Shell入門
nasa9084
How to run P4 BMv2
How to run P4 BMv2
Kentaro Ebisawa
More Related Content
What's hot
Polyphony: Python ではじめる FPGA
Polyphony: Python ではじめる FPGA
ryos36
Introduction to Ostinato, network packet crafting and generator.
Introduction to Ostinato, network packet crafting and generator.
Kentaro Ebisawa
Pynq祭り資料
Pynq祭り資料
一路 川染
13.08.10 7行110bytesで構文を拡張 出来るReVIEWの話
13.08.10 7行110bytesで構文を拡張 出来るReVIEWの話
Kei Nakazawa
Lagopus performance
Lagopus performance
Masaru Oki
OpenStack Liberty Router の NAT機能調査
OpenStack Liberty Router の NAT機能調査
Takashi Umeno
Ubuntu LibreOffice Update
Ubuntu LibreOffice Update
Shiojiri Ohhara
Rust-DPDK
Rust-DPDK
Masaru Oki
最新ポートスキャン対策
最新ポートスキャン対策
FFRI, Inc.
What's hot
(9)
Polyphony: Python ではじめる FPGA
Polyphony: Python ではじめる FPGA
Introduction to Ostinato, network packet crafting and generator.
Introduction to Ostinato, network packet crafting and generator.
Pynq祭り資料
Pynq祭り資料
13.08.10 7行110bytesで構文を拡張 出来るReVIEWの話
13.08.10 7行110bytesで構文を拡張 出来るReVIEWの話
Lagopus performance
Lagopus performance
OpenStack Liberty Router の NAT機能調査
OpenStack Liberty Router の NAT機能調査
Ubuntu LibreOffice Update
Ubuntu LibreOffice Update
Rust-DPDK
Rust-DPDK
最新ポートスキャン対策
最新ポートスキャン対策
Similar to 20211002 stm32 cube halとtoppes
つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜
つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜
Hideki Takase
Gr sakuraでtinet
Gr sakuraでtinet
Kazuhiro Takahashi
福岡市LoRawan(TM)実証実験
福岡市LoRawan(TM)実証実験
Kaz Ueno
2013 1019osc-fallnetmf
2013 1019osc-fallnetmf
Atomu Hidaka
Open-hardware and Japan
Open-hardware and Japan
Shigeru Kobayashi
2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF
Atomu Hidaka
TOPPERSプロジェクト紹介 OSC2016京都
TOPPERSプロジェクト紹介 OSC2016京都
Takuya Azumi
ElixirをIoTボードで動かしてみた ~ラズパイ・big.LITTLE・Zynq編~
ElixirをIoTボードで動かしてみた ~ラズパイ・big.LITTLE・Zynq編~
Hideki Takase
OSC Tokyo/Spring NETMF 170311
OSC Tokyo/Spring NETMF 170311
Atomu Hidaka
openSUSE におけるパッケージ管理入門
openSUSE におけるパッケージ管理入門
Fuminobu Takeyama
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
Hideki Takase
Shell入門
Shell入門
nasa9084
How to run P4 BMv2
How to run P4 BMv2
Kentaro Ebisawa
Osc2017 nagoya
Osc2017 nagoya
naoki okayama
Pdp11 on-fpga
Pdp11 on-fpga
magoroku Yamamoto
Cell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始め
You&I
LTS & ローリングリリース! ― ランキング4位のLinuxディストリビューション openSUSE を Azure で使ってみる
LTS & ローリングリリース! ― ランキング4位のLinuxディストリビューション openSUSE を Azure で使ってみる
Fuminobu Takeyama
How to build LibreOffice on your desktop (日本語版)
How to build LibreOffice on your desktop (日本語版)
Masataka Kondo
2012/03/31 Apacheスタートスクリプト読書会発表資料
2012/03/31 Apacheスタートスクリプト読書会発表資料
Yasutaka Hamada
『OpenStackの導入事例/検証事例のご紹介』 NTTドコモ様 検証事例:OpenStack Summit 2014 Paris 講演「Design ...
『OpenStackの導入事例/検証事例のご紹介』 NTTドコモ様 検証事例:OpenStack Summit 2014 Paris 講演「Design ...
VirtualTech Japan Inc.
Similar to 20211002 stm32 cube halとtoppes
(20)
つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜
つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜
Gr sakuraでtinet
Gr sakuraでtinet
福岡市LoRawan(TM)実証実験
福岡市LoRawan(TM)実証実験
2013 1019osc-fallnetmf
2013 1019osc-fallnetmf
Open-hardware and Japan
Open-hardware and Japan
2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF
TOPPERSプロジェクト紹介 OSC2016京都
TOPPERSプロジェクト紹介 OSC2016京都
ElixirをIoTボードで動かしてみた ~ラズパイ・big.LITTLE・Zynq編~
ElixirをIoTボードで動かしてみた ~ラズパイ・big.LITTLE・Zynq編~
OSC Tokyo/Spring NETMF 170311
OSC Tokyo/Spring NETMF 170311
openSUSE におけるパッケージ管理入門
openSUSE におけるパッケージ管理入門
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
Shell入門
Shell入門
How to run P4 BMv2
How to run P4 BMv2
Osc2017 nagoya
Osc2017 nagoya
Pdp11 on-fpga
Pdp11 on-fpga
Cell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始め
LTS & ローリングリリース! ― ランキング4位のLinuxディストリビューション openSUSE を Azure で使ってみる
LTS & ローリングリリース! ― ランキング4位のLinuxディストリビューション openSUSE を Azure で使ってみる
How to build LibreOffice on your desktop (日本語版)
How to build LibreOffice on your desktop (日本語版)
2012/03/31 Apacheスタートスクリプト読書会発表資料
2012/03/31 Apacheスタートスクリプト読書会発表資料
『OpenStackの導入事例/検証事例のご紹介』 NTTドコモ様 検証事例:OpenStack Summit 2014 Paris 講演「Design ...
『OpenStackの導入事例/検証事例のご紹介』 NTTドコモ様 検証事例:OpenStack Summit 2014 Paris 講演「Design ...
Recently uploaded
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
Recently uploaded
(9)
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
20211002 stm32 cube halとtoppes
1.
STM32 CubeHALとTOPPES 紫ライブラリから眺めるミドルウェア
2.
このスライドの目的 STM32 CubeHALとTOPPERS/ASPの組み合わせについて、知っている 範囲の知見を提供する
3.
自己紹介 堀江誠一 2001,2~
TOPPERS/JSP for Blackfin https://ja.osdn.net/projects/toppersjsp4bf/ 2010~ TOPPERS/ASP for LPC https://ja.osdn.net/projects/toppersasp4lpc/ 2016~ Unzen Audio Framework https://os.mbed.com/users/shorie/notebook/unzen_audio_framework/ 2017~ Murasaki Class Library https://github.com/suikan4github/murasaki 2021~ Kaiten-Yaki Linux Full Disk Encryption Installer https://github.com/suikan4github/kaiten-yaki
4.
TOPPERS/JSP for Blackfinで やりたかったこと
5.
TOPPERS/JSP for Blackfin
技術的興味から2001年頃よりTOPPERS/JSPのカーネルの研究を始め る 2004年にTOPPERS/JSP for Blackfinが実機で動き始める その後、Analog Devices 純正ツールからGCCに移植、Source Forgeに 公開
6.
やりたかったこと もともとDSPの上でオーディオ処理をする際、割り込みハンドラの中 で信号処理をするのが嫌だった 「RTOSがあればもっと『きれい』に書けるのに」
RTOSの原理なら高校生のころから知っていた uITRONのオープン実装としてTOPPERSプロジェクトがあることを知る オーディオ信号処理 2002年:2191空挺団「MCMを使う」(割り込み駆動) http://bfin.sakura.ne.jp/oldsite/2191/program/mcm/mcm_01.shtml 2011年:まんがで読むTalkthrough https://www.pixiv.net/artworks/17722404
7.
SDRをDSPで書けば面白そう もともとラジオ少年なんだし 書く以上はきれいに作りたい
綺麗じゃなくてもいいならSDRを作ったことはある 「オーディオ信号処理で学ぶDSP」 インターフェース誌2007年1月号より連載 https://www.cqpub.co.jp/interface/contents/2008/JA/200802.htm
8.
TOPPERS/JSP for Blackfinの挫折
動作したはいいが、ペリフェラルの操作が面倒 ペリフェラルをClassに包んで遮蔽すればいいのでは? RTOSを積んだのだからC++でさらに生産性をあげたい Classの中に同期や通信を遮蔽すれば、アプリケーション記述が楽になる 2つの障壁 CRTをTOPPERS/JSP用に書いたので、C++用に移行するときに躓いた JSPには動的リソース生成機能がないため、Classの中にセマフォの生成・削 除を遮蔽できなかった。 結局、あまり『きれい』な実装にならない その後フェードアウト
9.
マイコンによる信号処理
10.
マイコンの性能が上がってきたのでSDRをき れいに作ることができる気がしてきた マイコンによるSDR実装者は複数いた 2010年か11年のMTMで中本伸一氏がデモ
2015年のインターフェース誌に高橋知宏氏による特集 海外でも多くの実験が行われており、特別に珍しい技術ではなくなっ ている マイコンでも「きれい」に実装できる気がしてきた
11.
TOPPERS/ASP for LPC
(2010~) TOPPERS/ASPをNXPのLPCマイコンに 実装 CORTEX/M3,M4F ユニバーサル基板にLPC1788 ExperssoとCODECを積んで実験 TOPPERS/JSPとCodeRed IDEのマネー ジド・プロジェクトの食い合わせが悪 い CMSISはARMがいうほどよくなかった フェードアウト
12.
雲仙フレームワーク (2016~) mbedの手軽さが面白かったので、 オーディオ・フレームワークを実装 してみた
割り込みベース シンセサイザーを実装 macaroomがライブで使用した やはりアプリケーションはきれいに 書けない そもそもmbedがRTOSではないので
13.
紫ライブラリ(2017~)
14.
今度こそきれいに書きたい 当初「箸にも棒にもかからない」と思っていたSTM32 CubeHALが、ま あまあ使えそうに思えた。
CubeMXがミドルウェアまでコード生成してくれる FreeRTOS STM32独自のHAL これらの初期化コード この上に乗っかればうまくいくのでは
15.
紫の設計指針 アプリケーションが使用するすべ てのIO HAL関数をクラスでくるむ。
IO関数はすべて同期IO。 I2CやSPIのような複数のタスクが 呼びうる関数は、クラス内部で排 他処理する。 排他や同期に必要なセマフォはク ラス内部で生成・削除する。 ASSERT/SYSLOGの提供 STM32 MCU CubeHAL FREERTOS Murasaki Application
16.
クラス化の恩恵 遮蔽 セマフォなどの資源の生成・削除・使用がすべて遮蔽される
特にセマフォの初期状態に気を使わなくてよい 入力補完機能の活用 関数のスコープが細かくなるので、IDEの入力補完を活用できる メソッド関数の引数を強く型付けすることで、入力補完を活用できる TDDが容易に I2CやSPIはすべて抽象的な型から派生している。したがって、同じ型から派 生するスタブ・クラスを容易に作ることが出来る。
17.
可能な限り広く対応する 信号処理だけでなく、ほかの用 途にも使いたい コンソールパネル処理など
なるべく多くのSTM32に広く対応 することで柔軟性を維持する CORTEX-M0, M0+ CORTEX-M3, M4F CORTEX-M7
18.
TOPPERS/ASPに関する所感 注意:筆者はTOPPERSから長く離れているので、ASP3の詳細を知らない
19.
TOPPERS/ASPの良いところ APIの直交性(ITRON4) APIの仕様の厳密さ(ITRON4)
パラメタ・バリデーションがしっかりしている Syslog完備 仕様も実装も考え抜かれている
20.
他のエコシステムとの不整合 マネージド・ビルドなシステムとのすり合わせが面倒 TOPPERSとして一つの世界を作っていて、手軽に組み込むことが出来なかっ た
利用者の教育は手厚かったが、実装者の教育が手薄だった。 そのため、他のエコシステムへの合わせこみの知見が蓄積されなかった印 象 Syslogが完備していた一方で、そのためにシリアルポート実装がカー ネル実装とべったりくっついていた CRTと割り込みハンドラを独自に作ることが前提になっていた。その ため、CPUメーカーのコードジェネレータと相性が悪い。
21.
TOPPERS/JSPだけで何かを作るなら便利 例えば他のプロジェクトの中に、TOPPERS/JSPのソースコードを引っ 張ってきてそのまま動くようには、なっていない。 これはFREERTOSも同じだが、FREERTOSは多くのMPUベンダのIDEの コードジェネレータに組み込まれている。
22.
一度動き出せば生産性は高い FREERTOSを使うとTOPPERS/ASPの良さが身に染みる 最初からSyslogがあるのでデバッグが容易
紫はSyslogの構築が終わるまでデバッグが大変だった コンテキスト識別APIがある FREERTOSにはなかった!(今はある模様) つまりFREERTOS内部ではコンテキストのバリデーションを行っていなかった 一方で、FREERTOSもタスク・コンテキストと非タスク・コンテキストでは使えるAPIに差が ある FREERTOSでは独自実装せざるを得なかった ISRがITRON独自なので、ISRから出るときに必ずタスク・スイッチが必要かど うかチェックしてくれる FREERTOSはISR出口で明示的に専用APIを呼ぶ必要がある
23.
CubeHALに関する所感
24.
CubeHALの良いところ STM32 HALの機能をかなりの割合でカバーしている
おおむね統一された設計指針 シリーズ間(F09x, F4xx, F7xx, H7xx, G4xx,L07x,… )の互換性 ポーリング、割り込み、DMA転送によるIOがそろっている Assertionによるパラメータ検証
25.
CubeHALの問題点 機能カバレージが不十分 UART
RXのタイムアウトを扱う方法がない シリーズ間APIの不統一 GPIO割り込みコールバック名の相違 設計指針の甘さ シリーズごとにインクルードファイル名が異 なる 不明瞭なドキュメント I2C通信APIの不明瞭さ 特に初期化の方法がわからない ペリフェラルの詳細を知っていなければ使 えない パラメータが型付けされていない 膨大なMACROの中から適切な名前を選ば なければならない 設計者の組み込みへの無理解 I2CでNAK中断した際のリカバリができない GPIO割り込み入力のマスクができない(!!) 品質の低さ パラメータ検証の不徹底 バグのレグレッション テストカバレッジの低さ 報告されたバグへの対応の遅さ コミュニティの雰囲気が悪い 罵詈雑言やマウントが幅を利かせている STM担当者によるレスポンスは遅い GitHubにレポジトリがあるのに、バグ報告 は雰囲気の悪いコミュニティにすることを強 いられる
26.
事実上CubeMXは必須 ピン機能のMUXが複雑なうえに、HALの初期化手順が不明瞭なので、 CubeMXの利用は不可欠 非常に単純なプロセッサの非常に簡単なアプリケーションを除くと、 CubeMXを利用しないでCubeHALを使うことは非現実的
27.
紫によるCubeHAL利用 紫をCubeHALで使うには以下の設定が必要になる main.cにInitPlatform()呼び出しを差し込む
main.cにExecPlatform()呼び出しを差し込む 以上の関数プロトタイプを読み込むために、インクルードファイルをmain.cに挿入する HALのASSERTIONを紫で取り扱えるようcustomAssertFailed()呼び出しを差し込む Startup/startup_stm32*.sのDefault_Handlerに、CustomDefaultHandlerへの呼び出しを差し 込む Src/stm32*_it.cにCustomeDefaultHandler()への呼び出しを差し込む 以上の関数プロトタイプを読み込むために、murasaki_platform.hppをインクルードさせる シリーズごとに異なるヘッダファイル名を吸収するために、統合ヘッダファイル murasaki_include_stub.hを作る 実アプリでCubeHALを使おうとすると、このくらい手がかかる。 Lチカならもっと簡単
28.
設定スクリプト 前述の設定を毎回手作業で行うことは非現実的なので、紫プロジェ クトはinstallスクリプトを提供している 名前が良くない。
setupスクリプトの方が良かった。 225行のシェルスクリプト 二重セットアップ回避機能付き https://github.com/suikan4github/murasaki/blob/master/install
29.
TOPPERS/ASPと CubeHAL/CubeMX
30.
考えられる問題 TOPPERS/ASPにCubeHALを埋め込むか、CubeHAL/CubeMXに TOPPERS/ASPを埋め込むか 割り込み処理をどうするか
31.
TOPPERS/ASPにCubeHALを埋め込む TOPPERS/ASPのディレクトリ構造 の中に、CubeHALをコピーする CubeMXに生成させたコードを、 手作業でTOPPERS/ASPのスレッ ドにコピーする
初期化 割り込みハンドラ スクラッチで初期化コードを書く ことは推奨しない どうせユーザーがついていけなく なる TOPPERS/ASP CRT TOPPERS/ASP ISR CubeHAL Application TOPPERS/ASP
32.
利点 TOPPERS/ASPをそのまま使える 欠点 CubeMXに生成させたコードを、 手作業でTOPPERS/ASPのスレッ ドにコピーする
初期化 割り込みハンドラ ピン配置やペリフェラルを修正 するたびに、手作業のコピーが 必要になる TOPPERS/ASPにCubeHALを埋め込む方法の 得失
33.
CubeHAL/CubeMXにTOPPERS/ASPを埋め込 む CubeMXが生成したディレクトリ の中にTOPPERS/ASPを埋め込む。 TOPPES/ASPカーネルは、main() からkernel_start()を呼ぶ。
CubeMXが生成するISRを使うた め、割り込みの出入口処理がで きなくなる。 CubeMX CRT CubeMX ISR CubeHAL Application TOPPERS/ASP
34.
通常のASPカーネル dispatchは関数として呼ばれる。 割り込みハンドラは出入口処理 を持つ 改造案
dispatchは割り込みとして処理 する 割り込みの入口処理はしない 割り込みの出口処理はdspatch の遅延割り込み呼び出しに変 更する 以上はARMの技術文書に示さ れている方法 FREERTOSもこの方式 ASPカーネルの改造案
35.
利点 CubeMXが生成するCRTとISRを そのまま使える。 ISRはTOPPERS/ASPコンフィギュ レーターの管理外になるので、 コンフィギュレーションの回数が 減る
動的生成を使えば、タスクやセ マフォの増減もコンフィギュレー ション不要になる 欠点 TOPPERS/ASPカーネルを書き換 えることが必要になる。 カーネル・コンフィギュレーション を変えるたびに、TOPPERS/ASP をコピーする必要がある main()の然るべき場所から kernel_start()を呼ぶ必要がある ISRの然るべき場所から出口処 理を呼ぶ必要がある 改造案の得失
36.
CubeMX生成コードの取り扱い CubeMXはユーザー・コードを保 存する機能を持つ コード再生成時も変更されない
main()関数の赤枠の内側に start_kernel();を書けば、保存され る。
37.
割り込みハンドラの扱い 割り込みハンドラもユーザー コードを保存する 赤枠部分に書いた出口処理 はCubeMXによって保存される
38.
終わりに
39.
FREERTOSがあるのにTOPPERSを使う意義 は? FREERTOSの利点 CubeMXのコンフィギュレータに一体化されている気安がある
FRERTOSの欠点 FREERTOSは実装が雑なので、手懐けるまでに時間がかかる。 設計が緻密さに欠けるので、不安が残る。 産業用途にはSAFERTOSが推奨されていたりする。
40.
TOPPERS/ASPの難しさ 少なくとも10年前は、「TOPPERS/ASPは世界のエコシステムから外れ ている」という認識に欠けていた よそ様のエコシステムに挟み込むことをよく考えていないOS。
手を加えればよそ様のエコシステムに組み込めるが、TOPPERS/ASPの良さ が少しづつ失われる。 ビルド済みライブラリとヘッダー・ファイルををプロジェクトにポンと放 り込んで使えるようになれば、心理障壁は下がると思う。
41.
おわり
Download now