• ベストアンサー

H8マイコンのプロテクト方法

H8マイコンに書かれているプログラムを読込むことは出来るのでしょうか? H8マイコンの搭載されているに商品を作りました。 お客様にその商品を中国に輸出するので、 『プログラムを読込めないようにしてください。』といわれました。 中国ではコピーをされる恐れがあるとのことです。 そもそもH8からプログラムを読込むようなことは出来るのでしょうか? また、出来てしまう場合は、プログラムを転送時にプロテクトをかけるような ことは出来るのでしょうか? ちなみに、書込みはFlashSta.exeを使用しています。 どなたか分かりましたら回答お願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • tokichim
  • ベストアンサー率42% (88/205)
回答No.2

あー、 まさに「バイナリファイルが得られる」ことを禁止したいわけですな。外から開発ツール等を使い、バイナリを読み出されてしまってはそれを他のチップにデッドコピーしたり、逆アセンブルして解析したりできてしまうから。(つまりコピー商品を作られてしまう) で、マイコンによっては、内部のヒューズをプログラム時に切ることで、外からの読み出しを禁止する機能を持っているものがあります。 ワンチップマイコンはROMを自分の中に持ってますから、外から読めなくても自分自身は読めるので「使い物にならなくなる」ことはないのです。 ではH8マイコンがそういう機能を持っているかというと…微妙。 一応「プログラムセキュリティ」という機能は品種によっては対応しているのですが、一部非公開だったりしてマニュアルぱっと見ではよくわからん。 一応、ブートモードでの書き込みではフラッシュは自動消去されるので大丈夫と思うのですが、ライタモードの場合は…? NDAが必要かもしれませんが、ルネサスまたは代理店にセキュリティについて聞いてみてください。 最悪の場合は、BGAにする、チップ表面の刻印を削る、樹脂で全体を封入する、などの手段が必要になりますが、修理や再書き込み出来ない(不良基板、即破棄)のでトレードオフです。

GACHAPINA
質問者

お礼

回答ありがとうございます。 マイコンはR8C/1B(R5F211B4SP)です。 ルネサスのホームページからデータシートなどを見てみましたが、プログラムセキュリティーという言葉はありませんでした。 たぶんダメなのでしょう・・・ ルネサスに聞いてみます。 ちなみにNDAとライターモードとは何のことでしょうか? 教えていただけると助かります。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • jx-word
  • ベストアンサー率40% (38/94)
回答No.3

データシートを見た限り、ROMコードの暗号化、もしくは読み出し禁止機能はないようですね。 少なくとも表向きの機能には無いようです。 秘密の機能を積んでいる可能性もあるので(無いとは思うけど)、 #2さんの言うようにRenesasに聞いてみるのも一つの手。 ちなみにNDAとは秘密保持契約のことで、内容を公開しない契約の下で秘密の情報を仕入れます。 ライタモードとは、ローディングではなくてROMライタで読み書きするモードです。 H8の場合はシリアル/パラレルの2種類のモードがあるみたいですね。 つまり、基板からチップを引っぺがして、ROMライタに掛ければ読み出せると言うことです。

GACHAPINA
質問者

お礼

回答ありがとうございます。 とっても具体的に説明してもらったので、 助かりました。

全文を見る
すると、全ての回答が全文表示されます。
  • katouka09
  • ベストアンサー率50% (130/256)
回答No.1

読めなくしたら、その商品は使い物にならないのでは? 何のために、H8マイコンを組み込んでいるのか、 理解されての質問でしょうか? 読み込んでも、バイナリファイルが得られるだけです。 どのような方法で、コピーされるのかを知れば、対策は打てるのでは? 物理的に触れられないようにするなど、対策は調べれば出てくると思います。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • H8マイコンについて教えてください。

    僕はPICをやっていますが最近H8マイコンの高機能さに魅力を感じ はじめてみたいと思うようになりました。 そこで以下のことについて教えてほしいです。 質問1 PICは石単体で買ってきてそれにプログラムを書き込み 水晶やらその他の部品を取り付けて作っていくのでH8も 石単体で買ってくるものだと思ってました。 でも調べてみると秋月のマイコンボードみたいに 基盤に水晶やら抵抗やら色々半田付けされてて それにプログラムを書き込んで作るようなのが沢山ありました。 H8は石単体で買ってくる物ではないんですか? (もしくは足のピッチを2.54に変換したもの) 画像検索で調べるとDIPタイプのH8もあるようですが・・・ 質問2 H8へのプログラムの書き込みですがPICでは "PIC ライター"とかで検索するとライターの作り方とか 自作ライターのページが沢山出てきますがH8に関しては ぜんぜんヒットしません。 僕のイメージとしてはゼロプレッシャーのついたライターを作って それにH8をセットしプログラムを書き込むものだとばかり 思ってたんですがH8はどうやってプログラムを書き込むんですか? 質問3 部品の配置やブレップボードで自由度が高いので できれば表面実装ではなくDIPやPLCCみたいな石で ライターに刺して作れるといいんですが・・・ 表面実装以外はあまり一般的ではないんでしょうか? 質問4 使用する言語についてですがPICではアセンブラでは アセンブラを使っています。 でもH8はC言語も結構やってる人が多いみたいでC言語自体も 興味があるのでそっちでやろうかと思っています。 でも部分的にアセンブラ(インラインアセンブラ?) が必要なってくる部分があると思うんですが やっぱり全部アセンブラのほうがやりやすいんでしょうか? 以上、よろしくお願いします。

  • マイコンからプログラムを読み込むことは出来ますか?

    マイコンからプログラムを読み込むことは出来ますか? フラッシュライタなどでマイコンのROMにプログラムを書き込むことが出来ますが、逆にマイコンからプログラムを読み込むことはできますか? マイコンに転送したプログラムを誤ってパソコン上から消してしまいました。マイコンのROMにそのプログラムが残っているはずなので、マイコンのROMから取り込みたいと思っています。そんなことは可能ですか? ちなみに秋月電子のH8/3048マイコンを使用しております。 マイコンとの通信はRS232Cを使用しています。 パソコンからデータ復元ソフトを使って復元すれば話は早いんですが、学校のパソコンなのでアドミニ権限が無いので復元ソフトを使うことはできないのです・・・

  • マイコン H8/3694 ファイルの読み込み

    お世話になっております。 現在ルネサステクノロジH8/3694Fを使ってEEPROMへ書き込み・ 読み込みのプログラムを勉強中です。教科書を見ながらSCIを 使って1文字ずつ書き込み・読み出しは出来たのですがファイル を読み込んでそれをEEPROMに書き込むというのがうまく行きません。 FILE *fp; char [20]; fp=fopen("abc.txt","r"); などと書くとエラーとなってしまいます。 C言語で言うstdio.hなどが必要なのかと思いますがよくわかりません。 そもそもファイルを読み込んでEEPROMに書くこと自体ができるのでしょうか? 教科書はH8/Tinyマイコン 完全マニュアル 島田義人 28章のIICのところを勉強しています。 これだけでは不足だと思いますので補足は致します。 どなたか詳しい方よろしくお願いします。

  • H8マイコンでの開発について

    秋月電子通商でH8用のUSBでの開発ボード http://akizukidenshi.com/catalog/g/gK-00171/ を買おうと思っているのですが(マイコンはH8/3048Fを持っています)、 買う前に気になったことがいくつかあります。 (1)これはUSBでプログラムを書き込めるということですよね? (2)USBには色々な形の種類(Aタイプ、Bタイプなど)がありますが、パソコンとマイコンをつなぐのはどれを買えばいいのでしょうか? (3)電源は3048Fの場合、12Vで合っているでしょうか?また、電流は商品によって違う(1A、1.5Aなど)のですがどうすればいいのでしょうか?  現在、http://akizukidenshi.com/catalog/g/gM-00031/  を買おうと思っていますが大丈夫でしょうか?  (または、パソコンにつないだUSBから電圧が送られてきて付属のMAX662をつけることでプログラムを書き込め、電源は必要ないのでしょうか?) (4)パソコンとシリアル通信をする場合はUSBで出来るのでしょうか?また、もし違う場合はやり方を教えてください。 (5)HEW4を用いてプログラムを書き込もうと思うのですが大丈夫でしょうか?(開発環境はWindows7です) 以上です。質問が多くて申し訳ありません。 回答よろしくお願いします。

  • H8/3052Fにプログラムを書きこめません.

    H8/3052Fのマイコンボードにプログラムの書き込みができなくなりました. 考えられる原因を教えてください.

  • H8/3052FマイコンにRTOS

    こんばんは!! 学校の授業で組込みに興味を持ち、勉強してみようと思い、 組込みを勉強しようと思っています!! 秋月電子のAKI-H8-LANが学校にあったので、 借りて来ています。しかしマニュアルも何もありません。 マイコンはH8/3052Fを使っています。 開発環境はRENESASのHEWを使い、LEDを点灯させたり、 点滅させたりというプログラムをやっと出来るようになりました>< 書き込みはH8write turboで行っています。 RTOSを勉強したいのですが、TOPPERS/JSPカーネルを ダウンロードし、HEWでコンパイルしたかったのですが、 出来ません>< そこで、3052Fで使えて、HEWでコンパイル(というかビルド?) 出来るRTOSを教えてください!! 私の調査・勉強不足なのですが、 HEWでTOPPERS/JSPカーネルが使える方法もありましたら よろしくお願いします!! 未熟者ですがどうかよろしくお願いしたしますm(__)m

  • H8マイコンについての質問です

    現在H8マイコンでプログラムを実施しようと 思っております。 秋月電子のマザーボードにマイコンH3052Fを接続して、 PCからマザーボードにプログラムで書き込みをしようと 思っております。 書き込み方法については、HEW4、FDT4.08を使用する予定です。 HEW4でプログラムファイルをmotファイルまで作成して、 FDT 4.08でマイコンに書き込もうと思いますが、 Device H8/3052F PORT E8DIrect の設定でスタートしましたが、下記のようなエラーがでてしまって、 書き込めません。 エラー内容 Power will be set to 5.0v Opening port 'E8DirectPrepare' ... No E8 found to re-enumerate, looking for already re-enumerated E8Direct... Error No 17657: E8Direct/E8aDirectは見つけられませんでした Clock Frequency (External) = 25.0000MHz, Clock Mode = 0, CKM = 1, and CKP = N/A Connecting to device 'H8/3052F' on 'E8Direct' Configuration: 'BOOT Mode' connection - using emulated interface Opening port 'E8Direct' ... Error No 15026: 通信ポートがオープンできません PCは富士通のBIBLO LOOX M/G30を使用しており、windows7です。 現在推定する原因としては、接続がうまくいっていないのではと 考えております。 USBを使用して、接続をしておりますが、FDTのマニュアルをみたところ E8DirectはUARTと記載ありました。 UARTてなんですか?通常のUSB接続ではないのでしょうか? また、マザーボードにはRS-232Cもありますので、こちらで接続できるのでしょうか? ちなみにPCには、15pinの外部ディスプレイコネクタがあります。 マザーボードの方はRS-s232C 9pin(たぶんシリアル)なのですが、 15pinの外部ディスプレイコネクタと接続できますでしょうか? また、RS-s232C 9pinをUSBに変換できるコネクタはもっておりますが、 このUSBに接続して試しましたが、だめでした。 FDTのポートの接続方法について教えてください。 また、RS-s232C 9pinを接続する場合は、電源必要でしょうか? いろいろと質問して申し訳ないですが、教えてください。

  • Aki-h8/3052マイコンについて

    今Aki-h8/3052マイコンを勉強しているのですが、初心者のためうまくいかず質問をしました。知識がないと思われるような質問をしてしまいますが、よろしくお願いします。 次のようなプログラムを書き込んで、LEDを点滅させたいのですが点滅しません。原因がわからないので、教えていただける方がいたらよろしくお願いします。 #define P5DDR (*(volatile unsigned char*)0xffffc8) #define P5DR (*(volatile unsigned char*)0xffffca) void wait (long loop){ while(loop--); } int main(void){ P5DDR = 0xff; while(1){ P5DR = 0xff; wait(200000); P5DR = 0; wait(200000); } } ポートBを使用した場合うまくいくのですが、ポート5を使用するとうまくいきません。 コンパイラにはGDLを、書き込みにはH8Write Turboを使用しています。

  • マイコンのステート数

    こんばんわ。今、マイコンを勉強しています。 使用しているマイコンはATC-80ZIIです。 マイコンでプログラムを組んで実行した時にかかる時間(実行時間)を計算で求める方法を調べています。実行時間を求める方法はステート数にクロック周期(クロック周波数の逆数)をかけるという事は知っているのですが、各命令に対してかかるステート数がわかりません。例えば00HをAレジスタに転送する場合、(LD A,00H)のステート数は7らしいです。本に載っていると思って調べてみたんですが見つからなかったのでここに質問しました。どこかに表とかに一覧で載っていないでしょうか? よろしくお願いします。

  • マイコンのプログラミングについて

    H8マイコン内で周期の異なるPWM波形(PWM1、PWM2)を発生させ、PWM1とPWM2を論理演算した波形(例えばVout = PWM1 & PWM2)を出力端子に出力したいと考えています。この際、同時に通信プログラムも走らせるつもりです。タイマ関数を使えばVoutの生成は一応実現できそうなのですが、待ち時間によって通信プログラムに影響がでるため別の方法を模索しています。 当方、マイコン、プログラミングともに初心者なため、そもそもこのような並列処理ができるのかすら分かっていません。何か良いアドバイスがあればよろしくお願いします。