H8マイコンを使い(シリーズの選定はまだです。)、同じ基板上のコンパクトフラッシュに保存されている最新ファームウェアを取得し、自分自身のファームウェアを更新し、その後自動起動するというような事は、できますでしょうか?

コンパクトフラッシュへのアクセスは、FATファイルシステムを使えば何とかなると思うのですが、自分自身のファームウェアを書き換える方法がまったくわかりません。

ITRONなどのOSをつめば、可能でしょうか?

アドバイスをよろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

私はそのようなものを作ったことがありませんが、技術的には可能だと思います。

マイコン用のOSは関係ありません。

まず、H8マイコンの内蔵FlashROM領域を「書き変え対象領域」と「書き変え禁止領域」に分けます。そして、書き変え対象領域には通常のプログラムを配置し、書き変え禁止領域には「ファームを更新する処理を行うプログラム」(ブートローダー)を配置します。さらに、H8のI/Oポートに通常のプログラムを起動するかブートローダを起動するか切り替えるためのスイッチを接続しておきます。

H8のプログラムでは、パワーオン・リセット後のスタートアップルーチンが終わったあたりで先ほどの切替スイッチを読んで、どちらのプログラムを立ち上げるか処理を切り替えます。そして、ブートローダではコンパクトフラッシュからデータを読み出して、先ほどの「書き変え対象領域」を書き換える処理を行います。H8のプログラムでH8の内蔵FlashROMを書き換える方法はH8のハードウェアマニュアルに書いてありますからそちらを参照してください。

> 自分自身のファームウェアを更新し、その後自動起動する

そういう仕様でしたら、タクトスイッチのようなスイッチにして、押しっぱなしでH8を起動したらブートモードで立ち上がるようにしておき、起動したらスイッチから手を離して、FlashROM書き換え後はファーム内でソフトウェアリセットをかければできそうですね。

あとで更新したプログラムのサイズがどんどん大きくなっていくことを考えると、「書き変え禁止領域」を前に持ってきて、「書き変え対象領域」を後に配置した方が良いんじゃないかと思います。
    • good
    • 0
この回答へのお礼

Interest様、早速のご回答ありがとうございます。

なるほど、ブートローダー方式を使って、ファームウェアを書き換えれば良いわけですね。
ちなみにこの辺りの内容は、C言語でも書けるのでしょうか?アセンブラになるのでしょうか?(あまり知らない・・・)

ちなみに、ホスト(上位)からのコマンド(更新指令)より、変更するなどの仕様の場合は、
1、ファームウェア起動
2、更新コマンド受信
3、ROMに更新フラグなどをセット
4、ソフトウェアリセット
5、更新フラグがセットされている為、更新プログラム起動
6、更新後、更新フラグをリセットし、ソフトウェアリセット
7,ファームウェア起動
で、可能でしょうか?

以上、よろしくお願いします。

お礼日時:2009/05/26 10:51

>ブートローダについて、あまりよく知らないのですが調べてみます。


>ルネサスのホームページにもこのような情報は、あるのでしょうか?

ブートローダは単なるプログラムです。ブートローダについてワザワザ記載することでは無いのでルネサスのホームページには何もないかも知れません(調べてません)。

>FATファイルシステムの論理層なのでハード層は自分で実装するのですか?
>デバイスドライバ部は、FATファイルシステムを購入すれば某かのサンプルは手に入りそうです。
>zwiさんは、FATファイルシステムを利用せずに自力で実装されたのでしょうか?

OSを使っていなかったので全部自分で書きました。
FATも別に難しい構造ではないです。

>Windowsアプリのように、コピーなどコマンド一発でで可能なのでしょうか?

そもそもITRONなどのOSにシェルは無いのでコマンド一発の意味が分かりません。LinuxOSでも使えば別ですが。
コンパクトフラッシュの内容を読んで自分自身のROMを書き換えたいんですよね?なら自分でプルグラムを書くことになると思います。

>起動時に、起動するプログラムを選定する必要がありそうですから、先頭アドレスの指定などが、必要そうなのですが、可能なのでしょうか?

そちらの書き込みから通常はROMのファームからの起動で、コンパクトフラッシュの情報はファームの書き換え用だと思ったんですが違うんですか?
なんにしても、H8のフラッシュROMは100回程度しか書き換えできませんのでむやみに書き換えるものではありません。ファームのバグ時の更新用と考えてください。
もし、ファームを常にコンパクトフラッシュ上に置いて置いて、それを選択して起動したいならH8のフラッシュROM上にあるべきなのはブートローダだけです。

>何か勘違いしてますでしょうか?

少なくとも今の知識レベルでファーム更新方式の設計をすべきでは無いです。とりあえずマイコンを手に入れて、ブートローダやファームの更新方法、コンパクトフラッシュの扱いなどを学んでください。
Interestさんへのお礼で書かれているファームの更新の流れも無駄があります。
    • good
    • 0
この回答へのお礼

zwiさんご回答ありがとうございます。

>FATも別に難しい構造ではないです。
自分でも調べてみます。

>そちらの書き込みから通常はROMのファームからの起動で、コンパクトフラッシュの情報はファームの書き換え用だと思ったんですが違うんですか?
説明が悪くて、すみません。その通りです。

もう少し、勉強します。情報ありがとうございました。

お礼日時:2009/05/26 14:27

SHマイコンでフラッシュの読み書きしたことがありますが、特別なことはありませんよ。

手順に従ってIOポートからデータを送受信するだけです。
フラッシュからブートするにはブートローダが必要です。自分で書くかほかの人が書いたものを使います。

>同じ基板上のコンパクトフラッシュに保存されている最新ファームウェアを取得し、自分自身のファームウェアを更新し、その後自動起動するというような事は、できますでしょうか?

全然問題ないです。
と言うかマイコンでは、自分で書けばなんとでも出来ますよ。

>コンパクトフラッシュへのアクセスは、FATファイルシステムを使えば何とかなると思うのですが
FATファイルシステムの論理層なのでハード層は自分で実装するのですか?

>自分自身のファームウェアを書き換える方法がまったくわかりません。
自分自身のファームも単なるファイルです。なのでFATシステムの作法でファイルを書き換えるだけです。
    • good
    • 0
この回答へのお礼

zwiさん、早速のご回答ありがとうございます。

ブートローダについて、あまりよく知らないのですが調べてみます。
ルネサスのホームページにもこのような情報は、あるのでしょうか?

>FATファイルシステムの論理層なのでハード層は自分で実装するのですか?
デバイスドライバ部は、FATファイルシステムを購入すれば某かのサンプルは手に入りそうです。
zwiさんは、FATファイルシステムを利用せずに自力で実装されたのでしょうか?

>自分自身のファームも単なるファイルです。なのでFATシステムの作法でファイルを書き換えるだけです。
Windowsアプリのように、コピーなどコマンド一発でで可能なのでしょうか?
起動時に、起動するプログラムを選定する必要がありそうですから、先頭アドレスの指定などが、必要そうなのですが、可能なのでしょうか?
何か勘違いしてますでしょうか?

以上、お手数をお掛けしますが、ご回答頂けますと幸いです。

お礼日時:2009/05/26 11:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qマイコンを使った回路作成に必要なもの

マイコンを使った回路作成に必要なもの

マイコンを使って何かの回路を作ってみようと思います。車両ロボットだったり、LED表示装置だったり。しかし、自分は全くの素人です。回路作りに何が必要か分かりません。私は自分用の半田ごてさえ持っていません。まず私に必要な物を教えてください。

Aベストアンサー

最低限のマイコンの知識があるということが前提ですが、それはがんばっていただくとして、工作に必要なものは次のとおりです。

半田ごてと半田 これは20wから30w程度の細身のもの。
ニッパー、ドライバー、ラジオペンチ等の工具
できれば小さなドリル 1mmから3mm程度の穴をあけられるもの
ピンセット、ヤスリ、テスターなどもあれば便利です。

とりあえずは、このようなところではじめられると思いますが、後は何をつくるか、単に電子回路だけか、ロボットなどの機構部分まで作るのか、ケースは自作か等で必要工具は変わってきます。

最初は、いろいろなキットがありますので、それでなれたらと思います。
この世界も際限がありませんので、はまれば一生の趣味になるかもしれません。
ご健闘を祈ります。

QiTRONプログラミング

はじめまして。
iTRONでのプログラミングについて教えて下さい。

以下のようなプログラムです。

void FuncA()
{
 unsigned long *dataP;
 ID mbx_id;

 Func_rcv_mbx( mbx_id, &dataP);
}

void Func_rcv_mbx(ID mbx_id, unsigned long data)
{
 rcv_mbx( mbx_id, (T_MSG **)data);
}

データのやりとり以外にもやりたいことがあるのでrcv_mbx()をFunc_rcv_mbx()にしています。
※メールボックスのカウンタとかログとか。
上位はFuncA()のような関数で呼び出しています。

この時にFunc_rcv_mbx()内でもメールボックスのデータを見たい場合はどうすればよいでしょうか?
FuncA()内ではメールボックスのデータを見れるのですが。。。
↓↓のようなコードで見れると思っているのですが、見れませんでした。

void Func_rcv_mbx(ID mbx_id, unsigned long data)
{
 int *localdata;

 rcv_mbx( mbx_id, (T_MSG **)data);

 localdata = (int*)data;
}

はじめまして。
iTRONでのプログラミングについて教えて下さい。

以下のようなプログラムです。

void FuncA()
{
 unsigned long *dataP;
 ID mbx_id;

 Func_rcv_mbx( mbx_id, &dataP);
}

void Func_rcv_mbx(ID mbx_id, unsigned long data)
{
 rcv_mbx( mbx_id, (T_MSG **)data);
}

データのやりとり以外にもやりたいことがあるのでrcv_mbx()をFunc_rcv_mbx()にしています。
※メールボックスのカウンタとかログとか。
上位はFuncA()のような関数で呼び出しています。

この時にF...続きを読む

Aベストアンサー

void FuncA()
{
 unsigned long *dataP;
 ID mbx_id;

 Func_rcv_mbx( mbx_id, &dataP);
}

void Func_rcv_mbx(ID mbx_id, unsigned long data)
{
 int *localdata;
int d;

 rcv_mbx( mbx_id, (T_MSG **)data);
/* この関数を抜けた時メッセージアドレスは FancA()の
ローカル変数 dataP に格納されます。
ですから dataP の内容をコピーしてアクセスすれば
メッセージの内容を見る事が出来ます。 */

localdata = (int *)(*(T_MSG **)data);
d = *localdata;
}

Qマイコン制御

マイコン制御の仕事がしたく、今マイコンを勉強しています。そこでいろいろな疑問が出てきました。
1、求人によく8、16、32ビットマイコンなどとありますが、それはやはり処理量をさしているのでしょうか?私はPICとH8を勉強しているのですがPICは命令長でH8はバス幅でクラス分けをしていますよね!?ちなみに処理量だとしたらPICは8ビット、H8は32ビットと言うことになるのでしょうか?
2、組み込み関係の求人がすごく多いけれど、派遣や請負いばかりが目につくのですが。実際、組み込み関係のお仕事をしている方はどんな感じなのでしょうか。
3、私は求人によくあるカーナビや携帯のソフトなどではなく、もっとハードよりな感じのロボットやFAの制御などがしたいと思っています。地元で中小企業でとなるとPLCが多い気がするのですがマイコンでそのような仕事はやはりむりですかね・・・。有限会社とかだと結構あったりするのですが・・・、だれかOEMとかでもいいので中小で物作り実感してマイコン制御してる方いらっしゃいますか?
4、リアルタイムOSを使うのはロボット制御などではなくカーナビや携帯などのようなアプリケーションよりな感じなのでしょうか?
よろしくお願いします。

マイコン制御の仕事がしたく、今マイコンを勉強しています。そこでいろいろな疑問が出てきました。
1、求人によく8、16、32ビットマイコンなどとありますが、それはやはり処理量をさしているのでしょうか?私はPICとH8を勉強しているのですがPICは命令長でH8はバス幅でクラス分けをしていますよね!?ちなみに処理量だとしたらPICは8ビット、H8は32ビットと言うことになるのでしょうか?
2、組み込み関係の求人がすごく多いけれど、派遣や請負いばかりが目につくのですが。実際、組み込...続きを読む

Aベストアンサー

1.処理量
処理量は、単位時間当たりの命令実行数で決めるのではありませんか?
従って、バス幅やレジスタサイズ等はあまり関係無いと思いますが。
また、マイコンを選択する場合は、好みや慣れているといった場合が多いように見受けられます。
そのマイコンを使い慣れているわけですから、速いからと言った理由だけでは、新しいマイコンに移ることは余りありません。それで無ければ制御できない場合に重い腰をあげるようですね。(わたしも含めて)

2.仕事の請け方
私の場合は下請けがほとんどです。
知り合いの会社では、自社開発してネット販売しています。

3.分野
これに関しては、ほぼ#1さんと同意見です。
全く可能性が無いとは言いません。

4.リアルタイムOS
これを使う理由は、ライブラリが揃っている事や、OSを載せることでハードウェアの違いが吸収できる事等があげられます。
なので、おっしゃるとおりアプリよりになるでしょう。

私はマイコンで色々と仕事をしていますが、簡単な制御は、#1さんのおっしゃる通りシーケンサにはかないません。
マイコンを利用する主な理由は、マイコンでなければ制御できない場合や、サイズが小さくなる等のマイコンでなければ意味の無い分野だけです。
シーケンサやマイコンどちらでもできる仕事は、まずシーケンサになってしまい、私のところへはやってきませんね。

FAの試験装置を主に仕事にしていますが、数年前まではほとんどマイコン(H8)で組んでいましたが、最近ではPCで設計しています。しかもWindows。
昔に比べるとPCが非常に高速になり、リアルタイムOSで無くてもそこそこの性能が得られること、またAD変換やDA変換等の拡張ボードも充実しており、マイコンより高速で処理できること、デバッグ環境がビジュアルで整っている事・・・等、マイコンのメリットも薄れてきています。
マイコンだけで仕事するのは難しいと思います。
今の世の中、ネット接続はほぼ必須になってきていますし、印刷やデータ保存など有りますので、マイコンだけって言うのは・・・。
合わせてPCやシーケンサ等の勉強も行い、総合的に活躍できる知識を身に着けることをお勧めします。

1.処理量
処理量は、単位時間当たりの命令実行数で決めるのではありませんか?
従って、バス幅やレジスタサイズ等はあまり関係無いと思いますが。
また、マイコンを選択する場合は、好みや慣れているといった場合が多いように見受けられます。
そのマイコンを使い慣れているわけですから、速いからと言った理由だけでは、新しいマイコンに移ることは余りありません。それで無ければ制御できない場合に重い腰をあげるようですね。(わたしも含めて)

2.仕事の請け方
私の場合は下請けがほとんどです。
...続きを読む

QUbuntu上でITRONプログラムを作成したい

現在、企業で教育を受けていまして、開発環境の作成も含めて自分で調べていくというスタイルで
UNIX環境上でのC言語プログラミングをしようとしています。

古いWindowsパソコンにVMwarePlayer2.5.5を入れて、仮想マシンにUbuntu8.04LTSを入れています。

昨日の時点で、msgsend(), msgrcv()といった関数を使ってプロセス間でテキストメッセージを
やりとりするサンプルプログラムを作成しまして、今日からはこのサンプルをITRONで動くように
改造しなさい、という課題を与えられました。

ソース的には、msgsend()をsnd_msg()などを使ったものに書き換えていけばいいと思うんですが、

・改造したソースをどうやってUbuntu上で動かすのか?
・そもそもコンパイルできるのか?

ということが分からないので、アドバイスをお願いします。

学校(ポリテクの職業訓練)で、H8-Tiny(3694F)マイコン+HEWを使って、
コンパイルされたITRONライブラリを利用したライントレーサのプログラム作成をしてきたのですが、
UbuntuでITRONを動かす(?)ということについて、基本的に自分の考え方がおかしい気がしているので、
できればそのあたりも指摘もお願いします。

現在、企業で教育を受けていまして、開発環境の作成も含めて自分で調べていくというスタイルで
UNIX環境上でのC言語プログラミングをしようとしています。

古いWindowsパソコンにVMwarePlayer2.5.5を入れて、仮想マシンにUbuntu8.04LTSを入れています。

昨日の時点で、msgsend(), msgrcv()といった関数を使ってプロセス間でテキストメッセージを
やりとりするサンプルプログラムを作成しまして、今日からはこのサンプルをITRONで動くように
改造しなさい、という課題を与えられました。

ソース的には、msgsend(...続きを読む

Aベストアンサー

自分で試してみたことはありませんが、TOPPERS/JSPカーネルを使ってみては? μITRON4.0スタンダードプロファイルを実装したOSカーネルで、Linux上で動作するシミュレーション環境を持っています。
Linux上でプログラムをコンパイルしてそのシミュレーション環境内で動かすことができると思われます。もちろん、特定のプロセッサの機能に依存したものは動かせないでしょうけど。

参考URL:http://www.toppers.jp/jsp-kernel.html

QAndroid スマートフォンでロボットの制御

大学で少しロボットについて勉強しているのですが、
スマートフォン(Android)を使って、ロボットの制御はできますか?
Androidはオープンソースっぽいのでできそうですが・・・

やり方などを教えてくださいお願いします。
できれば、USB接続などで制御できるといいのですが・・・

ロボットはラインとレースカーのようなものを
H8マイコンとC言語を使ってやったことがあります。


機種はSoftBank GALAPAGOS 005SH
Androidバージョンは2.21
最近買ったばかりなので何も入ってません。

難しい質問ですがよろしくお願いします

Aベストアンサー

No1です。
先日は出勤前ということもあり・・・あまり詳しく書く時間が無かったため
専門家ではないですが、頑張って・・・補足します。

Arduinoというのは学生向けのロボット製造用コントロールデバイスよりも
安価なプロトタイピング・システムを製造することを目的に作られた
AVRマイコン、入出力ポートを備えた基板、C言語風のArduino言語と
それの統合開発環境から構成されるシステム。

実際に買ってみても3000円くらいです。
安いです(笑

後USB端子は標準で搭載されています。


初心者向けなので様々な解説本や
分かりやすいパターン別の作り方が載っている書籍が
沢山発売されています。
また、詳しく解説されたサイトや
先の動画も多数あっぷされていますので、非常に入りやすいのです。


そしてAndroidで制御をされたいとのことでしたが
私も知らなかったのですが2日前に非常にタイミングがよく

「Google が Android端末と接続するUSBハードウェアの規格
「Android Open Accessory」 を発表しました」

というニュースがGoogleから発表されました。

http://japanese.engadget.com/2011/05/10/android-open-accessory-arduino/

日本ではここが発売するみたいです。
http://itpro.nikkeibp.co.jp/article/NEWS/20110511/360216/
http://itpro.nikkeibp.co.jp/article/NEWS/20110511/360206/

お持ちのバージョンが2.1とのことですので、
もしOSをバージョンアップ可能なのでしたら
まさしく質問者様向けではないかと思います。


ここで買えますが、今見たら初日に完売しています・・・。
次回入荷を待ちましょう^^;
http://www.rt-shop.sakura.ne.jp/rt-shop/index.php?main_page=product_info&products_id=2731



他にもArduinoとAndroidを繋げる方法も同じくいくつか解説されておられるサイトがあります。

ttp://www.swingingblue.net/mt/archives/003319.html



私はあまり力になれませんが、
さらに詳しく知りたい場合は、ArduinoとAndroidで
もう一度専門的な場所で質問されてみることをお勧めします。

No1です。
先日は出勤前ということもあり・・・あまり詳しく書く時間が無かったため
専門家ではないですが、頑張って・・・補足します。

Arduinoというのは学生向けのロボット製造用コントロールデバイスよりも
安価なプロトタイピング・システムを製造することを目的に作られた
AVRマイコン、入出力ポートを備えた基板、C言語風のArduino言語と
それの統合開発環境から構成されるシステム。

実際に買ってみても3000円くらいです。
安いです(笑

後USB端子は標準で搭載されています。


初心者向けなので様々な...続きを読む

Qマップトファイルでフラッシュしたのに、フラッシュが実行されない

初めて投稿します。

現在、マップトファイルを使うソフトを開発しています。
一定周期で、マップトファイルをフラッシュしてメモリのデータを保存しています。
プログラムが動いているときは、フラッシュされている事を確認したのです。
ところが、停電でPCが落ちたあとなどに、再起動をしたところ、フラッシュができていないのです。
(できていたが戻される?)

OpenFileMapping→FlushViewOfFileでやってます。

UnmapViewOfFileを使わないといけないのでしょうか?

原因、対策方法などわかる方いらっしゃいますか?
教えてください。

ちなみに、WINDOWS2000で、VC++4.0(古い!!)でやってます。

Aベストアンサー

お使いのファイルを置いているファイルシステムがNTFSであるか、あるいはネットワークを越えたさきにあるリモートファイルである場合、FlushViewOfFileは単に「ファイルの更新に必要なデータをファイルシステムに送り出す」だけで、実際のファイル更新はファイルシステム側でゆっくりと行われます。

「CreateFileMappingに与えるファイルへのハンドル」をCreateFileで取得しますが、このときdwFlagsAndAttributesパラメータにFILE_FLAG_WRITE_THROUGHを追加しておけば、ファイルシステム側で書き込みデータがバッファリングされずすぐに書き戻されるようです。

QPICマイコンを販売しているところ(秋葉原)

都内の女子大に通っている4年生です。

卒業研究で、まずPICマイコンを使用して簡単なロボットを作成してみようという事になりました。

秋葉原が近いので秋葉原で購入しようと思っているのですが、
あまり秋葉原に詳しくありません。

どのような店で販売していますか??
また、この店はやめておけ、この店はイイよ、など、
アドバイスがありましたら教えていただきたいです。

Aベストアンサー

千石電商
秋月の近所にあります。
http://www.sengoku.co.jp/

秋月は安いですが品揃えは癖がありますから、ここと両方みておくといいかと。

参考URL:http://www.sengoku.co.jp/

QITRONプログラミングについて

はじめまして。
ITRONでネットワークプログラムの勉強をしています。

質問内容は以下の通りです。
snd_dtq();の関数を使ってタスク間メッセージをしています。
フレーム送信、受信のイベントをそれで通知しています。
ただ、しばらくするとキューエラーで通信できなくなってしまいます。
どうも、キューが枯渇しているようなのですが。。。
snd_dtq();、rcv_dtq();を使う場合、キューの獲得、解放は関数内で
行っていないのでしょうか?実装者が行う必要があるのでしょうか?

Aベストアンサー

> ただ、しばらくするとキューエラーで通信できなくなってしまいます。
> どうも、キューが枯渇しているようなのですが。。。

snd_dtqでキューが枯渇した場合は待ち状態に移行するはずですので、エラーにはなりません。別の理由かと思います。

> snd_dtq();、rcv_dtq();を使う場合、キューの獲得、解放は関数内で
> 行っていないのでしょうか?実装者が行う必要があるのでしょうか?

キューの獲得・解放というのが領域の割付け・解放の意味であれば、割付けはcre_dtq/acre_dtq/CRE_DTQのいずれかで行います。その際、自分で割り付けた領域を指定することもできますし、NULLを指定してカーネルに割付けを任せることもできます。カーネルが割付けた領域の解放はdel_dtqで行います。

Qマイコンのビット数とクロック数

マイコンの勉強をしています.まだまだ初心者で,とてもくだらない質問かもしれないのですが,マイコンのビット数について尋ねさせて下さい.

マイコンには8ビットマイコンとか16ビットマイコンとか32ビットマイコンとかありますよね.少し調べてみると,このnビットマイコンのnを,何と定めるかの厳格な定義はないようでレジスタの幅や内部データバスの幅などとなっているようですね(?)

これはつまり,1回で処理出来る,通信できるデータの大きさという理解でよろしいのでしょうか?16ビットマイコンは8ビットマイコンより8ビット大きいデータを処理出来るわけですから,2の8乗倍で256倍の速さってことですか?

と,いうことは,8ビットマイコン256MHzのマイコンは,16ビット1MHzのマイコンと同等の処理ができるということなのでしょうか?

回答お待ちしております.

Aベストアンサー

通常言う 8ビット 16ビット 32ビット とは、CPU内部のALU(加算ようレジスタ)
のビット数で、マシン語1命令で扱えるビット数になります。
何ビットでもCPUは、作れますが、アルファベットは、8ビットで構成されていますので、
8ビットの倍数での処理が便利なので、8,16,32ビットのCPUが作られます。
処理するデーターが、文字(アルファベットなら8ビット、日本語なら16ビット)なのか、
数字なのかによって処理のフローが異なりますので、何倍になるとは言えませんが、
文字を扱う場合で16ビットが、8ビットの2倍の処理が出来ることは、ありません。
(アルファベットの場合は、16ビット,32ビットでも8ビットでの扱いになります)
(日本語の場合は、8ビット,32ビットでも16ビットでの扱いになります)
数字を扱う場合でも8ビットは、0~256まで、16ビットは、0~65536まで、
(符号付計算の場合は、8ビット=-128~+127,16ビット=-32768~+32767)
の計算しか出来ないので複数回の計算によって処理しています。
8ビットで2回処理すれば、16ビットで1回処理したのと同じですから
16ビットが、8ビットの2倍強の処理が出来る程度になると思います。
グラフィックなどについては、不明です(ごめんなさい)
パソコンでの処理時間の多くは、入出力装置の処理速度によって左右されますので、
グラフィックや、写真などの処理が無ければビット数が2倍になっても処理速度が2倍には、
ならないと思ってください。

通常言う 8ビット 16ビット 32ビット とは、CPU内部のALU(加算ようレジスタ)
のビット数で、マシン語1命令で扱えるビット数になります。
何ビットでもCPUは、作れますが、アルファベットは、8ビットで構成されていますので、
8ビットの倍数での処理が便利なので、8,16,32ビットのCPUが作られます。
処理するデーターが、文字(アルファベットなら8ビット、日本語なら16ビット)なのか、
数字なのかによって処理のフローが異なりますので、何倍になるとは言えませんが、
文字...続きを読む

QH8マイコン開発

H8/3069Fマイコンボードを買ってきて勉強をしようと思うのですが、
どこから手を付けていいのかわからないです・・・・。

C言語/アセンブラでプログラムを書いて何か実行させてみたいのですが、何かいい参考になるのはないでしょうか?

Aベストアンサー

何もないところからCPUをブートアップするのは結構慣れが必要なんですよね。
入門書や参考書もほとんどないですから。
ましてや、自分が使うCPUに関する情報は少ないですし。

こういうときはInterfaceのバックナンバーを入手するのが一番よさそうです。
ざっと目次を見たところ、2006年5月号がそれっぽい感じですね。初心者向け入門編っぽいし。

参考URL:http://www.cqpub.co.jp/interface/default.asp


人気Q&Aランキング

おすすめ情報