SWESTは、組込みシステム技術に関するサマーワークショップ(Summer Workshop on Embedded System Technologies)
http://swest.toppers.jp
の略で、東海・北陸地方に1泊2日で実施している合宿です。
QC出版の協賛ではんだづけ大会を何度か開催させていただきました。
ありがとうございます。
Qiitaで"SWEST"で検索した記事に関連するSWESTの行事に対応付けしました。
そして、それらの記事の中で、プログラムとして重要だったり、コマンドとして知っていると良かったり、
簡単な操作を間違えてとんでもないことになることなど、プログラマの深部または細部を掘り起こしてみます。
以下、講義・演習名は、見出しにするか、<>で囲って示します。
関連するqiita記事をその下にURLと示します。補足として、slideshare, researchmap.jp, amazon.co.jpなどへのリンクも記載します。
<この項は書きかけです。順次追記します。>
SWEST20
2018年のSWESTは、
開催日程: 2018年8月29日(水)〜31日(金) (20周年を祝して8月29日(水)に前夜祭を行います!)
開催場所: 下呂温泉 水明館 (岐阜県下呂市)
メインテーマ: future = SWEST(&you) + dream;
SWEST20で基調講演(再演含む)してほしい人上位10人
https://qiita.com/kaizen_nagoya/items/d4d9bf953953c720361d
SWEST19
<プログラム>
https://swest.toppers.jp/SWEST19/program/
Deep Learning導入のための読書会
「ゼロから作るDeep Learning 2自然言語処理編」を読む前に読んで置くとよい資料とプログラム
https://qiita.com/kaizen_nagoya/items/537b1810265bbbc70e73
名古屋のIoTは名古屋のOSで Raspberry PI & TOPPERS
https://qiita.com/kaizen_nagoya/items/4c46153324a8081fe18c
HAZOP 3.0 (Safety & Security)
ちょけねこ たんじょうびのおくりもの
https://qiita.com/kaizen_nagoya/items/fc9675686c229f7a155e
SWEST18
<プログラム>
https://swest.toppers.jp/SWEST18/program/
<がじぇっとルネサスのGR-COTTONプレゼントキャンペーン>
GR-COTTONで赤外線リモコンの受信機を作ってみた
https://qiita.com/farmer-bism/items/56ca974926fc5c55207c
確率論及統計論 輪講
確率論及統計論(伏見康司)の数式をTeX(LaTeX)入力するための13の技法
https://qiita.com/kaizen_nagoya/items/9c692c4d3546ffbb70b4
確率論及統計論 輪講 科学の四分類と確率分布
https://www.slideshare.net/kaizenjapan/ss-65852140
SWEST17
<プログラム>
https://swest.toppers.jp/SWEST17/program.html
組込み開発者におくる MISRA C:2012 - 日本語解説書ができるまで
[C][C++]の国際規格案の例題をコンパイルするときの課題7つ。
https://qiita.com/kaizen_nagoya/items/5f4b155030259497c4de
カーネルソースの歩き方 RaspberryPi演習
カーネルソース勉強会の資料:カーネルソースの歩き方 RaspberryPi演習 - SWEST
https://swest.toppers.jp/SWEST17/data/s5d_proceeding.pdf
取り上げたTOPPERS/SSPのtask.cの中身はこの頁の末尾に。MISRA Cの検査済み。
算譜(program)の見直し(review)に必要な志向・技能・技法・手順、上位7ver.2.1 (20180228)
https://qiita.com/kaizen_nagoya/items/6d5962e1a0e4be28405c
SWEST16
<プログラム>
https://swest.toppers.jp/SWEST16/program.html
自動車業界外の開発者のためのMISRA-C入門
C Puzzle Bookの有り難み5つ、C言語規格及びCコンパイラの特性を認識
https://qiita.com/kaizen_nagoya/items/d89a48c1536a02ecdec9
カーネルソースの歩き方 TOPEPRS/SSP編
TOPPERS/SSPカーネルソース勉強会(0) docker, build_ssp.sh, build_ssp_ruby.sh
https://qiita.com/kaizen_nagoya/items/20e382d58c6dd0e40534
再現試験を実施できるようなソフトウェア試験技術者への道
算譜(program)の見直し(review)に必要な志向・技能・技法・手順、上位7
https://qiita.com/kaizen_nagoya/items/6d5962e1a0e4be28405c
SWEST15
<プログラム>
https://swest.toppers.jp/SWEST15/program.html
.NET Micro Framework 実践紹介
名古屋のIoTは名古屋のOSで Raspberry PI & TOPPERS
https://qiita.com/kaizen_nagoya/items/4c46153324a8081fe18c
何が嬉しい?何が変わった?MISRA-C:2012
プログラマが学会・研究会で対外発表する際の9つの関門
https://qiita.com/kaizen_nagoya/items/b66b0bb7eb70b30082c8
HAZOP
効率的なHAZOPの進め方
https://qiita.com/kaizen_nagoya/items/2b8eae196945b7976446
mrubyによる組込み開発のメリット
記事振り返りと今後のMicroPythonへの期待
https://qiita.com/ken5owata/items/2440bca9cf58e7c9cee0
SWEST14
<プログラム>
https://swest.toppers.jp/SWEST14/program.html
組込みRubyとその開発事例
mruby まとめ 作成中
https://qiita.com/kaizen_nagoya/items/3c721e1338d41e2fc805
ソフトウェアデザインロボットコンテストを通した若手組込みエンジニアの育成
ETロボコン まとめ 言語の知見
https://qiita.com/kaizen_nagoya/items/908df06d1a9aa9535d00
今更聞けないマルチコアプログラミングの基礎
世界に通用する技術者になるためには(仮)
SWEST13
<プログラム>
https://swest.toppers.jp/SWEST13/program.html
目で見てわかるモデル検査
NuSMV入門
https://qiita.com/kaizen_nagoya/items/49fce418443f704ffec9
想定外をなくす 実践安全分析(HAZOP) 2.0
ちょけねこ たんじょうびのおくりもの
https://qiita.com/kaizen_nagoya/items/fc9675686c229f7a155e
組込みシステムに関する教育事例の紹介
プログラミング言語教育のXYZ
https://qiita.com/kaizen_nagoya/items/1950c5810fb5c0b07be4
OCamlと定理証明支援系Coqの組込み開発への応用を目指して
OCAML入門
https://qiita.com/kaizen_nagoya/items/456bedf9f68b512663da
「coq入門」の入門
https://qiita.com/kaizen_nagoya/items/13566f0b2083ea8d4998
TOPPERS Reference Hardware (TRH-α1) の提案と試作
SWEST12
<プログラム>
https://swest.toppers.jp/SWEST12/program.html
XDDP:派生開発専用の開発アプローチ
実践HAZOP実習
ちょけねこ たんじょうびのおくりもの
https://qiita.com/kaizen_nagoya/items/fc9675686c229f7a155e
実践形式手法 Event-B
コンソーシアム型研究によるRTOSのテストスイート開発
SWEST11
<プログラム>
https://swest.toppers.jp/SWEST11/program.html
MISRA-C/C++およびRTL設計スタイルガイドの組込み技術者教育への展開
[C][C++]の国際規格案の例題をコンパイルするときの課題7つ。
https://qiita.com/kaizen_nagoya/items/5f4b155030259497c4de
RTL設計スタイルガイド Verilog HDL編
https://qiita.com/kaizen_nagoya/items/4c02f1575db1f28310a7
組込みシステム開発に関連する国際規格 - HAZOPを中心に
効率的なHAZOPの進め方
https://qiita.com/kaizen_nagoya/items/2b8eae196945b7976446
ETロボコンとは?
ETロボコン まとめ 言語の知見
https://qiita.com/kaizen_nagoya/items/908df06d1a9aa9535d00
80分で分かるモデル検証
SPIN(simple promela interpreter)入門
https://qiita.com/kaizen_nagoya/items/a18a4e1e5493591e76fa
Interface付録ボードを実際に動かしてみる
SWEST10
<プログラム>
https://swest.toppers.jp/SWEST10/program.html
スタイルガイドを用いたVerilog教育の成果と課題
Verilogスタイルガイドこんなコードもコンパイルエラーにならない
RTL設計スタイルガイド Verilog HDL編
https://qiita.com/kaizen_nagoya/items/4c02f1575db1f28310a7
組込み関連国際規格の動向
[C][C++]の国際規格案の例題をコンパイルするときの課題7つ。
https://qiita.com/kaizen_nagoya/items/5f4b155030259497c4de
可読性って何だろう 〜 コーディングルールをどう使う?
MISRA C まとめ #include
https://qiita.com/kaizen_nagoya/items/f1a79a7cbd281607c7c9
実践!なぜなぜ分析 パート2
SWEST9
<プログラム>
https://swest.toppers.jp/SWEST9/program.html
実践!なぜなぜ分析
SWEST8
<プログラム>
https://swest.toppers.jp/SWEST8/report.html#report
MISRAとSECのコーディングガイドライン
MISRA C まとめ #include
https://qiita.com/kaizen_nagoya/items/f1a79a7cbd281607c7c9
SWEST7
<プログラム>
https://swest.toppers.jp/SWEST7/report.html#report
子供向けコンピュータ教育の教材作成
ETロボコン まとめ 言語の知見
https://qiita.com/kaizen_nagoya/items/908df06d1a9aa9535d00
ちょけねこ たんじょうびのおくりもの
https://qiita.com/kaizen_nagoya/items/fc9675686c229f7a155e
モデル検査ツールSpinによる組み込みソフトウェアの検証
SPIN(simple promela interpreter)入門
https://qiita.com/kaizen_nagoya/items/a18a4e1e5493591e76fa
SWEST6
<プログラム>
https://swest.toppers.jp/SWEST6/report.html#program
組み込みシステムの試験と検証 OS、コンパイラ、ネットワーク
算譜(program)の見直し(review)に必要な志向・技能・技法・手順、上位7
https://qiita.com/kaizen_nagoya/items/6d5962e1a0e4be28405c
SWEST5
<プログラム>
https://swest.toppers.jp/SWEST5/report.html#program
宇宙用OS及び開発環境の研究開発
NUCLEO-F401RE で TOPPERS/HRP2(RTOS)を動かす
https://qiita.com/exshonda/items/fe9525df165b9910bf93
UMLロボコンとMDA
ETロボコン まとめ 言語の知見
https://qiita.com/kaizen_nagoya/items/908df06d1a9aa9535d00
組込みソフトウェア徒弟制度
作業診断(process assessment)を成功させる5つの鍵。失敗する5つの罠 。仮説(50)OSEK(48)官(2)
https://qiita.com/kaizen_nagoya/items/bcdc60db20e8d7081fab
算譜(program)の見直し(review)に必要な指向, 技能, 技法, 手順 上位7, 仮説(188) coding(72), 図(26)
https://qiita.com/kaizen_nagoya/items/6d5962e1a0e4be28405c
SWEST4
<プログラム>
https://swest.toppers.jp/SWEST4/report.html#program
組込みソフトウェアにおけるSPI(CMM/SPA)
作業診断(process assessment)を成功させる5つの鍵。失敗する5つの罠 ver.3.1 20180205
https://qiita.com/kaizen_nagoya/items/bcdc60db20e8d7081fab
自動車向け組込みC言語用ガイドライン MISRA-Cに代表される バグ予防と設計改善のためのプログラミングガイドライン 〜海外製の組込みシステムに勝てる品質向上〜
MISRA C まとめ #include
https://qiita.com/kaizen_nagoya/items/f1a79a7cbd281607c7c9
組込みソフトウェア開発技術者教育
プログラミング言語教育のXYZ
https://qiita.com/kaizen_nagoya/items/1950c5810fb5c0b07be4
SWEST3
<プログラム>
https://swest.toppers.jp/SWEST3/report.html#program
使用する側から見たReal Time OS の現状と要望』
RealTimeOS(ITRON)の基本のキから新しいプロジェクトの提案までユーザからみたRTOSの動向 ITRON基本のキ
TOPPERS まとめ
https://qiita.com/kaizen_nagoya/items/9026c049cb0309b9d451
SWEST2
<プログラム>
https://swest.toppers.jp/SWEST2/index.html#program
組み込みシステムのためのソフトウェア開発ライフサイクル論
作業診断(process assessment)を成功させる5つの鍵。失敗する5つの罠 ver.3.1 20180205
https://qiita.com/kaizen_nagoya/items/bcdc60db20e8d7081fab
組込み装置向きプログラミング言語 EBIFRY
ITRON C++ API仕様へのアプローチ
SWEST1
<プログラム>
https://swest.toppers.jp/SWEST1/index.html#program
タイミングチャートを用いたデバイスドライバ設計支援に関する研究
組込み向け制御ソフトウェア設計手法『データ回路方式』の提案
次世代ソフトウェア開発支援ツール
浅井茂昌(アイシン精機),和田錦一,稲森豊,佐野範佳(豊田中央研究所)
基調講演関連資料
第一回 組込みシステムの過去・現在・未来 イデオムレベルのソフトウェアデザインパターン
故 松本 吉弘(大阪工業大学 情報科学部)
「基礎からわかるTCP/IP JAVAネットワークプログラミング」Eclipseでコンパイル。Wiresharkでデバッグ。
https://qiita.com/kaizen_nagoya/items/14519536b827fdadb32e
第二回 チャレンジ&チャレンジ 今、日本に必要とされるチャレンジ
鈴木 文雄(アーベル・システムズ)
第三回 コンフィギュアラブルプロセッサによるITS向け画像認識システムの開発
宮森 高(東芝)
第四回 移動体電話の開発
菰田 元喜(NECネットワークス)
第五回 災害救助からエンタテインメントまで 未来のITとロボットの行方
松原 仁(はこだて未来大学)
第六回 宇宙機の搭載ソフトウェア
奥田 一実(宇宙航空研究開発機構)
第七回 デジタル家電統合プラットフォームUniPhier におけるメディアプロセッサ
木村 浩三、藤井 茂樹、西道 佳人、清原 督三(松下電器)
第八回 機能安全規格の意図と動向について
田邊 安雄(日本機能安全)
第九回 現場力を高める見える化手法プロジェクトファシリテーション モチベーションアップのツールと場づくり
平鍋健児(チェンジビジョン)
#第十回「組込みシステム開発の次の10年を考える」
高田 広章(名古屋大学)
第十一回 人工衛星プロジェクト 本命ミッションは人づくり!
竹内 修 (東大阪宇宙開発協同組合<SOHLA>前理事長)
第十二回 XDDP:派生開発専用の開発アプローチ
故 清水 吉男 (システムクリエイツ)
第十三回 最新Androidケータイの製品技術と開発苦労話
本田 亮 (富士通)
第十四回 世界に通用する技術者になるためには(仮)
まつもと ゆきひろ (株式会社ネットワーク応用研究所)
mruby まとめ 作成中
https://qiita.com/kaizen_nagoya/items/3c721e1338d41e2fc805
第十五回 モデルベースシステムズエンジニアリングとSysMLの活用
西村 秀和(慶應義塾大学)
第十六回 SKY ACTIVエンジン開発
人見 光夫 (マツダ株式会社)
第十七回 ウェアラブルシステム・デバイス・応用の現状とこれから
塚本 昌彦(神戸大学)
第十八回 二輪車情報学 Bikeinformatics 自動二輪車によるセンシングデータの収集基盤の構築と課題
木谷 友哉(静岡大学)
第十九回 Connected Vehicle Platformにおける北米技術動向と、日本の大学生・若手技術者への期待
佐藤 洋介(DENSO International America, INC., North America Research Center, Electronics Platform(e–PF))
その他
<これはSWESTプログラムページの html ファイルを parcel でビルドしようとして遭遇した不具合です。>
parcel に Pull Request を送って merge されるまでの顛末記〜生まれてはじめて国際的に OSS への貢献をしてみたら,とても歓待された
https://qiita.com/zacky1972/items/0ce05454b67506edc634
共催者
NPO法人 TOPPERSプロジェクト
TOPPERS まとめ
https://qiita.com/kaizen_nagoya/items/9026c049cb0309b9d451
NPO法人 軽量Rubyフォーラム
mruby まとめ 作成中
https://qiita.com/kaizen_nagoya/items/3c721e1338d41e2fc805
組込みシステム開発技術研究会(CEST)
参考資料
/*
* TOPPERS/SSP Kernel
* Smallest Set Profile Kernel
*
* Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
* Toyohashi Univ. of Technology, JAPAN
* Copyright (C) 2005-2009 by Embedded and Real-Time Systems Laboratory
* Graduate School of Information Science, Nagoya Univ., JAPAN
* Copyright (C) 2010-2015 by Naoki Saito
* Nagoya Municipal Industrial Research Institute, JAPAN
* Copyright (C) 2010 by Meika Sugimoto
*
* 上記著作権者は,以下の (1)〜(4) の条件を満たす場合に限り,本ソフトウェ
* ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改変・
* 再配布(以下,利用と呼ぶ)することを無償で許諾する.
* (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作権
* 表示,この利用条件および下記の無保証規定が,そのままの形でソース
* コード中に含まれていること.
* (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使用
* できる形で再配布する場合には,再配布に伴うドキュメント(利用者マ
* ニュアルなど)に,上記の著作権表示,この利用条件および下記の無保
* 証規定を掲載すること.
* (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使用
* できない形で再配布する場合には,次のいずれかの条件を満たすこと.
* (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著作
* 権表示,この利用条件および下記の無保証規定を掲載すること.
* (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに報
* 告すること.
* (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損害
* からも,上記著作権者およびTOPPERSプロジェクトを免責すること.また,
* 本ソフトウェアのユーザまたはエンドユーザからのいかなる理由に基づ
* く請求からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
*
* 本ソフトウェアは,無保証で提供されているものである.上記著作権者およ
* びTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的に対す
* る適合性も含めて,いかなる保証も行わない.また,本ソフトウェアの利用
* により直接的または間接的に生じたいかなる損害に関しても,その責任を負
* わない.
*
*/
#include "kernel_impl.h"
#include "task.h"
/*
* トレースログマクロのデフォルト定義
*/
#ifndef LOG_DSP_ENTER
#define LOG_DSP_ENTER(tskidx)
#endif /* LOG_DSP_ENTER */
#ifndef LOG_DSP_LEAVE
#define LOG_DSP_LEAVE(tskidx)
#endif /* LOG_DSP_ENTER */
extern const intptr_t tinib_exinf[]; /* タスクの拡張情報 */
extern const TASK tinib_task[]; /* タスクの起動番地 */
extern const uint_t tinib_epriority[]; /* タスクの実行時優先度(内部表現) */
/* 内部関数のプロトタイプ宣言 */
Inline bool_t primap_empty(void);
Inline bool_t primap_test(uint_t pri);
Inline uint_t primap_search(void);
Inline void primap_set(uint_t pri);
Inline void primap_clear(uint_t pri);
Inline uint_t bitmap_search(uint_t bitmap);
#ifdef TOPPERS_tskini
/*
* 実行状態タスクの現在優先度
*/
uint_t runtsk_curpri;
/*
* 実行状態タスクの起動時優先度
*/
uint_t runtsk_ipri;
/*
* レディキューサーチのためのビットマップ
*/
volatile uint_t ready_primap;
/*
* 起動要求キューイングのビットマップ
*/
uint_t actque_bitmap;
/*
* タスクディスパッチ起動要求フラグ
*/
bool_t reqflg;
/*
* ディスパッチ禁止状態
*/
bool_t disdsp;
/*
* read_primapの初期値
*/
extern const uint_t init_rdypmap;
#endif /* TOPPERS_tskini */
#ifdef TOPPERS_get_ipriself
/*
* タスクIDからの起動時優先度取得(タスクコンテキスト用)
*/
uint_t
get_ipri_self(ID tskid)
{
uint_t ipri;
if(tskid != TSK_SELF)
{
ipri = (uint_t)((tskid) - TMIN_TSKID);
}
else
{
ipri = runtsk_ipri;
}
return ipri;
}
#endif /* TOPPERS_get_ipriself */
/*
* タスクIDからの起動時優先度取得(非タスクコンテキスト用)
*/
#ifdef TOPPERS_get_ipri
uint_t
get_ipri(ID tskid)
{
return (uint_t)(tskid - TMIN_TSKID);
}
#endif /* TOPPERS_get_ipri */
/*
* ビットマップサーチ関数
*
* bitmap内の1のビットの内,最も下位(右)のものをサーチし,そのビッ
* ト番号を返す.ビット番号は,最下位ビットを0とする.bitmapに0を指定
* してはならない.この関数では,bitmapが8ビットであることを仮定し,
* uint8_t型としている.
*
* ビットサーチ命令を持つプロセッサでは,ビットサーチ命令を使うように
* 書き直した方が効率が良い場合がある.このような場合には,ターゲット
* 依存部でビットサーチ命令を使ったbitmap_searchを定義し,
* OMIT_BITMAP_SEARCHをマクロ定義すればよい.また,ビットサーチ命令の
* サーチ方向が逆などの理由で優先度とビットとの対応を変更したい場合に
* は,PRIMAP_BITをマクロ定義すればよい.
*
* また,標準ライブラリにffsがあるなら,次のように定義して標準ライブ
* ラリを使った方が効率が良い可能性もある.
* #define bitmap_search(bitmap) (ffs(bitmap) - 1)
*/
#ifndef PRIMAP_BIT
#define PRIMAP_BIT(pri) (1U << (pri))
#endif /* PRIMAP_BIT */
#ifndef OMIT_BITMAP_SEARCH
static const uint8_t bitmap_search_table[] = { 0U, 1U, 0U, 2U, 0U, 1U, 0U,
3U, 0U, 1U, 0U, 2U, 0U, 1U, 0U };
Inline uint_t
bitmap_search(uint_t bitmap)
{
uint_t n = 0U;
#if TMAX_TPRI != 8
if ((bitmap & 0x00ffU) == 0U) {
bitmap >>= 8U;
n += 8U;
}
#endif
if ((bitmap & 0x0fU) == 0U) {
bitmap >>= 4U;
n += 4U;
}
return (n + bitmap_search_table[(bitmap & 0x0fU) - 1U]);
}
#endif /* OMIT_BITMAP_SEARCH */
/*
* 起動時優先度ビットマップが空かのチェック
*/
Inline bool_t
primap_empty(void)
{
return (ready_primap == 0U);
}
/*
* 指定した起動時優先度の起動時優先度ビットマップがセットされているかどうかのチェック
*/
Inline bool_t
primap_test(uint_t pri)
{
return ((ready_primap & PRIMAP_BIT(pri)) != 0U);
}
/*
* 起動時優先度ビットマップのサーチ
*/
Inline uint_t
primap_search(void)
{
return bitmap_search(ready_primap);
}
/*
* 起動時優先度ビットマップのセット
*/
Inline void
primap_set(uint_t pri)
{
ready_primap |= PRIMAP_BIT(pri);
}
/*
* 起動時優先度ビットマップのクリア
*/
Inline void
primap_clear(uint_t pri)
{
ready_primap &= ~PRIMAP_BIT(pri);
}
/*
* 最高優先順位タスクのサーチ
*/
#ifdef TOPPERS_tsksched
uint_t
search_schedtsk(void)
{
return primap_search();
}
#endif /* TOPPERS_tsksched */
#ifdef TOPPERS_tskdmt
/*
* 指定した起動時優先度のタスクが実行できる状態かどうかのテスト
*
*/
bool_t
test_dormant(uint_t ipri)
{
return !primap_test(ipri);
}
#endif /* TOPPERS_tskdmt */
/*
* タスク管理モジュールの初期化
*/
#ifdef TOPPERS_tskini
void
initialize_task(void)
{
/* 起動時優先度ビットマップの初期化 */
ready_primap = init_rdypmap;
/* タスク優先度の初期化 */
runtsk_curpri = TSKPRI_NULL;
runtsk_ipri = TSKPRI_NULL;
/* 起動要求キューイングの初期化 */
actque_bitmap = 0U;
/* 割込み禁止フラグの初期化 */
disdsp = false;
}
#endif /* TOPPERS_tskini */
/*
* タスクの起動
*/
#ifdef TOPPERS_tskact
bool_t
make_active(uint_t ipri)
{
bool_t dsp;
primap_set(ipri);
/*
* 実行状態タスクの現在優先度と引数で指定された
* 起動対象タスクの初期優先度を比較し,実行状態タスクを
* 変更するか判定する.
*
* ただし実行状態タスクを変更する場合はディスパッチ禁止状態も参照する.
*/
if(ipri < runtsk_curpri) {
dsp = !disdsp;
}
else {
dsp = false;
}
return dsp;
}
#endif /* TOPPERS_tskact */
/*
* タスクの実行
*/
#ifdef TOPPERS_tskrun
void
run_task(uint_t ipri)
{
uint_t next_pri; /* 次に実行開始するタスクの起動時優先度 */
uint_t saved_ipri; /* 呼び出し元タスクの初期優先度 */
uint_t saved_curpri; /* 呼び出し元タスクの現在優先度 */
bool_t cont;
/* 最高優先順位タスクを実行する前に,現在実行中のタスクの現在優先度と初期優先度を保存する */
next_pri = ipri;
saved_ipri = runtsk_ipri;
saved_curpri = runtsk_curpri;
do {
/* 実行するタスクの現在優先度を実行時優先度に設定する */
runtsk_curpri = tinib_epriority[next_pri];
runtsk_ipri = next_pri;
/* CPUロック解除 */
t_unlock_cpu();
/* タスク実行開始 */
(*((TASK)(tinib_task[next_pri])))(tinib_exinf[next_pri]);
if (t_sense_lock()) {
/*
* CPUロック状態でext_tskが呼ばれた場合は,CPUロックを解除し
* てからタスクを終了する.実装上は,サービスコール内でのCPU
* ロックを省略すればよいだけ.
*/
}
else {
/*
* このt_lock_cpuをこの下のdisdspの設定のようにしないのは,
* CPUロック中に再度t_lock_cpuを呼ばないためである.
*/
t_lock_cpu();
}
/* 割込み優先度マスクは全解除状態のはずなので,何もしない */
/*
* ディスパッチ禁止状態でext_tskが呼ばれた場合は,ディスパッ
* チ許可状態にしてからタスクを終了する.
*
* 本来は以下のように記述すべきであるが,いずれにせよdisdspを
* falseにすればいいため,単にfalseに設定する.
*
* if (disdsp) {
* disdsp = false;
* }
*/
disdsp = false;
/* ビットマップクリア. */
primap_clear(next_pri);
cont = false;
/* タスク起動要求キューイングのチェック */
if (actque_test(next_pri)) {
actque_clear(next_pri);
(void) make_active(next_pri);
}
/* いずれかのタスクが実行可能状態になっているか */
if(!primap_empty())
{
/* 戻り先タスクの現在優先度より高い起動時優先度をもつタスクが起動されたか */
next_pri = search_schedtsk();
if(saved_curpri > next_pri)
{
cont = true;
}
}
} while(cont);
runtsk_curpri = saved_curpri;
runtsk_ipri = saved_ipri;
}
#endif /* TOPPERS_tskrun */
/*
* タスクディスパッチャ
*/
#ifdef TOPPERS_tskdsp
void
dispatcher(void)
{
do {
if(!primap_empty()) {
/* タスクの開始 */
run_task(search_schedtsk());
}
else {
idle_loop();
}
} while(true);
}
#endif /* TOPPERS_tsk_dsp */
参考資料
プログラマが知っていると良い「公序良俗」
https://qiita.com/kaizen_nagoya/items/9fe7c0dfac2fbd77a945
<この項は書きかけです。順次追記します。>
This article is not completed. I will add some words and/or centences in order.
Este artículo no está completo. Agregaré algunas palabras en orden.
Qiita Calendar 2024
祝休日・謹賀新年 2025年の目標
https://qiita.com/kaizen_nagoya/items/dfa34827932f99c59bbc
Qiita 1年間をまとめた「振り返りページ」@2024
https://qiita.com/kaizen_nagoya/items/ed6be239119c99b15828
2024 参加・主催Calendarと投稿記事一覧 Qiita(248)
https://qiita.com/kaizen_nagoya/items/d80b8fbac2496df7827f
主催Calendar2024分析 Qiita(254)
https://qiita.com/kaizen_nagoya/items/15807336d583076f70bc
Calendar 統計
https://qiita.com/kaizen_nagoya/items/e315558dcea8ee3fe43e
LLM 関連 Calendar 2024
https://qiita.com/kaizen_nagoya/items/c36033cf66862d5496fa
Large Language Model Related Calendar
https://qiita.com/kaizen_nagoya/items/3beb0bc3fb71e3ae6d66
博士論文 Calendar 2024 を開催します。
https://qiita.com/kaizen_nagoya/items/51601357efbcaf1057d0
博士論文(0)関連記事一覧
https://qiita.com/kaizen_nagoya/items/8f223a760e607b705e78
関連資料
' @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
自己記事一覧
Qiitaで逆リンクを表示しなくなったような気がする。時々、スマフォで表示するとあらわっることがあり、完全に削除したのではなさそう。
4月以降、せっせとリンクリストを作り、統計を取って確率を説明しようとしている。
2025年2月末を目標にしている。
一覧の一覧( The directory of directories of mine.) Qiita(100)
https://qiita.com/kaizen_nagoya/items/7eb0e006543886138f39
仮説(0)一覧(目標100現在40)
https://qiita.com/kaizen_nagoya/items/f000506fe1837b3590df
Qiita(0)Qiita関連記事一覧(自分)
https://qiita.com/kaizen_nagoya/items/58db5fbf036b28e9dfa6
Error一覧 error(0)
https://qiita.com/kaizen_nagoya/items/48b6cbc8d68eae2c42b8
C++ 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
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
なぜdockerで機械学習するか 書籍・ソース一覧作成中 (目標100)
https://qiita.com/kaizen_nagoya/items/ddd12477544bf5ba85e2
プログラムちょい替え(0)一覧:4件
https://qiita.com/kaizen_nagoya/items/296d87ef4bfd516bc394
言語処理100本ノックをdockerで。python覚えるのに最適。:10+12
https://qiita.com/kaizen_nagoya/items/7e7eb7c543e0c18438c4
Python(0)記事をまとめたい。
https://qiita.com/kaizen_nagoya/items/088c57d70ab6904ebb53
安全(0)安全工学シンポジウムに向けて: 21
https://qiita.com/kaizen_nagoya/items/c5d78f3def8195cb2409
プログラマによる、プログラマのための、統計(0)と確率のプログラミングとその後
https://qiita.com/kaizen_nagoya/items/6e9897eb641268766909
転職(0)一覧
https://qiita.com/kaizen_nagoya/items/f77520d378d33451d6fe
技術士(0)一覧
https://qiita.com/kaizen_nagoya/items/ce4ccf4eb9c5600b89ea
Reserchmap(0) 一覧
https://qiita.com/kaizen_nagoya/items/506c79e562f406c4257e
物理記事 上位100
https://qiita.com/kaizen_nagoya/items/66e90fe31fbe3facc6ff
量子(0) 計算機, 量子力学
https://qiita.com/kaizen_nagoya/items/1cd954cb0eed92879fd4
数学関連記事100
https://qiita.com/kaizen_nagoya/items/d8dadb49a6397e854c6d
coq(0) 一覧
https://qiita.com/kaizen_nagoya/items/d22f9995cf2173bc3b13
統計(0)一覧
https://qiita.com/kaizen_nagoya/items/80d3b221807e53e88aba
図(0) state, sequence and timing. UML and お絵描き
https://qiita.com/kaizen_nagoya/items/60440a882146aeee9e8f
色(0) 記事100書く切り口
https://qiita.com/kaizen_nagoya/items/22331c0335ed34326b9b
品質一覧
https://qiita.com/kaizen_nagoya/items/2b99b8e9db6d94b2e971
言語・文学記事 100
https://qiita.com/kaizen_nagoya/items/42d58d5ef7fb53c407d6
医工連携関連記事一覧
https://qiita.com/kaizen_nagoya/items/6ab51c12ba51bc260a82
水の資料集(0) 方針と成果
https://qiita.com/kaizen_nagoya/items/f5dbb30087ea732b52aa
自動車 記事 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/b6e5f42bbfe3bbe40f5d
「@kazuo_reve 新人の方によく展開している有益な情報」確認一覧
https://qiita.com/kaizen_nagoya/items/b9380888d1e5a042646b
鉄道(0)鉄道のシステム考察はてっちゃんがてつだってくれる
https://qiita.com/kaizen_nagoya/items/faa4ea03d91d901a618a
OSEK OS設計の基礎 OSEK(100)
https://qiita.com/kaizen_nagoya/items/7528a22a14242d2d58a3
coding (101) 一覧を作成し始めた。omake:最近のQiitaで表示しない5つの事象
https://qiita.com/kaizen_nagoya/items/20667f09f19598aedb68
官公庁・学校・公的団体(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
programの本質は計画だ。programは設計だ。
https://qiita.com/kaizen_nagoya/items/c8545a769c246a458c27
登壇直後版 色使い(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
amazon 殿堂入りNo1レビュアになるまで。仮説(102)
https://qiita.com/kaizen_nagoya/items/83259d18921ce75a91f4
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.
Este artículo es una impresión personal basada en mi experiencia personal. No tiene nada que ver con la organización o empresa a la que pertenezco actualmente.
文書履歴(document history)
ver. 0.01 初稿 2018年03月13日
ver. 0.03 add URL 20250208
最後までおよみいただきありがとうございました。
いいね 💚、フォローをお願いします。
Thank you very much for reading to the last sentence.
Please press the like icon 💚 and follow me for your happy life.
Muchas gracias por leer hasta la última oración.
Por favor, haz clic en el ícono Me gusta 💚 y sígueme para tener una vida feliz.