06/08/18 15:44:50
男性が使うとゴルァで、女性が使うとゴラァなのだそうだ。
最近知った。
903:デフォルトの名無しさん
06/08/18 16:42:15
「漏れ」って女性語?
904:デフォルトの名無しさん
06/08/19 14:42:15
失礼します。RTOSの勉強中をしています。
お手上げ状態になったので、手がかりだけでも掴めればと・・。
NORTi/SH2を使ってDMA転送を行い、DMA転送完了割り込みをさせたいです。
DMA転送は正常に行われています。
割り込みサービスルーチンを作成して、その設定もして、
DMA転送完了割り込み有りにして動かすと、
割り込みサービスルーチンを呼び出しにいっている
(もしくは、呼び出そうとしている)ようですが、
処理が割り込みが入った時に動いていたタスクに
待てど暮らせど戻ってきてくれません。
割り込みサービスルーチンのcreateは正常にされています。
Cのソースレベルでデバッグできるものがあれば良いのですが、
それがないのでどの段階で止まってしまっているかが
サッパリわかりません。原因として考えられるのは何があるでしょうか?
よろしくお願いいたします。
905:デフォルトの名無しさん
06/08/19 15:45:22
>>904
>割り込みサービスルーチンを呼び出しにいっている
>(もしくは、呼び出そうとしている)ようですが、
とりあえずどっちなのか調べろ
906:904
06/08/19 16:28:37
>>905
レスありがとうございます。
>>割り込みサービスルーチンを呼び出しにいっている
>>(もしくは、呼び出そうとしている)ようですが、
>とりあえずどっちなのか調べろ
調べました。
割り込みサービスルーチンは呼び出せていました。
割り込みルーチンの処理をreturn文だけにしてみましたが、
同様に割り込み前のタスクに戻ってくれませんでした。
割り込みルーチン内で設定しなおさなければいけないものが
あるのでしょうか。んん~。
907:デフォルトの名無しさん
06/08/19 16:44:14
Cのソースはさらせないの?
908:904
06/08/19 17:54:02
>>907
ソースを一部upしてみました。
(ちなみにInterface誌8月号のSH2基板で学ぶ~のNORTiの
サンプルに少し手を加えたものです。)
割り込みが起きるタスクはDmaTask、
割り込みサービスルーチンはint_dei0です。
URLリンク(www.vipper.org)
FileNo:316283
Pass:904
909:デフォルトの名無しさん
06/08/19 18:26:37
int_dei0でdmaの割り込みを禁止してないから、dmaの割り込みがかかりっぱなしとか?
910:904
06/08/19 18:42:29
>>909
割り込みがかかりっぱなしかぁ、、、
すぐに修正できるような腕じゃないんで、
そのあたりをもう少し勉強してやってみます。
Cも組み込み系もRTOSも初心者なので、四苦八苦です~@@
911:904
06/08/19 18:53:25
>>909
あ、お礼言うの忘れてました。ありがとうございました。
912:デフォルトの名無しさん
06/08/19 19:23:31
int_dei0でDMAC_CHCR0のIE=1(割り込みあり)をクリアするだけだと思うけど。
913:904
06/08/19 21:29:56
>>912
ぅぉおお、動きました~><
ここで2日間くらい悩んでました。
出来るだけ早くお世話にならなくて良いように精進します!
本当にありがとうございました!
914:904
06/08/19 21:33:59
ずっとJAVAやってきた自分。レジスタの世界は奥が深いやぁ。
915:デフォルトの名無しさん
06/08/19 23:19:43
>>914
S/W的なフラグのクリアと何が違うというのか(ry
916:デフォルトの名無しさん
06/08/20 00:32:38
ですね。904です。
最初に割り込み禁止にすればいいと指摘いただいた時は
割り込みマスクか?とかもう一度SH2とNORTiのdoc読んでました。
2回目の指摘で目から鱗。まだまだ勉強が足りません。
JavaはAPIの中で泳いでるイメージで、
特にWeb系しかやってなかったってこともあるかもしれないけど、
01やら信号やらクロックなんてものは一切意識したことなかったんですよ。
今更ながらですが感銘を受けながら、再勉強してます。
では、このへんでROMります。
917:デフォルトの名無しさん
06/08/20 05:34:29
日立のチップはたいていその思想で作られてるよ。DMAだけじゃなく、タイマもuartも。
「割り込んだら割り込み要因をまずクリヤする」。これから日立の石ずっと触るのなら
割り込み処理の頭にはとりあえず割り込み要因クリヤ。これもバイトの0を書き込むのじゃ
なく、レジスタを読んでそのbitだけクリヤして書き込むように。sfr_clr(PORTx,0x80);とかね。
918:デフォルトの名無しさん
06/08/21 21:30:40
処で喪前様方、TSEEはどうですよ。
919:デフォルトの名無しさん
06/08/28 14:56:59
質問です。
インラインアセンブラを使用して汎用レジスタの値を判定したいのですが、
どうしたらいいのでしょうか?
環境はHEW、CPUはM8S2378です。お願いします。
920:デフォルトの名無しさん
06/08/28 16:02:10
>>919
アセンブラで組んだライブラリを呼ぶんじゃダメなの?
921:919
06/08/28 16:38:44
920>>
Cで使えるならOKです。
922:デフォルトの名無しさん
06/08/28 16:52:52
>>919
このスレに偶然その環境に詳しい香具師がいれば別だけど、恐らく自分で調べる以外にないと思うよ。
インラインアセンブラの記述方法は実装系に依存するし。
#処で、汎用レジスタの値は判定したいときに保障されているのだろうか。例えばx86で言うeaxは殆ど保障されないわけだが。
923:デフォルトの名無しさん
06/08/28 17:20:36
汎用レジスタの値を判定とは?何をやりたいの?
924:919
06/08/28 18:16:13
922>>
>#処で、汎用レジスタの値は判定したいときに保障されているのだろうか。例えばx86で言うeaxは殆ど保障されないわけだが。
○ネサスさんのマニュアルに書いてある通りに作成しているのですが、もしそうだとしたら最悪です。
>このスレに偶然その環境に詳しい香具師がいれば別だけど、恐らく自分で調べる以外にないと思うよ。
何日もかけて調べているのですが、限界を感じてきています。
925:デフォルトの名無しさん
06/08/28 18:19:34
汎用レジスタの値を読み出すなら簡単やん・・
926:919
06/08/28 23:06:03
925>>
読み出した値をプログラム上で判定したいのですが、簡単にできるのでしょうか?
927:デフォルトの名無しさん
06/08/28 23:25:45
判定って何だ?
定数と比較するってこと?
928:919
06/08/28 23:39:42
927>>そうです。具体的に言うと、
汎用レジスタの下位1バイトが0以外のときエラー処理を返したいのです。
環境上、アセンブラ内でしかいじれないので、C上に引っ張り出す方法を知りたいのです
929:デフォルトの名無しさん
06/08/29 00:05:01
>>928
だから>920でいいべさ。
まさか、アセンブラも用意されていないわけじゃあるまい。
#もしそうならそうで、Cで単純な関数を作ってコンパイルし、バイナリパッチ当てるとかw
930:デフォルトの名無しさん
06/08/29 00:20:11
Cの関数の戻り値をアセンブラで書くとどうなるのか分らない無能なんだからほっておけ!
931:デフォルトの名無しさん
06/08/29 01:00:13
>>928
>環境上、アセンブラ内でしかいじれないので、
なにがアセンブラ内でしかいじれない?
アセンブラ内で判定して、その結果をCでみたい?
932:デフォルトの名無しさん
06/08/29 02:06:37
汎用IOレジスタと汎用レジスタの区別がついてない悪寒
933:デフォルトの名無しさん
06/08/29 06:52:08
>>919
M8S2378 ってのを知らない。 旧三菱系なのかな?
H8S2378なら旧日立の100pinCPUなんだけどさ
934:デフォルトの名無しさん
06/08/29 07:49:32
>>933
スレリンク(tech板:255番)
935:デフォルトの名無しさん
06/08/29 08:00:06
【初心者歓迎】C/C++室 Ver.30【環境依存OK】
スレリンク(tech板)
251 名前:デフォルトの名無しさん 投稿日:2006/08/28(月) 23:26:30
質問です。
汎用レジスタ(ER0)の値をプログラムで判定したいのですが、
アセンブラ内でしかER0をいじれません。
C上で動かすにはどうしたらいいのでしょうか?
環境はHEW、CPUはH8Sです。お願いします。
これか.....このレベルだと説明する方も疲れるというか説明はムリだろな。
936:デフォルトの名無しさん
06/08/29 08:08:36
まじれすすると、 ER0を返すアセンブラ関数は
_getER0:
RTS
こいつは
int getER0(void){} と書いたのと等価(HEWは return 文が無くてもエラーにはしない筈)
もっとも、もっと手前で大きな勘違いがあるに違いない
・・・・・肝心の品番さえ間違うようだと・・・・こんな奴とだけはって奴だな
937:デフォルトの名無しさん
06/08/30 23:39:17
#pragma inline_asm を使えばいい。
コンパイルオプション code=asmcodeを忘れないこと。
コンパイラのユーザーズマニュアル書いてますよ。
マジレスかこわるかった?
938:デフォルトの名無しさん
06/08/31 04:32:34
でも、それ使うと、debug情報とか何かの機能に制限が加わるんだったような・・・
939:デフォルトの名無しさん
06/08/31 05:49:11
なにか問題でも?
940:デフォルトの名無しさん
06/09/01 03:02:33
sh7709を、内部clk132.7MHzで使っています。何ステート毎にポート反転というコードを
走らせてみると、そのステート数より3割ほど多く時間がかかります。OSなし、割り込みなし
の状態で、です。コードはSDRAMに置いて実行させてます。どんなことが考えられますか?
941:デフォルトの名無しさん
06/09/01 07:50:48
ステート数はソフトエミュレータで求めたんでしょ?
それと違うって事は、ポートの出力にディレイがかかってるのでは?
942:デフォルトの名無しさん
06/09/01 08:26:53
>>940
ステート数ってキャッシュのヒット率やパイプラインの状態にも
影響を受けるんじゃない。
だから計算で出した値は、大まかな目安にしか
ならないんじゃないかな。
943:デフォルトの名無しさん
06/09/01 10:01:51
SDRAM?
944:デフォルトの名無しさん
06/09/01 22:06:00
SDRAMだと、どういう設定で動かしているかも問題になるかな?
命令をフェッチときに無駄が出るカモね。
あと、キャッシュをどういう設定で使うかも絡んでくるけど。
キャッシュのなかにコードを放り込んで実行してみれば、計算通りに
なるんじゃない?
945:デフォルトの名無しさん
06/09/01 23:56:18
>>940
3クロックで動いてるはずのところへ一回WAITが入って4クロックで動いてるとかいうおちではないか
946:940
06/09/02 07:36:48
ハード屋さんに聞くと、SDRAMはノーウェイトだそうです。あとレイテンシというのもあるらしい。
遅い件はその後の情報で、コードはキャッシュ可の空間にあったが、スタックがキャッシュ不可
空間にあったことが判ったそうです。それを正したら期待通りになりました。お騒がせすいません。
この際だがら、レイテンシというものについて教えてくださいませ。
947:940
06/09/02 07:37:36
連投すいません。SRAMとDRAMは知ってるのですが、SDRAMってどんなのでしょうか。
948:デフォルトの名無しさん
06/09/02 10:04:43
レイテンシというのはその演算が実際に完了するまでのサイクル数の事を指す場合が多い。
たとえばメモリからデータをレジスタに読む命令は、
メモリが待たせるだけのレイテンシがあるし
掛算命令は結果が使えるまでレイテンシがある
これを単なる遅延にしないためには、この期間に他の命令を埋めるように命令の順番を工夫してやる
たとえば、命令は2ワード単位に読まれるので、命令とデータの読み込みは
巧く詰め込んでやらななければいけない
もっとも、それはコンパイラに任せた方が良い結果が得られる事が多い
SDRAMはDRAMの一種で、詳しい事はgoogleさんに聞きなさい
949:940
06/09/02 17:18:52
SDRAMがシンクロナイズドスイミングなDRAMのようだということはわかりました。
そのクロックも100Mとか133Mとか、SHの内部CLKと近い値が設定できるらしいので、
命令フェッチのタイミングが同期しやすそう、と想像できます。ありがとうございます。
950:デフォルトの名無しさん
06/09/02 21:40:41
>>947
連続データを参照する頻度が大きいとき有効
951:940
06/09/03 02:53:41
>レイテンシ コンパイラの吐くコード見ると、JSR命令の次が引数をpushする命令になってたり
メモリを参照するMOV命令の次はレジスタ間演算になってたりしますね。
こういうのが>>948さんの説明みたいな例ですね。
952:デフォルトの名無しさん
06/09/11 10:46:43
ヘタレプログラマなんですが、質問させてください。
SH7145Fで、SCI0,1、3を使いたいんですが、0と1は普通に使えるんですが、
3だけ初期化ルーチン抜けたあとに、エラー割り込みがかかりっぱなしに
なってしまって使えません。フレーミングエラーが起きているようです。
エラーフラグをクリアしても、すぐに同じエラーが起きます。
信号レベルも他のポートと同じで、常時Hレベルです。
まだ何も接続していない状態で発生する現象です。
どなたか解決策を知ってる方おられましたら教えてください。
953:デフォルトの名無しさん
06/09/11 13:15:48
PECRL?
954:デフォルトの名無しさん
06/09/12 04:52:38
>>952 初期化したあと、TX/RX機能をイネーブルにするまでに、使うビットレートでの1bit分
の時間をおく、っていうルールは守っていますか?(ex:4800bpsなら208μぐらい)
(守らない時、3のような動作をしたという体験は私はしていませんが。)
955:デフォルトの名無しさん
06/09/12 09:08:40
>>953さん
やっちまった感じです。もろにそこでしたorz
PFC.PACRL2.BIT.PA0MD = 1;// PA0をRXD0に設定
PFC.PACRL2.BIT.PA3MD = 1;// PA3をRXD1に設定
PFC.PECRL2.BIT.PE4MD = 1;// PA4をRXD3に設定
↑こんな感じでSCI0,1,3を初期化してたんですが、
3だけは1じゃなくて2なんですね。うっかりマニュアル読み落としてました・・・
PFC.PECRL2.BIT.PE4MD = 2;// PA4をRXD3に設定
に訂正。おかげさまで問題なく動きました。
>>954さん
私もそこだと思い込んでしまって、ウェイト時間を延ばしたり、最適化で
ウェイトがなくなっているのか?とか考えて(volatile)にしてみたり、
最適化無し指定にしたり、色々やってみましたが>>953さんの指摘で直りました。
お二方とも、アドバイス有難う御座いました。
956:デフォルトの名無しさん
06/09/12 12:15:56
コメントが間違ってるような? PA4->PE4?
957:955
06/09/12 14:02:52
そ、、そこはご愛嬌で・・・・
コピペコピペしてるから単純なミスの罠におちいり易いんでしょうなorz
958:デフォルトの名無しさん
06/09/12 15:41:05
スレ違いかもしらんが、低レベル制御屋の俺が困ってるんで教えてください。
機能の一部でAIボードで4-20mAでアナログ値を入力するんだが、仕様書に
アナログ値検出に4mAのデットバンド処理を含めて下さい。
デットバンド範囲は2%F.S固定で構いません。
アナログ値表示に使用するデータは全てデットバンド処理後のデータを使用してください。
デッドバンドとかF.Sとかって何れすか
959:デフォルトの名無しさん
06/09/12 16:48:34
デッドバンド不感帯
F.S フルスケール
デッドバンド処理って具体的になにをやるのかは?
960:デフォルトの名無しさん
06/09/13 08:20:34
4-20で4mAの不感帯って大きいな 2%なんだろうな
つまり一旦採用した値±2%の範囲の差では更新しないという処理なんだろう
961:デフォルトの名無しさん
06/09/13 11:44:07
デッドバンド=遊び
でよい?
962:デフォルトの名無しさん
06/09/13 14:16:56
他から誘導されてきました……。
----
ごめんなさい、すいません、一つ教えてください。
現在C言語のソースが手元にあるのですが、コンパイルの方法がわかりません。
10年以上前の機械のファームにバグがあって、ちょっとした事なのでソースを
直すのは簡単なんですが、ターゲットがV50なんです……。
昔はどうやらBolandCとTurboAssemblerでやってたらしいんですが、環境とかも
今は無く、途方に暮れている状態です。
今までのほほんとWindowsプログラムしかしてこなかったので、クロスコンパイル
環境なんて触った事もないですし、開発した人はしんじゃいましたし、どうすれば
いいのかという感じです。
お分かりになられる方が居ましたら教えてください……。
963:デフォルトの名無しさん
06/09/13 14:29:55
URLリンク(www.borland.com)
964:デフォルトの名無しさん
06/09/13 14:45:29
ROM化するにはロケータが必要ですね。
Link & LocateやParadigm LOCATEなんかが有名だったけど今でもあるのかなぁ
965:デフォルトの名無しさん
06/09/13 15:35:03
ちょっとしたことならバイナリーエディターでゴニョゴニョしちゃうとか
966:デフォルトの名無しさん
06/09/13 16:29:22
>>963
URLリンク(www.borland.com)が503で開けません……。
うちの環境が悪いんでしょうかねぇ……。
>>964
ちなみにロケータって何をするものなのでしょうか
雰囲気からすると、メモリマッピングやプログラムの配置をしそうな
雰囲気ですが……。
というか、現在何処かで手に入るのでしょうか。
>>965
バイナリコードはZ80止まりです(^-^;
86系はさっぱり……。
判るのであればROMパッチとかできるんでしょうけどねぇ……。
967:デフォルトの名無しさん
06/09/13 16:52:52
開けないとは?
Borland C++ 2005 Suiteとして望みのものは売ってるみたいだから、
買えるかどうかBorlandに聞いてみたら。
ソースファイルだけあってもどうにもならんと思うが............
968:デフォルトの名無しさん
06/09/14 01:47:15
>>967
503だったんでしょ
今はおk
969:デフォルトの名無しさん
06/09/14 04:58:06
LSIC86はないの?それならDOS窓で実行できる。
970:964
06/09/14 08:50:30
>>966
ご想像通り、リンカの作ったリロケータブルファイルをターゲット環境に合わせて絶対アドレスで
配置する物です。リンカ、ロケータでググれば雰囲気が掴めるでしょう
しかしながら本来DOSでの動作を前提として作成されたプログラムを単にアドレス変換して
配置しただけではダメです。
スタートアップコードやらライブラリ関数やら、ユーザが手を加える必要があります。
なのでDOS用のCに対応したロケータはそのあたりの処理をある程度肩代わりしてくれる
機能が付いてたりします。
でも多分今は買えないでしょうね。>>965さんの言うようにパッチ当てる方が現実的。
971:デフォルトの名無しさん
06/09/14 12:09:51
URLリンク(www.amazon.co.jp)
URLリンク(kakaku.com)
972:デフォルトの名無しさん
06/09/15 19:45:48
うめ
973:デフォルトの名無しさん
06/09/16 09:07:14
うめって、次スレ建ててからにしろよ!
950レス越えてるから1000いかなくても勝手に落ちるんだからさ
974:デフォルトの名無しさん
06/09/17 05:52:38
974
975:デフォルトの名無しさん
06/09/18 04:50:19
この速さなら痔スレは980あたりでいい?
976:デフォルトの名無しさん
06/09/18 12:34:47
駆動系なら俺に聞いてもいいぜ
977:デフォルトの名無しさん
06/09/18 15:54:20
パソコンの使用電力をどのくらいに見積もったらいいか相談に乗ってくれませんか?
celeron 2.8G HDD80G RAM512M 去年の12月頃買って24時間消さないで使ってます。
displayは15インチTFTで32W。本体の定格は115V/3.0Aと書かれているので300Wぐらいと
思われますが、常時300Wじゃないですよね?平均どの位なのかが判らなくて・・・
978:デフォルトの名無しさん
06/09/18 18:05:53
>>976
俺の HDS722525VLAT80 の駆動系がもうすぐヘタリそうなんだけど、
モーターだけ交換とかできねーか?
979:デフォルトの名無しさん
06/09/18 19:46:31
>>977
電気のメーターは家についてるんだろ?一日かけて実測すれば?
980:デフォルトの名無しさん
06/09/19 08:35:56
>>977
その他の構成もあるし、走らせるソフトにもよるだろうから、
やっぱり、測れとしか言えんなぁ
981:980
06/09/19 08:40:43
次スレ
スレリンク(tech板)
982:977
06/09/19 17:42:22
>>980 ありがとう。やっぱ測るしかなさそうですね。エコワットの導入考えてみます。