前回は「組込みシステム」についてお話しました。今回からは「組込みソフトウエア」の話に入っていきたいと思います。クロス開発やICEを使ったデバッグなどの話はとりあえず置いておいて、プログラミングに絞って話を進めていきます。組込みソフトウエアとは組込みソフトウエアとは「組込みシステム」のソフトウエアで、ハードウエアの一部となり機器と一体で製品と見なされるものです。ハードウエアに関する知識が必要となり、ノウハウに負う部分も少なからず存在します。そのためIT系の技術者からみると大変難しそうに感じることがあるようです。最近はモデルベース開発手法も取り入れられ、ハードに依存するプラットフォーム部分とアプリケーション部分を明確に分離して開発されることも多くなってきており、以前ほどの取っつきにくさはなくなってきていると思います。組込みソフトウエアの特色とは言っても、アプリケーション部分の開発でも組込みソフトウエアで気をつけないといけない点は存在します。識しない、メモリ使用量とコンパイラの最適化に関して説明していきましょう。組込みソフトウエアの開発ではメモリ使用量に大変気を遣います。対象となるボードが決まっておりボードによって使えるメモリ量も決まっているからです。メモリを節約する一般的にはROMとRAMではRAMの使用量を抑えます。これはボードのRAM量がROM量に比べて大変小さいためです。あるシングルチップマイコンの場合ROM:64KB、RAM:4KBです。ROMには値が変わらないプログラムや定数が割り当てられるため、C言語でプログラミングする場合はconst修飾子を付けることで変数をROM行きにすることができます。メモリ領域全般の節約方法はグローバル変数やstaticの付いたローカル変数は小さい型から宣言すると効果的です。これはアライメント制約と呼ばれるデータ配置のルールがあるためです。4バイトアライメントの場合は変数が4バイトに収まるように配置されます。一つの変数が4byteをまたがることはできません。dの変数がある場合、a、b、c、dの順に宣言すると、a、bで5byte要するので、aだけで4byte分のメモリ領域に配置されます。aはcharなので3byte分は無駄になるわけです。次の4byte領域にbが配置され、次の4byteにc、dが配置され計12byteの領域が使用されます。置されて4つの変数が8byteで収まります。変数宣言の順番でメモリが無駄になるかどうかが決まるわけです。コンパイラの最適化を抑えるコンパイラの最適化にも注意が必要です。ハードウエアの制御にはレジスタの値を参照することが多いです。}}のようなコードはreg変数の内容が変化しないと判断され、次のように開発者が意図しない処理に最適化されてしまいます。}}このような場合は、次のようにvolatile修飾子を付けてコンパイラの最適化を抑制します。最後に組込みソフトウエアで気をつけたいポイントをプログラミングの観点で簡単に説明しました。次回はハードウエアの基礎について説明していきたいと思います。(藤井)_______________________________________________________________________この記事への評価にご協力をお願いします。URLをクリックして、「ご協力ありがとうございました」のメッセージがご使用のブラウザに表示されれば投票完了です。交渉が苦手というのは思い込み?最近テレビが壊れていろいろと探しているのですが、なかなか選べないものですね。交渉の場面が多く、責任のある立場です。読者のみなさんも、多くのシーンを思い浮かべることができると思います。「交渉」で占められているといっても過言ではありません。響を与えることもあるため、近年ではとても重要な位置づけとして注目されて来ているようです。ネゴシエーション研修の時に「交渉が得意な人の人物像」について自由に考えてもらい、参加者のみなさんと意見交換をしました。・権力がある確かにそのような人は交渉に長けているような気がしますが、本当はそれは思い込みなのだそうです。理想の交渉人とは?アメリカの警察では、ネゴシエイター(交渉人)と呼ばれる、犯罪交渉を行うチームがあります。ときどき映画などにも出てきますよね。彼らはあくまでも「死者を出さずに事件を解決すること」を目的として犯罪者と交渉するのですが、この交渉人というのは警察官であれば誰でもなれるというわけではなく資質が求められるのだそうです。以下が、米警察におけるネゴシエイターの条件です。物像とは、ちょっと違うんですよね。私はこの条件を知って、なんだか自分が大きな誤解をしていたような気分になりました。渉の基本的な定義は「合意するための障害となる課題を解決すること」です。基本は双方それぞれの目的を達成するということが大前提で、どちらかが勝ったりり負けたりするようなものではありません。交渉する相手も人間で、当たり前ですが感情があります。仕事の場合には交渉の場面の前後にも関係性は続くわけですから、相手と交渉の後にどんな関係になるのかというのがとても重要となるのです。調べてみると、上手に話したり説明ができるというよりは、口下手であっても誠実で、よく話を聞いてくれるといった人物像のほうが好感が持たれるようです。要求はきちんと伝えなくてはなりませんが、その場で結論を出してしまうよりも「自分にはそんな権限が無いので話し合ってきます」と言えるぐらいが丁度いいようです。プロの交渉はほとんどチームで行われているらしく、たいていの場合は一人でとても重要な決断や判断をすることなど無いそうです。交渉はプロに学べ!交渉のプロであっても必ず準備をし、チームで戦略を練ってから臨むのだそうです。テクニックに走るのもいいですが、先ずはそこからはじめてみるのはいかがでしょうか?また、交渉は理論の学習と回数を重ねることで随分と上達ができるのだそうです。交渉と聞いただけで苦手と決めてしまわずに、ぜひチャレンジしてみてください。したら、思った以上に自分に交渉の素質があるということを発見できるかもしれませんよ。http://blog.goo.ne.jp/cs_jenniffer/_______________________________________________________________________この記事への評価にご協力をお願いします。URLをクリックして、「ご協力ありがとうございました」のメッセージがご使用のブラウザに表示されれば投票完了です。ホントのところ今週は「アジャイル開発体験合宿に参加しますか?」のホントのところ。オブジェクト倶楽部2008夏イベントで好評だった、アジャイル開発体験セッション。参加を希望される方がどれくらいいるのか全く読めません。週のアンケートは「アジャイル開発体験合宿に参加しますか?」です。合宿の企画について何かひとことありましたら「ちょっと語らせて!」まで、お気軽にご意見をお寄せ下さい。都合さえ合えば参加したい。参加したいけど、その時期は都合が悪い。合宿の内容に興味が湧かない。詳細をこのメールに返信ください!!アンケート結果はオブジェクト倶楽部サイト上にて公開します。前号「忘年会イベントで一番楽しみなのは?」の結果は公開中。┗編集後記こんにちは、編集人のナガタユウコです。オブラブ忘年会イベントのお申込み期限が明日朝8時と迫っています!ご希望の方はお急ぎください!また、合宿イベント企画も着々と進行中です。楽部初の試みなので、実行委員スタッフは産みの苦しみを味わっているようです。ホントのところ」にてお聞かせください♪オブジェクト倶楽部カレンダーの12月分の電子データを公開します。12月は「予言!?2008年は多分こうなっている」です。オブラブのメンバーが一年前に2008年の終わりには業界や自分の周りはこうなっているはずと無責任に(笑)書いた予言が書いてあります。当たったか外れたかはダウンロードして確認してもらうとして、こういうお題は盛り上がるので、みなさんも仕事の息抜きにチームメンバーと来年の予言をしてみると、チームの雰囲気作りにいいかもしれません。(西村)カレンダーのダウンロードはこちらから。***せねばならぬことと知りながら、実行しないのは、真の勇気がない証拠であるということ。