HOME > ソフテックだより > 第16号(2006年4月19日発行) 現場の声編「新基板立ち上げについて−お客様とのやり取りと社外作業−」

「ソフテックだより」では、ソフトウェア開発に関する情報や開発現場における社員の取り組みなどを定期的にお知らせしています。
さまざまなテーマを取り上げていますので、他のソフテックだよりも、ぜひご覧下さい。

ソフテックだより(発行日順)のページへ
ソフテックだより 技術レポート(技術分野別)のページへ
ソフテックだより 現場の声(シーン別)のページへ


ソフテックだより 第16号(2006年4月19日発行)
現場の声編

「新基板立ち上げについて−お客様とのやり取りと社外作業−」

1.はじめに

私は、昨年度にソフテックに入社した社員です。今回は、私が初めて最初から基板の立ち上げに参加した時のことを紹介したいと思います。去年の冬から、新基板へのCPUの移植作業を担当することになりました。
今までは、上司から与えられたことに対して作業を行っていたのですが、実際に最初の打ち合わせから参加し、実際にお客様のところで基板の立ち上げを行ったりするのは初めてのことでした。

2.基板の概要

今回の作業の主な目的は、現行品で動いている基板のCPUを変更する、というものです。基本的な機能としては現行基板とあまり変わらないのですが、実際には、マイコン基板自体の変更があったり、新たな機能が追加されていたりして、単純にドライバ周りだけを新CPUに合わせたものにする、という訳にはいきませんでした。また、CPUどうしでシリアル通信を行う必要があり(図1)、そのうち片方を私が担当し、コーディング、デバッグを行ったのですが、これがなかなか動かずに苦労しました。これに関しては、後述したいと思います。

図1. 通信イメージ
図1. 通信イメージ

3.作業内容

基本的にソフトは社内で開発しているのですが、基板立ち上げを行う際に、最初から基板を社内に持ち帰って回路の異常等を確かめるより客先で基板の立ち上げだけを行い、基板の確認、調整を行ってから持ち帰り、デバッグを行ったほうが効率がよいということになりました。

事前にお客様から借用していた、ICE(注1)とデバッガ、それと開発環境やソースの入ったCDを用意しました。ノートPC等は出張先で準備していただけるということでした。

到着するとすぐ、基板立ち上げに使用するノートPCにデバッガ等の開発環境をインストールしました。そこで、基板とICEを接続して、動作確認を行いました。このときは、ソフト自体が完成していなかった為、ROM/RAMの書き込みチェックと、ポート(注2)のON/OFFの確認のみを行うことになりました。ポートの確認に関しては、ポートのON/OFFを行って電圧を調べる、という確認を行いました。

また、外部RAMのアクセスが出来ない、という問題がありました。これは、バスライトの端子(注3)接続が違っていたことと、アドレスバス(注4)が1ビット分足りず、最大サイズまでアドレスを読み込めていない為でした。この問題を解決する為に、オシロスコープを使用して、先輩社員の方が、外部RAMへのデータ書き込み時の波形を見て作業を進めました。私はこのときただ見ているだけで、後から、どんな問題が起こっていて、どのような確認をしたのかを聞いてから、問題の理解をすることが出来ました。

基本的に、基板立ち上げ時には、ソフトをいれてお客様と合同で進めていったのですが、私自身ハード的なことに関してはあまり分かっていなかったので、ソフトではこう動かしている筈なのだけど動かないといった場合に、お客様に聞いてみて、お客様本位で進めていくしかなかったので、効率があまりよくないと感じていました。しかし、一緒に行った先輩社員に関しては、ソフト的な問題とハード的な問題を結びつけて考えることにより、ソフトが悪いのかハードが悪いのかの切り分けが出来ていました。私自身、そのような知識が足りないことを実感しました。

ここまでの一連の作業で、2日程度かかりました。
2日目からは、私が一人で行ってきたのですが、そのときは、基板のポート、アドレスバスの確認等の簡単な作業となっていたのですが、やはり、一人で行くとなると不安がありました。やはり、先輩社員のサポートが受けられない為です。最悪、電話すればよいのですが、その日は先輩社員の方が別の場所に出張だったため、実質的に一人で作業しなければならないような状態でした。
しかし、客先で自分一人で作業するということは、経験上とても有意義なことだと思いました。それは、何をするか、どうやって進めていくか、というようなことを自分で考えて行動していかなければならない為です。

4.CPU間の通信について

出張先の基板の立ち上げが終わった後で、CPU間の通信ドライバの作成を担当しました。既に設計は完了しており、コーディング、デバッグからの作業となりました。ところが、私のデバッグの進め方に問題があり、ここでもやはりハード的な観点からの問題を見ることが出来ず、思ったとおりに動かずに苦労しました。最初、通信データだけを見て問題がある箇所を探そうとしていたのですが、それだけでは分からない部分が多く、デバッグが進みませんでした。先輩社員から助言を頂き、CPU機能を一つ一つ確認していったり、通信のタイミングを変えたりしながらデバッグを進めました。送受信のタイミングの波形をオシロスコープとロジックアナライザで出して、それをずっと眺めながら、おかしいところを一つ一つ探していきました。この他にも先輩社員から様々な助言を頂き、問題の解決に至ることができました。

5.お客様とのやり取りで思ったこと

私は、この基板立ち上げの作業をするまで、基本的に上司から仕事をもらってそれをこなす形で進めてきており、お客様とのやり取りというものはほとんどありませんでした。しかしこの仕事では、お客様と実際に打ち合わせや電話でのやり取りをする機会が多くあり、私が考えていることをうまく相手に伝えなければならないと感じました。実際、私がプログラムに何を書いているかということを話しても、相手にはうまく伝わらないので、ソフトでこう動かしているから、ハードではこういう動きになる、という変換をしてから話をしなければなりません。また、自信を持って話す、ということも大切だと感じました。話し手が自信を持って話さなければ、お客様から「この人は大丈夫なのだろうか?」というような疑問を持たれることに繋がります。これから、相手の立場にたった話し方、不安をもたれないような話し方を心がけていきたいと考えています。

6.まとめ

今回、基板の立ち上げから参加してみて、やはり自分の知識の少なさを実感しました。作業全般を通して、基板とCPUへの理解は必須であり、問題が起こったときに何を調べればよいのか、というような考え方が大切なのだなと感じました。また、この経験によって、立ち上げ時にどうすればよいのか、が少しでもわかった気がします。経験を積んでいくことによって、不安な気持ちも減っていって、お客様から何かをたずねられたとき、打ち合わせするときなどに自信をもって取り組むことができると思います。

7.あとがき

いかがでしたでしょうか?
この作業で、苦労した部分というのは多くありましたが、既に述べたように、問題が起こったときにどう解決していくべきかということや、お客様とのコミュニケーションの方法がわかり、技術者としての成長が少しは出来たのではないかと感じています。今回の作業では、先輩社員に助けられてばかりでした。何でもというわけには行きませんが、一人でこなせるよう、これからも成長していきたいと考えています。

(Y.S.)

[注釈]
注1
ICE:インサーキットエミュレータ。(CPU動作をコンピュータからエミュレートするもの)
注2
ポート:信号の入出力をする端子。
注3
バスライトの端子:ここでは書き込みタイミングを知らせるための信号の端子。
注4
アドレスバス: アドレス情報をやり取りするためのバス。アドレスバスのバス幅によって、そのバスでのアドレス空間の大きさが決まる。バスとは、コンピュータ内部で各回路がデータをやり取りするための伝送路のこと。

関連ページへのリンク

関連するソフテックだより

ページTOPへ