H8マイコンのプログラムサイズは59KBでCPUのROMサイズを超えている?

このQ&Aのポイント
  • H8/3694F(ROM:32KB、RAM:2KB)のプログラムサイズが59KBでCPUのROMサイズを超えているかについて質問です。
  • プログラム実行中に問題はなく、正常に動作しているようですが、32KBのROMには何が書き込まれているのか疑問です。
  • また、プログラムサイズの確認方法や見積もり方法を教えていただければと思います。
回答を見る
  • ベストアンサー

H8(マイコン)のプログラムサイズ

マイコンの勉強ということでH8/3694F(ROM:32KB、RAM:2KB)を 購入しました。 開発環境はルネサスのHEWを使い、プログラムは同社のFDTを使って 拡張子motファイルをROMに書き込んでいるのですが、そのmotファイル が59KBであることに気付きました。 59KBだとCPUのROMサイズ(32KB)を超えているのですが、これは32KB分 までしか書き込まれていないということになるのでしょうか? プログラム実行中は問題なく動作しているように見えるのですが・・・ また、プログラムサイズを簡単に確認する方法、見積もる方法など 参考になるサイトをご存知でしたら教えて下さい。 よろしくお願いいたします。

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

  • ベストアンサー
noname#194317
noname#194317
回答No.1

拡張子motのファイルは、モトローラSレコードフォーマットと呼ばれる形式のファイルで、簡単に言えば16進バイナリをテキストで記述しているため、単純に計算しても元バイナリの2倍の大きさになります。実際にはヘッダ情報なども追加されているため、もっと大きくなりますが、詳細は次のリンク先を参照してください。 http://www.geocities.jp/chako_ratta/micon/s_format.html

jag777jag
質問者

お礼

回答ありがとうございます。 motファイル59KBならROMには30KB以下のサイズを書き込んでいるのですね。 安心しました。 でも、ROMが32KBなので実はかろうじて書き込めていただけなのですね。 もう少しプログラムサイズが小さくなるよう頑張ってみます。 ありがとうございました。

関連するQ&A

  • 組み込み用マイコンのスタックについて

    お世話になっております。 現在、ルネサスのH8マイコンの開発を勉強しております。 その一環として、以前に他の人が作ったプログラムを調べたりしているのですが、スタックサイズの計算方法が分かりません。 本来純正のコンパイラであるHEWを使っていれば、付属のツールでスタックの計算が出来ることは知っているのですが、それらのプログラムは、 ・秋月のAKI-H8についてくるCコンパイラ ・BestTechのgcc用コンパイラGDL などで開発されているので、統合開発環境であるHEWのように便利なツールはついていません。 とはいえ、本来、そんなツールが無くてもスタックの計算は必須事項だとは分かっているのですが、どうやって計算したものか悩んでいます。 ソースファイルをHEW用に書き直すという手もあるのですが、ツールに頼らない 根本的なスタックの計算手法を身につけたいと考えています。 上記のコンパイラを使った場合のスタック計算について、皆様のアドバイスを頂きたいと思います。 どうかよろしくお願い致します。

  • 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を接続する場合は、電源必要でしょうか? いろいろと質問して申し訳ないですが、教えてください。

  • ルネサスマイコンへの書き込みについて

    C言語で作成したプログラムをルネサスマイコン"SH7045"で動作させるためにはどうしたらいいのでしょうか? 開発ツール"HEW"を用いてプログラムを作成し、フラッシュ開発ツールキット (Flash Development Toolkit) というものを使えばいいと思っていますが、合っていますか? ここからがよく分からないのですが、SH7045を使用した自作基板とPCとの接続はどのようにしたらいいのでしょうか? RS232Cで直接接続するだけでは駄目ですか?間に何かいるのでしょうか?

  • マイコンのRAMサイズについて

    マイコン初心者です。 あるプログラムをマイコンへ組み込んでいます。 使用しているのはSTM32F030R8です。 RAMサイズは8KBとのことですが、メモリを確保できる領域の 上限がわからなくて困っています。 アプリで利用できる領域の上限はどれくらいでしょうか? 結果だけでなく、調べ方を合わせてご教示いただけると幸いです。 よろしくお願い致します。

  • H8S/2128の書き込み方法 FDT

    H8S/2128の購入を検討しています。 開発環境にはHEW、書き込みをFDTで行おうと思ってい、ルネサスのページからFDT4.09Basicをインストールしたのですが、"デバイスとカーネルの選択"でデバイス名のリストの中にH8S/2128がありませんが、FDTではH8S/2128に書き込みことは出来ないのでしょうか? それとも、画像左上"0.18um製品の場合、Gneric BOOT Device を選択してください"とありますが、H8S/2128はこれに含まれるのでしょうか?

  • 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

  • EclipseでH8マイコンのHEWのコンパイラを使えるようにする方法

    現在、H8マイコンのプログラミングをEclipseでできないものかと調べているのですが、EclipseにH8マイコンの開発環境HEWで使用しているコンパイラをEclipseでも使えるようにする方法というのはありますでしょうか? どのように設定すればよいか教えていただけると助かります。

  • H8Sで割り込み発生時の飛び先アドレスがRAM上にある場合の割り込み関数の記述方法

    ルネサスのマイコンH8Sのプログラムを組んでおります。 プログラムの構成がBoot部分とアプリケーション部分に分かれており、 Bootはアドレス0番地から、アプリは3000番地以降の領域を使用するようになっています。 完成されたBootを使用してアプリケーションのプログラムを組まなければならなく、また、Bootは変更できないことになっています。 このBootの中のベクターテーブル上で、割り込みが発生した場合の飛び先のアドレスがRAM上になるように設定してあります。 このため、アプリケーションソフトでは、 割り込みが発生した場合のRAM上の飛び先に FLASH ROM上の指定したアドレスにジャンプする命令を書き、 FLASH ROMのジャンプ先には、実行したい関数を書きたいのですが、 (1)RAM上の特定のアドレスからFLASH ROM上の指定したアドレスにジャンプさせる方法。 (2)FLAH ROM上の指定したアドレスに関数を記述する方法。 を知りたいのですが、 どなたか教えて頂けないでしょうか? 開発環境はHew4 言語はC言語を使用しております。 私自身が理解不足であるため質問内容が伝わりにくいかと思いますが、 宜しくお願い致します。

  • マイコンSHでSQRT(平方根)が使えません。なぜかしら?

    マイコンSHでSQRT(平方根)が使えません。なぜかしら? 開発環境はルネサスHEWです。 (SuperH RISC engine C/C++ Compiler Package V.9.03 Release 00) プログラムは下記のような簡単なものです。 リンクでエラーになります。 L2310 (E) Undefined external symbol "_sqrt" referenced in "ファイルネーム" 未定義ということのようですが,よくわかりません。 どなたかお助けください。 宜しくお願いします。 ------------- 記 ------------- #include <math.h> { double ret; ret=sqrt(4.0);   ・   ・ }

  • H8 3052Fのモニタープログラムが動きません

    H8の3052F(秋月)のモニタープログラムについて教えて下さい。 以下のURLの[準備編へ] [設定編へ] [作成編へ] [実行編へ] [HTerm編へ]を参考に行いました。(MONITOR.MOTはH8WriteTurboソフトでROM書きしました。) http://uhiro.fc2web.com/software/monitor01/index.html 次にHEWのC言語で作成したプログラムをビルドすると、Debugフォルダーの中にMOTファイルができたので、これをHtermでロードしたところ下のようなメッセージが表示されます。 : L Top Address=00000 End Address=008AD : 正常な場合は、Top Address=FE000になると思うのですが、 上記のアドレスになってしまいます。 (G 00000やG FE000としても実行されません。) HEWのビルドを行う前には何も設定をしていないのですが 何か行う必要があるのでしょうか? 初心者のためプログラム自体に問題があるのかもしれません。 よろしくお願い致します。

専門家に質問してみよう