You are not logged in. This forum allows only logged in users to post. If you want to post in the forum, please log in.
下載
軟體開發
帳戶
下載
軟體開發
登入
我忘記帳戶名和密碼了
新增帳戶
語言
手冊
語言
手冊
×
登入
登入名稱
密碼
×
我忘記帳戶名和密碼了
繁體中文翻譯狀態
類別:
軟體
人
PersonalForge
Magazine
Wiki
搜尋
OSDN
>
軟體搜索
>
System
>
Emulators
>
H8/300H エミュレータ
>
討論區
>
雑談
>
OSは乗るか
H8/300H エミュレータ
描述
專案概要
開發人員儀表板
專案的網頁
Developers
Image Gallery
List of RSS Feeds
活動
使用統計
歷史
檔案下載
發布列表
Stats
原始碼
儲存庫列表
CVS
查看儲存庫
待辦事項
待辦事項列表
里程碑列表
類型列表
元件列表
List of frequently used tickets/RSS
新增待辦事項
文檔
溝通
討論區列表
雑談 (15)
新聞
討論區:
雑談
(Thread #3853)
Return to Thread list
RSS
OSは乗るか (2003-11-26 21:59 by
srw
#6776)
Create ticket
マイコン向けのOSを使ったことが無いので言いきれませんが、
OSのようなプログラムを動作させるのは、
今現在のh8emuの仕様では無理かもしれません。
といいますのも、ディスアセンブル時に命令の解析(フェッチ?)を
全て終らせてしまう構造になっているからです。
要するにスタティックな方法になっています。
内臓RAMや外付RAMに動的にプログラムをロードして
実行するということができないので、このへんを解決すると
したらどうすればいいやら、今日歩きながら考えていたところです。
すぐ思いつくのは、インタープリタ型のエンジンも乗せてしまうか、、。
RE: OSは乗るか (2003-11-28 02:36 by
ysato
#6793)
Create ticket
はじめまして。OSいじってます。
H8MLに書こうと思ったら、こっちに引っ越したようなのでこっちに書きます。
OSといっても、小規模なものはアプリケーションプログラムにリンクされて
一つのプログラムになるので、こういったものは現状の構造でも問題なく実行できます。
いわゆるRTOSは大体このタイプです。
MLで名前が出ていたeCosも基本的にはこれです。
で、linuxのほうは心配されている通り動的にプログラムを読み込んで実行できないと
何も出来ません。
今の構造を使って対応するとすれば、OS側から必要に応じて命令解析を要求
出来れば、なんとかなりそうな気がします。
参考までに。
回覆:
#6776
RE: OSは乗るか (2003-11-28 02:49 by
srw
#6794)
Create ticket
どうもはじめまして。
>OSといっても、小規模なものはアプリケーションプログラムにリンクされて
>一つのプログラムになるので、こういったものは現状の>構造でも問題なく実行できます。
>いわゆるRTOSは大体このタイプです。
>MLで名前が出ていたeCosも基本的にはこれです。
なるほど、一応実行できるOSもあるのですね。
しかしlinuxはやはり無理ですか。
おそらく、インタープリタ型を乗せると
速度に差が出てしまうでしょうね。
ysatoさんの仰るとおり、未解析領域か、
内容が更新された領域にプログラムカウンタ
が入ったら実行を一旦停止して解析させる方法の
方がいいかもしれませんね。
とても参考になりました。
回覆:
#6793
RE: OSは乗るか (2003-11-28 07:21 by
mac
#6799)
Create ticket
Windowsのdllや、Linuxのlib*.soように、
動的にLinkされるものをサポートすると、
Linkが変わるごとに、再編成しなおすか、
本当に全部、機械語を読みながら、
インタプリタを実行するかになり、
せっかく、「本物のH8の速度」もしくは、
それ以上で実行できるシミュレータという、
大変すばらしい特長を多分犠牲にすることに、
多分なってしまいますね。
H8/300Hが利用されている現在の組込み用ソフトの、
ほとんどは、Staticにリンクされた、
モノリシックなオブジェクトなので、
「実時間動作」の特長を捨ててまで、
Dynamic Linkをサポートするのは、
「ショッキングな宣伝文句」では、
良いかもしれませんが、実用性は、
天秤にかけるまでもなく「没」でしょう (^^)
それよりは、DMAをどう料理するか?
のほうが、結構実用面では、
懸案のひとつじゃないでしょうか?
スイッチや、ADCなら御手軽ですが、
DMAの大量データをそれも実時間で、
入れるとなれば、専用ハードが、
必要になりそうです。
それでは、汎用機でも動くこれまた、
大きな「売り」を棄却することになるので、
Disk上に用意した、Data Fileを読み込むことで、
シミュレートするのが良いかなあと、
勝手に思っています。
回覆:
#6794
RE: OSは乗るか (2003-11-28 20:59 by
srw
#6813)
Create ticket
>H8/300Hが利用されている現在の組込み用ソフトの、
>ほとんどは、Staticにリンクされた、
>モノリシックなオブジェクトなので、
なるほど。
とりあえずダイナミックリンクされた組み込みソフトの
ことは後にするとしましょうか。
もっとも、そこまで頻繁にやるような方は
ICEとかお持ちでしょうし。
ところでDMAというと、DirectMemoryAccess
かと思うんですが、あ、そうか、これは
CPUとは別に動作するんでしたっけ(それも激速?)。
前途多難かも、、。
PS>
ソースUPしました。
実時間動作に関して、今後追加していくと重くなって
実時間以下で動作するようなことになるかと思いますが、
一応、ネイティブコードコンパイルも少し試してありまして、
これをONにすると2倍以上の速度ではしらせれます(対応してる命令だけですが)。
cpu/inst/compile_ope/ 下です。
ONにするにはたしかmain_subで
g.flag.compile っぽい変数に真を入れてビルドすればOKです。
回覆:
#6799
DMA (2003-11-30 00:28 by
mac
#6838)
Create ticket
そのとおり、Direct Memory Accessです。
一般的には、デバイスが、
CPUに「ちょっとバスをを貸してくださいな。」
CPUはアトミックナ命令が終了すると、
「はい、空けましたよ、用事がすんだら教えてね。」と、
バスを開放するんで、DMA Deviceは、
自分でアドレス、データ―バス、R/W, ASを制御してメモリーをRead/Writeすして、
CPUに「はい終わりました」といって終了します。
ところがH8/300Hは内部にDMACを内蔵しているので、
InputかOutputなのか、
Inputまたは、Outputするアドレス、メモリーの始点、
転送個数をセットし、DMEQをだすと、
一見CPUが動いているかのように、
Bus Acccessが行われ、CPUが目覚めたときには、
メモリーが書き換えられてるとか、メモリ―データが、
外部に持ち出されていることになります。
外部8bit Data Busサイクルスチルモードで、9φ。
外部16bit Data なら5φ。
バーストモードで16bit Data Busだと、
4φで転送するため、非常に高速です。
25MHz clockだと12.5 M byte/secの転送速度ですから...
プログラムは思いのほか簡単ですが、
ハード屋は、「胃薬」が、必要になったり (^^;
でも、DMACが組み込まれる前は、もっともっと、
大変で、Dual port RAMや、FIFOで交わして、
何とかDMAをよけて通っていましたね。
あ、本当に雑談モードになってしまいましたが、
シミュレーターで、この部分をハードウエアで…
となると、USB1.1では、間に合わないので、
USB2.0か、i-linkで、専用ハードを作る羽目になり、
現実的ではないように思います。
まあ、オプテマイズさんのFX2 USB 2.0
http://optimize.ath.cx/FX2_USB/index.html
を標準I/Oとして採用し、CPUはvirtual、
でも、I/OはRealというのも、
かなりいけてて、ハードウエア完成前に、
ソフトウエア―完成済み。
というのも、かなり理想的ですね。
回覆:
#6813
RE: DMA (2003-11-30 21:01 by
srw
#6852)
Create ticket
どうも、とても勉強になります。
実は秋月の3048Fのキットを2度買ったことが
あるだけで、マイコン等に関しては素人なので
質問しかできません(汗)。
DMAに関して、「H8マイコン完全マニュアル」で
少し調べてみました。時間のあるときに実機で
試してみようと思います。
OSに関しては、これまた素人考えなので間違っている
かもしれませんが、ITUがつけば最小限のものは
乗るのではないかと。
それすらもかなり先になりそうですが、、。
プロジェクトに関して、近々求人を出してみようと思います。
プロジェクトリーダーも私以外に必要です。
とりあえず必要な作業は、ソースの修正(3048以外に対応など)
になると思います。
回覆:
#6838