知っておきたいプロの常識!組み込みC言語、移植性と効率向上のテクニック

知っておきたいプロの常識!組み込みC言語、移植性と効率向上のテクニック
―― やってはいけない or やって欲しいコーディング集

 

【開催日】2019年9月7日(土) 10:00-17:00 1日コース
【セミナNo.】ES19-0090  【受講料】25,000円(税込)
【会場】東京・巣鴨 CQ出版社2Fセミナ・ルーム [地図]
セミナ会場

 現在、組み込みシステムのソフトウェア開発言語はC言語が主流となっている。しかし、C言語の文法は曖昧な部分が多く、移植性を保つのは至難の業である。自動車業界でもMISRA-Cのコーディング規則により、曖昧な文法を利用しないためのルールを策定している。
 本講義では、組み込み向けのソフトウェア開発にC言語を使い初めてから2,3年程度を経過したプログラマを対象に、C言語の文法のどこが曖昧なのかを解説し、その罠に落ちた例/罠を回避する例を紹介する。
 また、C言語の文法とは直接関係はないものの、組み込み系には重要な変数領域の削減方法、スタックサイズの計算方法、スタック領域を削減する方法等についても紹介する。

 以下は本講義で紹介するプログラムの一例である。int型が16ビットで最大値が32767である時、変数xとyに代入される値を答えよ。

signed char a = -4;
unsigned char b = 3;
short c = -2;
unsigned short d = 1;
long x, y;

x = a + b + c + d;
y = a == b ? 0x8000 : -100;

答え

※特典スタンプ!:本セミナと9月12,13日のセミナ「実習・組み込みリアルタイムOS入門」を申し込みされた場合、メンバーズ・カードのスタンプを通常の2倍押印します。


1. 整数型はこんなにも曖昧
 1.1 char型とint型の注意事項
 1.2 符号付き整数型は内部表現すら決まっていない
 1.3 異なる型での演算には暗黙のルールが適用されるんだよ!

2. 浮動小数点型の演算はとても複雑
 2.1 浮動小数点型の内部表現はIEEEの規格が殆ど
 2.2 浮動小数点定数の型の割り当ては自動的には変わらない
 2.3 浮動小数点型の演算にはFPU機能が必須

3. 派生型のあれこれ
 3.1 typedefで紐解く配列とポインタ
 3.2 ケチの付けようがない構造体
 3.3 文法的には使い物にならないビットフィールド
 3.4 移植性は担保できない共用体

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言語で移植性や効率をアップさせる方法が理解できる


【受講者が持参するもの】
不要

【講師】
鹿取 祐二 氏〔トロンフォーラム学術・教育WG講師 〕
 ルネサス半導体トレーニングセンターにて,マイコン,C言語,リアルタイムOSのセミナー講師を約25年間担当.ルネサス退社後は,組み込みシステム関係の書籍を執筆する傍ら,トロンフォーラム学術・教育WGのメンバーとして,リアルタイムOSのセミナー講師として活動中.


このセミナの参加募集について

 募集は終了いたしました 


類似するセミナをお探しの場合
以下にある「このセミナのタグ情報」の中から,ご希望のタグをお選び下さい. お選びいただいたセミナと同じタグ情報を持つセミナを一覧表示します.

このセミナのタグ情報
各タグをクリックすると,類似するセミナの一覧を表示します.

コース

 1日コース

カテゴリ

 組み込みシステム

シリーズ

 

特徴

 講師実演

キーワード

 コンピュータ
 ソフトウェア
 プログラミング言語
 マイコン
 開発環境
 開発手法

セミナ事務局からのお知らせ

・メンバーズ・カードの新規発行停止について(2023/10/12).

・適格請求書発行事業者登録番号のご案内(2023/9/22).

・オンサイト(出張)セミナのご案内(2022/9/14).

・紙の請求書類等有料化について(2023/10/12).

・PDFファイルによるテキストの提供について(2021/8/20).

・新型コロナウイルス感染症対策について(2023/11/20).

・オンラインセミナの開始について(2020/5/21).

キャンセルの規定の変更について(2020/2/21).