●●●くみこの組み込み相談室●●●
■ このスレッドは過去ログ倉庫に格納されています
0001くみこ
NGNGSTB/ゲーム機のゲーム以外のプログラムもOKよ!
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNGどこそこのコンパイラは腐ってるとか某のRTOSは終わってるとか。
0004デフォルトの名無しさん
NGNG答えられるはず。
0005デフォルトの名無しさん
NGNG0006くみこ
NGNG当然H8もOKよ!H8/300でもH8/500でも何でもいらっしゃい!
SHシリーズだって歓迎しちゃうわ。
H16ネタなんて書いてくれたらくみこイッちゃうかも。うふふ。
0007デフォルトの名無しさん
NGNGなんだか35歳以上の女性が>>6のようなことを書いているのかな、と思ってしまって
いまいち萎えます。
・・・独り言なので、気にせずに。(;´〜`)ァゥゥ
0008ぷもぉ
NGNG0009くみこ
NGNGもちろんスーパーHの話もね!
0010デフォルトの名無しさん
NGNGところが、ある日、人気のない工場で
突然H8で制御されたシリンダーが
動き出したのだ。
が、H8を組み込んだ基盤の電源は..
落ちていた....
なんとH8は空気中の電位差で動作して
いたのだった。(実話)
0011デフォルトの名無しさん
NGNGすげぇ!
低電力動作を極めるとそうなるのか!?(何か違う?
0012デフォルトの名無しさん
NGNGでもそれって致命的なバグ(?)だよねー
例えば安全装置的な物が動いてないのに
メインの部分が動き出したりするの(ワラ)
0013デフォルトの名無しさん
NGNG>>10 は電気がキャパシタに残ってたか他のボードからのリークかなんかだろうけど。
0014デフォルトの名無しさん
NGNGハァハァ
0015くみこ
NGNGi860/960と某DSPは高級言語開発ね。
某DSPは標準の開発環境がトンチキでとっても苦労したの!
ハードウェア割込からソフトウェア割込を発行できなかったりとか、
統合環境のリンクマップエディタがROM化プログラムに対応してなくて
手でコンフィグファイル書き換えたりとか。
0016>1
NGNGの方が適当でない?行ったことないけどさ。
ネタだったら無視してくれ
0017デフォルトの名無しさん
NGNGない? ワシはゲーム系なのでさげるけど。
0018くみこ
NGNGハード板なんて逝ったらマワされちゃうわ(鬱
0019デフォルトの名無しさん
NGNG0020デフォルトの名無しさん
NGNG0021デフォルトの名無しさん
NGNG0022デフォルトの名無しさん
NGNG0023デフォルトの名無しさん
NGNGわけじゃないぞ。むしろそっちの方が少ないだろ。
家電とかの民生品でも業務用機器でも今ほとんどマイコン制御だし。
そういうののファームウェア技術者ってここ読まないのかな?
0024デフォルトの名無しさん
NGNGよんでるよ
Javaとかでくそつまんないしごともあるし
0025もうヤケ
NGNGHしりーずよりも一般的な
TMS34020/TMS34030が使えるぞ
MC88000と同様、世間一般で通用する知識だ(藁
0026デフォルトの名無しさん
NGNGfirmってほどしたまわり触ってないんだよなあ。
0027デフォルトの名無しさん
NGNGふざけた流行がありますが
そのへんについてのくみこ嬢の見解をおねがいします
0028くみこ
NGNGくみこ的には、C++使おうとかいうKittyGuyじみた発想よりはチョットだけましだと思うの。
あ、ターゲットがJavaネイティブプロセッサじゃない場合ね。
Javaネイティブが相手だったら(量産されてるのかしら?)いいんじゃない?
0029デフォルトの名無しさん
NGNGついでに、その分野でwaba使ってる人はいるか?
0030デフォルトの名無しさん
NGNGだってROMは4Kしか載ってないもん。
0031デフォルトの名無しさん
NGNGJavaネイティブCPUって富士通とか出してなかったっけ?
速度が必要な時はCコンパイラもあるっつー奴。
東芝なんかはJavaシステム載せたネット経由の
組みこみ機器監視用ユニットを外販してたっけ。
0032デフォルトの名無しさん
NGNG今度MPC860を使うことになったんだけど
マニャアルが厚すぎて読む気しない。
わかりやすい解説とか使えそうなサンプルソースあったら教えて。
0033くみこ
NGNGくみこはZ80とか68000とかしか経験ないのよん。
0034デフォルトの名無しさん
NGNG0035くみこ
NGNGくみこが860やったときはほとんどCだったの。
勘弁してね(ワラ
0036デフォルトの名無しさん
NGNG0037デフォルトの名無しさん
NGNG呼び名は「エッチ・シックス・ナイン」で良いのでしょうか?
0038デフォルトの名無しさん
NGNGくみこのくいこみ
あー、すっきりした!逝ってきます。
0040デフォルトの名無しさん
NGNG実際やってる人いるの?
ちなみに、うちは永久に今のままみたいです。
0041デフォルトの名無しさん
NGNGえ、やってないの?
0042デフォルトの名無しさん
NGNGμsを争うようなシビアなタイミング制御とかだとそもそも高級言語
自体敬遠されるだろうから。
0043デフォルトの名無しさん
NGNGくみこさん以外の人に聞きますけど、
MPC860使ったことある人います?
他で聞いた方がいいんでしょうか?
0044デフォルトの名無しさん
NGNGどうにかなりませんか?
0045デフォルトの名無しさん
NGNGの電卓れす。実装器がFPGAだけでできてた。
あまりに構造が原始的すぎて、開発に関わったときはカルチャーショック
を受けたな・・。いわゆるマイコンの1つ手前のアーキテクチャだった。
0046デフォルトの名無しさん
NGNG動きが遅いのでOSが止まって見えることもある。
MediaGXは割り込み命令が異常に遅いので、
割り込みが多発するような事態は避けた方がいい。
API呼出しが必然的に頻発するようなOSには不向き。
これはどうにもならん。
0047デフォルトの名無しさん
NGNGインライン展開しまくって、テンプレートを上手に使えば、結構いけるんだけどな。
ああ、仮想クラスの使用はかなり限定よ。
0048デフォルトの名無しさん
NGNGで、結局制限が多すぎてC++を使う意味がなかった。なんて事態が目に浮かぶ。
0049デフォルトの名無しさん
NGNGnaiveにくめばいいんだろうけど。
くみ込みゆえに ROM化しようとしたりして変なテクニック使いたく
なりそう。
0050デフォルトの名無しさん
NGNG組込用のCコンパイラは、たいていインライン関数が使えるように拡張されてんのよ。
0051デフォルトの名無しさん
NGNG005247
NGNG設計段階では、純粋にOOで設計(純粋なOO設計とは何か?でもめそうだね)
できるとおもうけど。設計時は、言語とは独立だしね。
コストの問題は実装時に考えれば、たいていすむことだと思うが。
フリーストアの使用, RTTIの使用, 仮想クラスの使用
はかなり制限うけるけどね。
>>51 全部staticということはないが、大部分がstaticという風に
なるのは確かだと思うね。 placement newが活躍しまくり。
ここまでやって、わざわざC++を使う必要があるのかは俺もわからない。
ただ、C++でも十分にパフォーマンスは引き出せるし、処理系の挙動も把握できるよ。
でも、OO設計して、OOなパラダイムで、Cで書いてやれば十分な気もする。
(>>50 なんか論点ずれてないか?)
0053デフォルトの名無しさん
NGNGいや、だから、「そうまでしてC++を使うメリット」についての言及なんだが。
「C++ならインラインが使える」というのはメリットにならんと。
0054デフォルトの名無しさん
NGNG誰もC++のメリットがインラインなんていってないので、君は炒ってよし。
0055名無しさん
NGNGレーザープリンターまで色々とあります。
一時期のプリンターはHDD内蔵なんて噂のあるやつまであり、
80286時代に20MHzオーバーの32bitCPUが乗っていました。
C++を使うメリットはやはり複素数や行列やBCDなどの非標準の
型を扱いたい場合や巨大なソースの物量をチョットデモ抑えたい、
あるいはUNIXやWindows用のソフトのソースを他のメーカーの
研究所から買って来て移植する場合、元のソースがC++
だったらという都合が考えられるでしょう。
ついでに、高スペックの石の開発環境てUNIXあるいは
それからの移植が多いみたい(AT&Tの商標を良く見掛ける)。
だからgccのフリーソフトでなおかつGUIがない場合、
以外と簡単に専用機に乗っかりそうですよ。
0056ちょっと興味ある門外漢
NGNG> フリーストアの使用, RTTIの使用, 仮想クラスの使用
> はかなり制限うけるけどね。
意外に制限あるのはC++的な難しい機能だけみたいですね
「フリーストアの使用」とはデフォルトのnewとかmalloc
が使えないということでしょうか?
overloadして、static配列からでも確保すればOK?
仮想クラスは多重継承使わなければOK?
virtual functionを使ったpolymorphismとか、
例外処理とかは制限ないもんなのでしょうか?
# 例外とかいうと割り込みがかかりそう
0057デフォルトの名無しさん
NGNGvirtualは気を付けないとコードの増大を招く。
メモリがタイトな条件だと使いにくいね。
0058デフォルトの名無しさん
NGNG0059デフォルトの名無しさん
NGNG無駄にばしばし使うと、メモリにもパフォーマンスにもけっこう響いてくるね。
0060ちょっと興味ある門外漢
NGNGvirtualの使用に制限があるとOOっぽくなくなって、
ちょっとげんなりしちゃいますね
例外処理はOKですか、意外です
テンプレートも結構いけるみたいですね
STLのvectorとか、見た目はJavaのCollectionAPIみたいになるけど
iterator使ったとこなんかは、ポインタ演算に展開されちゃうんですかね
0061デフォルトの名無しさん
NGNGただ、スタックフレームを消費するから、あんまり階層が深いと
タイトなスタックの場合悲惨なことが…
0062デフォルトの名無しさん
NGNG0063デフォルトの名無しさん
NGNGSTLはアロケータをきちんと定義して、メモリ確保のところを細工する必要はあるけど。
0064デフォルトの名無しさん
NGNG最近のH8とか 三菱 M16C クラスならC使っても快適ですよね
C++で開発出来る規模はどの程度からかな?
0065デフォルトの名無しさん
NGNG0066デフォルトの名無しさん
NGNGだれか5歳の子に説明するように判りやすく説明してください
0067デフォルトの名無しさん
NGNGQ1、ライブラリは使えないの?
Q2、floatの形式は判ってるの?
Q3、そもそも何の為に変換するの? 他とのデータ変換?
内部表現なら自作なりした方がいいんでは?
0068デフォルトの名無しさん
NGNGMSB 符号
nbit 指数部
nbit 仮数部
だから、
1)整数のMSBを符号ビットとする
2)整数の絶対値を求める=負数なら符号反転
3)CFが1になるまで左シフトとして仮数部とする。
4) そシフトした回数と整数のビット幅から指数部を決定
0069デフォルトの名無しさん
NGNGQ1->
ライブラリというかハードウェアでの変換です
Q2->
IEEEです
Q3->
ハードウェアだとレジスタを一時スタックに退避しロード時に
ハードウェアが変換するようなので遅くて使えません
>68
1)は問題ないです
2)もレジスタ上のexpで問題ないです
3)4)をループ、分岐を使わずやりたいのですが何か良い方法ありませんか?
0070デフォルトの名無しさん
NGNGCPUによってはある場合があるけどね
http://piza.2ch.net/test/read.cgi?bbs=tech&key=987068177
バレルシフタを持ってるCPUにしか使えないけど
比較回数を減らすアイデアとしては 2分法で検索する方法があると思うよ
16ビットなら最初に$0100 と比較 より大きいなら $1000と比較てな調子で
MSBの位置を検索するって方法だけど、
0071デフォルトの名無しさん
NGNGなんか凄い条件ですね。
桁数を求める部分に的を絞って
とりあえずプログラム板なのでプログラム的解決を。
非常に呼ばれる頻度が高くあらゆる犠牲をいとわないのであれば
0〜32768 に対応するテーブル(約32K or 約16K Bytes)を作って検索一発。
1回だけ src >= 0x4000 で分岐すればテーブルサイズ半分。
これに耐えられないのであれば小さなテーブルで済ます。
以下4桁ずつ調べる例。
U8 GetKeta(U16 src)
{
static U8 aKetaTable[16] = {
/* 0 1 2 3 4 5 6 7 8 9 a b c d e f */
0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4
};
#if 1 /* 好きな方を選んでください */
{
int nShift;
for(nShift = 12; nShift >= 0 ; nShift -= 4){
U16 tmp;
tmp = src >> nShift;
if(tmp > 0) return(nShift + aKetaTable[tmp]);
}
}
#else
{
if (src >= 0x1000) return(12 + aKetaTable[src >> 12]);
else if(src >= 0x0100) return( 8 + aKetaTable[src >> 8]);
else if(src >= 0x0010) return( 4 + aKetaTable[src >> 4]);
else return( 0 + aKetaTable[src >> 0]);
}
#endif
return(0);
}
どうでしょう。
返り値は 0〜16 の値を取ります。
とりあえずアルゴリズムだけ。
オプティマイズは環境依存で。
1要素1Byteのテーブルを使っていますが、
もっとつめたほうがいい場合も結構あると思います。
分岐なしは自分の脳みそでは無理です。
ちなみに、普通はキャッシュがあるので、
16bit程度だったらアホみたいに
ループして検索した方が良いと思います。
007271
NGNGタブだと消えちゃうかもと思って
全部スペースにしたのに。
0073くみ子
NGNGせっかく有意義ぽいスレなのに。
戻って来るまで同名のよしみで引き継ぐわ。
ARM7とK4しか知らないけど大丈夫かしら?心配。
0074久美子
NGNGhttp://www.mit.pref.miyagi.jp/embedded/link.html
0075うぐぅ
NGNG画像描画チップが遅いので苦労するっす。
OS9が動いているので、シェルでプロセスの一覧とかを出せるので、ある
意味デバッグはやりやすくなったけど、その分、性能的には遅いってのも
あるってことで苦労するなあ。
今日、同じハードの上で、WindowsCE3.0英語版で動いているのをみた。
でも、やっぱ遅いや。ハードの性能がいまいちなんだろうな。
前のハードウェアでは、RAMの容量も限られてたから、プログラムも
フラッシュメモリ直読みで実行していたけど、今のシステムは、RAM
にコピーして実行しているから、もっと速くてしかるべきなんだけど。
SH4だから速いってのを期待してしまうけど、その分、実行する内容も
増えちゃって、ソフト設計の問題もあったりで、やっぱダメダメな感じ
だな。
やっぱ、世間の組込み用RTOSは何が主流なんだろうか・・・。
まあ、主流がなんであれ、うちの商品とは関係ないだろうけどさ。
0076ちょっと興味ある門外漢
NGNGITRON互換、OpenSourceでおもしろそうなんだけど
0077くみ子
NGNGOS/9って事は、ファイルシステムが必要ね。
今の業界のトレンドよね?くみ子は経験無いけれど。
OS/9はRTOSじゃないから組み込みとしてはかなり大規模なのでしょうね。
うらやましく感じちゃう。
>>76
eCosの実装例はあるわよ。フリーだから常に選択枝には入れるべきだと思うわ。
ただ世の流れはJTAGを用いたRISCマイコンでの実装だから、デバッガの充実から
して、μITRONの選択になってしまうよね?
小規模開発ならeCosは悪くない選択だと思うわ。
0078デフォルトの名無しさん
NGNG0079デフォルトの名無しさん
NGNG0080:デフォルトの名無しさん
NGNG0081くみこ
NGNGくみ子の事は知らないけど(w
0082
NGNG0083組子
NGNGOS-9はRTOSじゃないわ。
ついでに言うとWINDOWSもLINUXもBSDもRTOSじゃないわよ。
最近のトレンドはRTOSのタスクの一つとしてLINUXを動かすことね。
そういう設計ってあこがれちゃわない?
0084デフォルトの名無しさん
NGNG別に。
0085デフォルトの名無しさん
NGNGそのころは RTOSって意味知らなかったけど、タスクの優先度が
固定できるってぐらいの意味か?
あと eCosって licenseは大丈夫なの? GPLだったりしない?
0086デフォルトの名無しさん
NGNG常識
0087くみ子
NGNG>>83
ルーターとかそういう設計が多いみたいね。良く知らないけれど。
TCP/IPのプロトコルスタックやアプリケーション層を流用できるからお徳よね。
>>85
eCosのライセンス?
大丈夫よ。組み込んでしまえばバレないって主任が…え?ごめーん、
これ言っちゃいけないんだって。ナイショにしてね。
ライセンスとかって、私弱いんだ。詳しい人教えてくれないかなぁ。
0088
NGNGOS-9はRTOSじゃないんでしょうか?
あまり詳しくは知らないけど、だいたいRTOSとして紹介されてますよね?
0089デフォルトの名無しさん
NGNG詳しい人解説きぼーん
0090デフォルトの名無しさん
NGNG組み込み=制御系でないの?
無知でゴメン
0091デフォルトの名無しさん
NGNG0092くみこ
NGNG広い意味では同義ね。
狭義では、家電みたいにFWの存在を意識させないスタンドアロンでソリッドな
用途を「組込」、システムを構成する機器のひとつとして保守端末を接続でき
たりするような装置の用途を「制御系」て言ったりするわね。
0093
NGNG割り込み応答時間とディスパッチにかかる時間の最悪値が保証されてるOS
と考えてるけど違うかな?
組み込みで使う場合はだいたい数μsecくらいだと思うけど。
0094デフォルトの名無しさん
NGNGあるタスクが単位時間内にどれだけの実実行時間を得られるか、
きちんと設計可能なことも重要(時に93と若干矛盾するけど)。
0095デフォルトの名無しさん
NGNGFOR %%A IN (*.obj) DO ECHO -+%%A &>>LIBMK.fil
てな調子で LIBMK.filを作って
TLIB myLib.lib @LIBMK.fil
とライブラリを作ってたのですが、
windows2000では巧くゆきません
理由は & が区切りとして処理されてしまう為です。
何か巧い方法はないでしょうか?
009695
NGNG009895
NGNG突然 7年前のコードの事で問合せが来たんだけど 今使ってるのがwin2000だった
もんだから
最近、プリンタポートをパラレルで使ってたのを win2000で動かしたいって言われて
win2000入れたばかりなもんで勝手がわからんかった
こっちは結局、 gwiopm.sys か giveio.sys か悩んで gwiopm.sys にしたけど
ハードが直接たたけるようになると win2000もいいもんだね
で、最近DSPも触りだしたんだけど、 これ、マジでExcelでコード書きたくなるね
010095
NGNGしかもそいつを カンマで区切って書かなきゃならん
こりゃ専用のエディター作った方がいいかも
010195
NGNG先行した命令の あるレジスタ書込みの後 nクロック後に有効になるなんて
特異例は 当然山のようにある しかも nが操作によって可変なんてね(^^;
■ このスレッドは過去ログ倉庫に格納されています