• 締切済み

iTron上で、ファームウェアダウンロード機能の実装

組込みの初心者です。 CPU:SH7706 O S:NORTi ファームウェアダウンロード(セルフアップデート?)機能を実現したいと考えています。 考えている手段は 1.シリアル通信にて、バイナリを取得 2.RAMに展開 3.RAMに書込みプログラムをロード 4.すべての割込み、タスク停止 (OS停止?) 5.RAMの書込みプログラムを開始 6.フラッシュROMに書込み 7.再起動 ですが、これは実現可能なのでしょうか? 一般的な手段を知ることができるとうれしいです。

みんなの回答

  • coredump
  • ベストアンサー率46% (12/26)
回答No.1

どもです。 実現可能だと思います。 まぁ、後はそのシステムの性質によってフラッシュROMを2つ用意するとか、色々あるとは思いますが。。。

tr160
質問者

お礼

ありがとうございます。 もう少し、調べていきたいと思います。

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

関連するQ&A

  • SH2を使いたいです

    SH2の7045を使いたいですが、なかなか動きません。コンパイラはYellowSoftのコンバインをつかってます。今回はSH2のROMのかわりにRAMにプログラムを書き込むことをしました。プログラムはとりあえずマニュアルに載せてるサンプルを使いました。

  • アルファーボード AP-AH4A

    現在、アルファーボード上のCPU-SH4AをC言語で書いたプログラムから動かす設計をしています。 アルファーボードには8MBのフラッシュROMが搭載されており、そのフラッシュROM上の「あるセクタ」に対して、外部からデータを書き込むルーチンを作成していますが書き込めません。 具体的な動作は、232Cより取り込んだデータをRAMに蓄えて、フラッシュ1セクタ(32kワード)を丸ごとRAMに展開し、232Cからのデータとマージし、もとのフラッシュ1セクタへ書きもどしてやる。 「ROM化支援機能」を使って、実際の消去、書き込みルーチンはRAM上で動作させ、処理終了後、ROM領域のルーチンへ復帰する。 こんな事を行った経験のある方がいらっしゃったら、ヒントでもサンプルでも良いので御教え頂けないでしょうか?

  • スタートプログラム

    電源入れると勝手に動いてしまい、TOOLを起動させないように、 タスクマネージャのスタートプログラムを停止させようと、 ほとんど停止できません、他に手段はありますでしょうか、 宜しくお願いします。

  • 組込みマイコンの選定(トレンド)

    制御用の組込みマイコンの選定をしています。 日立(ルネサンス)のH8系、(もしくはSH-2系)を の使用を考えています。 現在、デバッカ、コンパイラなどの開発環境は 全くない状態です。 他メーカのマイコンも含め選定したいと思うのですが、 マイコンのトレンドが分かりません。 NEC(V850、78K)、PowerPC?....など。 現在詳細仕様は決まってませんが、下記にまとめます。 ビット数:16or32ビット ROM容量:約 512kバイト(内蔵or外付けどちらでも可) 使用周波数:15~25MHz シリアルあり (マニュアル関連は日本語希望) ●質問 ”(この程度のスペックであれば)組込み系マイコンは H8(SH-2)系だ”もしくは”NEC系が良い”などのトレンドはあるでしょうか。 (トラ技などを見るとH8、SH系の記事が良く載っている ような気がするのですが....)

  • シリアルSRAMとEEPROMのデータ転送について

    ルネサステクノロジのSHシリーズでCのプログラムを勉強しています。私が採用したSH7125にはDMACの機能がありませんので、勉強ですので効率的ではありませんが、シリアルSRAMである23LC1024とEPROMの25LC1024を外部接続してのプログラムを考えています。 16ビットのデータを23LC1024に逐次保存していき、計測が終了してから25LC1024に一括してデータ転送をする機能のプログラムです。 ハードウェアとしてはADCの入力ポートとシリアルRAM、EEPROMのICを付け、データの内容を確認するLCD表示器とポートEにLEDを取り付けましたが、このほかに追加する機能が必要でしょうか。 ここでいくつか疑問点があります。パラレルデータをシリアルデータに変換するにはソフトで行うのかSH7125にその機能があるかの確認はできませんでした。また、23LC1024から25LC1024に一括してデータを転送するにはどのようなプログラムをすればよいか見当がつきません。

  • SH 内蔵RAMを無効化したい

    こんにちは。 SH2を使用しています。タイトルの通り、単純に内蔵RAMを無効化したいのですが、その方法をご教授頂けたらと思います。 ルーチンで: RAMCR.BIT.RAME = 0; と書くと、その時点でプログラムがハングされてしまいます。 何が足りないのでしょうか?ちなみにモードは内部ROM有効、外部にSRAMが接続されています。

  • NORTiプログラムのROM化

    OS    :NORTi4 1.18a 開発環境 :HEW4 コンパイラ:SHC C/C++ Compiler ver.9.01 CPUボード :AP-SH4A-0A(アルファプロジェクト社製) 1.ROMにプログラムを焼く 2.パワーオンリセットでバスの設定、ROMとSDRAMを使用可 3.ROM上の初期化関数へジャンプ 4.初期化領域をゼロクリア、初期化領域データのメモリコピー、  ROM上のプログラムをSDRAMへコピー 5.Cのmain()関数を呼び出し(RAMへジャンプ) http://www007.upp.so-net.ne.jp/SY-Firm-Ware/hew/hew.html http://hitachisoft.jp/Products/SH-C/support/faq_21.html 上記のサイト等を参考に行いましたがうまく動きません。 どこで問題が起きているか確認できるようにモトローラSフォーマット ファイルではなくabsファイルをROMに書き込みデバッグしながら行っています。(ROM上でのデバッグはよくないようなのですが、原因がつかめないので。。。どうしようもなくて。。) リセットベクターからいきなりGOするとmainに飛んでくれないんです。 付属のサンプルプログラムで試した時もいきなりGOするとmainにいってくれません。 ステップ実行で1ステップづつ実行していってmainループの中を一通り動かしてからGOすると動くような状況です。 初期化領域のゼロクリアや、データコピー、プログラムのコピーはちゃんと行われています。 何が悪いのかわからず困っています。 宜しくお願いします。

  • SH-2AマイコンをHEWで動かすことについて

    SH-2AマイコンのLEDを点滅させるプログラムをHEWにて作成しデバッグをするのですが ダウンロードしたサンプルプログラムの場合、LED点滅が実行されプログラムを停止することもできます。 しかし自分で作成したワークスペースでは、デバックするとそこで固まり、LED点滅されずプログラムを停止することも出来ず毎回タスクマネージャーから強制終了しています。プログラムをサンプルプログラムと全く同じものにしても、自分のワークスペースでは固まってしまい困っています。

  • CPUの処理量を減らすコーディング(組み込み)

    処理が重くてプログラムが回らないので、どうにかして実行量を下げ ようとしています。 CPUはSH2(80MHz)、内蔵メモリ(ROM、RAM)と、 外付けのフラッシュROM、RAMがあります。 OSはuItron仕様のRTOSで、プログラムはC(一部アセンブラ) で記述しています。 作成開始前の想定では、昔、68000の12MHzで動かしていた ソフトにシリアル通信が少し増えた程度なので、CPUの能力不足で 困るなどとは想像してなかったのですが、CPUは高速化したものの 外付けメモリの速度が足りないので外部のバスアクセスは実質10M Hz程度しか出ないということが後で分かりました。 内蔵メモリだけで動かせば外部使用時の数倍のパフォーマンスが出る のですが、容量が少なくてソフト全体の20%ほどしか使えません。 I2Cバス(400kbps)と子局機器とのシリアル通信(115 kbps)がメインなので、これらの割り込み処理だけでも内蔵メモ リで駆動できないかと模索中です。 他には、関数の引数(スタック待避・復帰の処理量)を減らすなどを 試していますが、これといった効果が出ていません。 ソースは10万行くらいあり、コーディング流儀の微細な変更でも、 ”積もれば山”の可能性があります。 何かいい案があったら教えてください。

  • ログ取得のプログラム

    はじめまして。 組み込みOS(iTron)で開発を行っています。 で、デバッグ用にログを取得してコマンドで確認しようと考えています。 そこで質問なんですが、 ・ログデータを書き込むメモリは動的確保と静的確保で違いはあるのでしょうか? ・ログ書き込み用のメモリがなくなったら上書き形式で古いのから消していきたいのですが、どのようなプログラムで実現できるのでしょうか? 各ログデータに次ポインタを持たせて、そこで次のログデータのアドレスを示すことでできるかなと思っていますが。