ザビタン開発日記
2009
| 01
10月 23 (火曜日) 2007 | ||
17:32
|
FDアクセス:親タスクで複数のFIFO
|
|
おぉ!
なんかいけたっぽいゾ!!!! だったらアレをこうしてここをこうやって・・・・ |
||
13:02
|
FDアクセス:親タスクで複数のFIFO
|
|
ちょっとこの関数内でのFIFOが行き詰ってる。
一種ブランチして、親タスクにタイマーと別のFIFOを用意して実験してみることにしよう・・・ |
||
12:15
|
FDアクセス:番外
|
|
うっちゃんへ。
スマンスマン。ちょっとソースをいい加減なとこから持ってきて貼り付けちゃった。 タイマーの設定の部分はいい加減というかいろいろな実験の名残り。 今はこんな感じです。
これで、この部分をコールしているFDタスクが固まっちゃうんですよねぇ。 そんなわけで、今はFIFOそのものを復習&検証中・・・(´・ω・`) ちなみに、タイマーそのものはちゃんと動いているよう。 逆に言えば、タイマーを設置(たとえば3秒とか)すると、 確実に3秒後に固まるです。(つまり、設置したタイマーはちゃんと 設定通り、このFIFOにputをしているようなのです。 |
||
10月 22 (月曜日) 2007 | ||
22:52
|
FDアクセス:FIFOがうまくいかん
|
|
FDCにコマンドを送る場合、「待ち」がある。
で、万が一、その「待ち」があまりにも長いなんて場合はエラー としてブレイクしようと考えた。そんなわけでこんなコードを書いたんだけど、
どうもFIFOがうまくいってないらしい・・・ 散々悩まされた(タイマーの不具合かと思い)んだけど、もっと 根本で、このFIFOにデータをput(fifo32_putで)しただけで 固まってしまうことがわかった。(やっとこさ・・・) うううううううん! なんだろう? |
||
19:54
|
FDアクセス:時間待ち
|
|
うーーーん・・・困った・・・
コマンドの発行などで「待ち」が必要なんだよなぁ。 (待ちとは言うけど、逆に言えばあるコマンドが何秒以上返事がない場合はエラーにするとかも必要になる) 今はりぼてに搭載されているタイマーって、FIFOにタイムアウトを 発行する仕組みだから、コード内(たとえばこんなの)
で、もし永遠にこれが帰ってこないようならブレイクしないと いけないよね? こういう場合、どうしたらいいんだろう。 まさかforでカウントするなんて乱暴なことできないしなぁ・・・ システムの現在時刻を取得して・・・・ うーーーん。これしかないのかなぁ。なんかもっとスマートで いい方法があるような・・・ ・・・って! まったまった!!! 勘違いかも??? FIFOって別にタスク専用じゃねーじゃん!! ・・・ってことは・・・・ |
||
19:40
|
FDアクセス:エラー処理
|
|
ベタ〜っとFDD読み込みのコードを書いて実験。
ほぼ、とにもかくにも、OKという感じになってきたので これを関数にまとめ・分類し始めた。 ・・・うーん。でもこれ、複雑だなぁ・・・ もしミスがあった場合、これじゃどこに問題があるのかわからなくなっちゃいそう。 そこで、エラーコードを返すようにすることにした。 で、 そのエラーコードだけど、最初にちゃんと決めておかないとまずそうだね・・・ |
||
12:14
|
FDアクセス:論理to物理
|
|
えーーっと・・・
論理セクターを物理セクターに変換するのってどうするんだっけ・・・ たしか、ケツから割り算してあまりで出していくはず・・・ あーー! 思い出したぁ!!!! たしかこれ、前にKタンに教えてもらったんだ! 答えはn進数変換だ!(割り算二回でOKだーーー!)(^^ ・・・あ”・・・ C言語の場合は2回ってわけにはいかないのか・・・ orz |
||
10:43
|
FDアクセス:BPE解析
|
|
0x7C00に読み込んだのは正解のようですぞ!?
順調にBPEの取得&解析完成〜。 いよいよ、これら情報を元にアクセス。ファイル読み取りまでいけるか!??? リビジョン27
|
||
00:13
|
FDアクセス:DMA候補場所
|
|
ここでメモリマップを試作中・・・
でね? セクターを読む場所を、IPLが読み込まれる位置(0x00007C00)にしてみたらどうかってぇ〜思ったのよ。 ここなら確実に「もう使わない。もう使ってない」といえるうえに、 ちょうど512だしね。 ここに読むようにDMAに指定して、読み終わったらタスク内に設けた 変数に転送させると! こんなんで どっすか? げっげぇ〜ろぉ〜♪ |
||
10月 21 (日曜日) 2007 | ||
09:19
|
FDアクセス:格納メモリ
|
|
FDDのセクタがとりあえず読めるようになって、FDDのコントロール
の方法のパターンはつかめたと思う。これを使って よりちゃんとしたFDDコントロールをしていかないといけないね。 でもその前に。 FDから読み込んだデータはDMAの指定によってメモリに格納されるんだけど、 それ、どこにしたら適当かなぁ??? メモリマップをもう一回整理して、どこかに隙間を作って、他のタスクやらが使えないように設定しておかないとなぁ。 それともうひとつ。 FDコントロールは独立したタスクだけど、あくまでもFDコントロールのため。 最終的には他のタスク(たとえばコマンドから呼ばれるとか)から 呼べて、かつ、答えを返してもらえるようにしなきゃいけない。 どういうふうに設計したらいいかなぁ。 まだまだタスクの理解が甘いオイラには考えどころですなぁ・・・ |
||
1 2 (3) 4 5 6 7 »  |
PopnupBlog V3 Denali created by Bluemoon inc. |