入社後のOJTで、最初に携わったことはマイコンソフトウェア開発でした。マイコンソフトウェアとは、特定の機能を提供するために家電製品や機械等に組み込まれ、生活の中でどこでもあるソフトウェアです。例えば携帯電話の中のソフトウェアや、炊飯器、洗濯機など様々な家電製品をコントロールするソフトウェアです。
私が担当した組み込みソフトウェア開発はルネサスエレクトロニクス製78K0Rシリーズのマイコンを使い、開発ツールとしてCubeSuite
(※1)を使いました。本番の開発に入る前に、入社前研修の復習とシミュレータ
(※2)の学習を兼ねて簡単なサンプルプログラムを作成してみました。サンプルプログラムではLED、スイッチ制御、タイマ、シリアル通信などの基本機能を実現しました。以下に紹介します。
まず、スイッチでLEDを制御するサンプルプログラムの仕組みについて紹介します。図1に示したように、スイッチを押すと、現在点灯しているLEDが消灯し、その右にあるLEDが点灯します。もう一回スイッチを押すと、同じように繰り返します。一番右のLEDが消灯したら、一番左のLEDが点灯します。ここで、マイコンの入出力ポートにLEDを接続し、ポートの出力値を「1」に設定すればLEDを点灯させ、「0」に設定すればLEDを消灯させることができます。
|

|
|
図1. スイッチを用いたLED制御の仕組み
|
次に、一定間隔でシリアル通信を実現するサンプルプログラムの仕組みについて紹介します。図2では、マイコンとPC間通信のシミュレーションを示しています。それを実現するために、マイコンのタイマとシリアル通信の機能を利用しました。タイマのレジスタを設定することで、一定の間隔で同じ動作を繰り返すことができます。また、シリアル通信を制御するレジスタを設定することで、送信、受信、連続送信など様々な通信動作を実現できます。
|

|
|
図2. マイコンとPCとのシリアル通信のシミュレーション
|
サンプルプログラムを作成した後、本番の開発に取り込みました。開発の感想として、まずマイコンのマニュアルを熟読しなければいけないと思いました。それはマイコンソフトウェア開発の大前提だと思います。今でもマイコンの仕組みを全部覚えることができませんが、マニュアルを調べながらコーディングを進めるようにしています。次に、ソフトウェア仕様書を把握しなければいけないと思います。顧客との打ち合わせは上司に担当していただきましたが、上司から顧客のニーズを聞き出すために相談は大切だと感じました。本番の開発を通して、自分に足りない点を反省することができ、大変勉強になりました。初めての開発作業を今振り返って、面白くてやりがいが感じられる作業だったと思います。