知っておきたいプロの常識!組み込みC言語,移植性と効率向上のテクニック
知っておきたいプロの常識!組み込みC言語,移植性と効率向上のテクニック
|
【コース】1日コース,7時間(昼休み1時間を含む) 【内容のカスタマイズ】不可
【セミナNo.】ESYK03 【出張範囲】関東近郊
【セミナNo.】ESYK03 【出張範囲】関東近郊
現在,組み込みシステムのソフトウェア開発言語はC言語が主流となっている.しかし,C言語の文法は曖昧な部分が多く,移植性を保つのは至難の業である.自動車業界でもMISRA-Cのコーディング規則により,曖昧な文法を利用しないためのルールを策定している.
本講義では,組み込み向けのソフトウェア開発にC言語を使い初めてから2,3年程度を経過したプログラマを対象に,C言語の文法のどこが曖昧なのかを解説し,その罠に落ちた例/罠を回避する例を紹介する.
また,C言語の文法とは直接関係はないものの,組み込み系には重要な変数領域の削減方法,スタックサイズの計算方法,スタック領域を削減する方法等についても紹介する.
本講義では,組み込み向けのソフトウェア開発にC言語を使い初めてから2,3年程度を経過したプログラマを対象に,C言語の文法のどこが曖昧なのかを解説し,その罠に落ちた例/罠を回避する例を紹介する.
また,C言語の文法とは直接関係はないものの,組み込み系には重要な変数領域の削減方法,スタックサイズの計算方法,スタック領域を削減する方法等についても紹介する.
●対象聴講者
・C言語の文法のどこが曖昧なのかを知りたい方
・C言語で組み込み系ソフトウェアの開発を初めてから2,3年程度経過した方
・組み込み系C言語で移植性や効率をアップさせる方法を知りたい方
●講演の目標
・C言語の正しい文法が理解できる
・MISRA-Cのコーディング規則の内容が理解できる
・組み込み系C言語で移植性や効率をアップさせる方法が理解できる
●内容
1 整数型はこんなにも曖昧
1.1 char型とint型の注意事項
1.2 符号付き整数型は内部表現すら決まっていない
1.3 異なる型での演算には暗黙のルールが適用されるんだよ!
2 浮動小数点型の演算はとても複雑
2.1 浮動小数点型の内部表現はIEEEの規格が殆ど
2.2 浮動小数点定数の型の割り当ては自動的には変わらない
2.3 浮動小数点型の演算にはFPU機能が必須
3 派生型のあれこれ
3.1 ケチの付けようがない構造体
3.2 文法的には使い物にならないビットフィールド
3.3 移植性は担保できない共用体
4 知っているようで知らない演算子
4.1 演算子優先順位表の左上は関数呼出し
4.2 意外に説明できない後置インクリメントの動作
4.3 乗除算はC言語とマイコンでは仕様が異なる
4.4 条件式とif文は全く異なるもの
4.5 非常に便利なのに知名度が低いカンマ演算子
5 静的変数領域の削減
5.1 変数領域はconstと初期値の記述に左右される
5.2 値を変更しない変数には必ずconstを付けるべし
5.3 初期値がゼロなら記述してはならない
6 スタックサイズを計算しよう!
6.1 長時間動作させると暴走するシステム
6.2 スタックサイズの計算方法
6.3 多重割込みを含めたスタックサイズの計算
6.4 スタックサイズの削減方法
・C言語の文法のどこが曖昧なのかを知りたい方
・C言語で組み込み系ソフトウェアの開発を初めてから2,3年程度経過した方
・組み込み系C言語で移植性や効率をアップさせる方法を知りたい方
●講演の目標
・C言語の正しい文法が理解できる
・MISRA-Cのコーディング規則の内容が理解できる
・組み込み系C言語で移植性や効率をアップさせる方法が理解できる
●内容
1 整数型はこんなにも曖昧
1.1 char型とint型の注意事項
1.2 符号付き整数型は内部表現すら決まっていない
1.3 異なる型での演算には暗黙のルールが適用されるんだよ!
2 浮動小数点型の演算はとても複雑
2.1 浮動小数点型の内部表現はIEEEの規格が殆ど
2.2 浮動小数点定数の型の割り当ては自動的には変わらない
2.3 浮動小数点型の演算にはFPU機能が必須
3 派生型のあれこれ
3.1 ケチの付けようがない構造体
3.2 文法的には使い物にならないビットフィールド
3.3 移植性は担保できない共用体
4 知っているようで知らない演算子
4.1 演算子優先順位表の左上は関数呼出し
4.2 意外に説明できない後置インクリメントの動作
4.3 乗除算はC言語とマイコンでは仕様が異なる
4.4 条件式とif文は全く異なるもの
4.5 非常に便利なのに知名度が低いカンマ演算子
5 静的変数領域の削減
5.1 変数領域はconstと初期値の記述に左右される
5.2 値を変更しない変数には必ずconstを付けるべし
5.3 初期値がゼロなら記述してはならない
6 スタックサイズを計算しよう!
6.1 長時間動作させると暴走するシステム
6.2 スタックサイズの計算方法
6.3 多重割込みを含めたスタックサイズの計算
6.4 スタックサイズの削減方法
【ご用意いただくもの】
筆記用具
筆記用具
【講師】
鹿取 祐二 氏〔トロンフォーラム学術・教育WG講師 〕
ルネサス半導体トレーニングセンターにて,マイコン,C言語,リアルタイムOSのセミナー講師を約25年間担当.ルネサス退社後は,組み込みシステム関係の書籍を執筆する傍ら,トロンフォーラム学術・教育WGのメンバーとして,リアルタイムOSのセミナー講師として活動中.
鹿取 祐二 氏〔トロンフォーラム学術・教育WG講師 〕
ルネサス半導体トレーニングセンターにて,マイコン,C言語,リアルタイムOSのセミナー講師を約25年間担当.ルネサス退社後は,組み込みシステム関係の書籍を執筆する傍ら,トロンフォーラム学術・教育WGのメンバーとして,リアルタイムOSのセミナー講師として活動中.