トップページ⇒tech
984コメント343KB

制御系なら俺に聞いてもいいぞ(2)

■ このスレッドは過去ログ倉庫に格納されています
00011NGNG
俺は俺であり、それはお前の事だ。
前スレで出たのは
PIC H8 SH M16 ARM 6502 x86 Z80 TMP47
こんな所だ。
後、メーカ名は出せないがDSPの話も出来るぞ。
ハード寄りの話も大歓迎だ。
道具話も楽しくやれるならやってくれ。


過去ログ
制御系なら、俺に聞け!
http://pc3.2ch.net/test/read.cgi/tech/1002176627/

関連過去ログ
●●●くみこの組み込み相談室●●●
http://pc3.2ch.net/test/read.cgi/tech/988084737/
0002デフォルトの名無しさんNGNG
2
00031NGNG
就職相談の話題が循環するから先に答えておく。

好きならやれ。
他に選択肢があるならそっちをえらべ。
自分が選んだ、なりたい自分になれ。

以上。
0004デフォルトの名無しさんNGNG
制御系って既に機械側のコマンドを叩くだけで細かい位置決めとかはやらなくていいって聞いたんですが。
00051NGNG
>>4
その機械側の叩かれるコマンドを作る方が制御系だろうが。

叩くのは普通オープン系だろう
0006デフォルトの名無しさんNGNG
>>5
へぇ。前回った制御系を名乗る会社はそうだったからさ。
会社によって捉え方が違うんだね。
0007デフォルトの名無しさんNGNG
まぁ制御系つーてもピンキリだからな。
ハード叩く部分はハードの知識持った奴がライブラリとして作っておいて、
知識無い奴とかが上物(アプリ部分)作るような事もあるやね。

ただ、そういうアプリしか作ってない奴が制御系プログラマを名乗るのは
なんかちげーだろーって感じ。
0008デフォルトの名無しさんNGNG
皆どんな製品作ってる?
俺は携帯とか無線LAN関連とかだけど。
0009デフォルトの名無しさんNGNG
>>8
WDM、TDM
0010デフォルトの名無しさんNGNG
制御系ってなんですか?
0011デフォルトの名無しさんNGNG
>>10
おもちゃ屋に置いてある子供向けの
偽ワープロとか偽携帯電話とかの事だろ?
0012デフォルトの名無しさんNGNG
ARMってホンとにJavaVMを実行できるんですか?
0013デフォルトの名無しさんNGNG
>>12
出来ない理由はない。
0014デフォルトの名無しさんNGNG
やりたくない理由はある
0015デフォルトの名無しさんNGNG
制御Kは少女Aの元カレ
0016デフォルトの名無しさんNGNG
>>10
求人の一部を掲載しています。
キャリア登録をしていただくことにより担当コンサルタントがあなたの力を
十分に発揮できる求人情報をサーチし、ご提案致します。

● オープン系
● 汎用系

● 制御系
● WEB系

● パッケージソフト・OS
● システムコンサルタント

● ネットワークエンジニア
● 社内IT

● プリセールス・テクニカルサポート
● 営業・マーケティング系

● 事務系スペシャリスト
● その他IT関連職種

0017デフォルトの名無しさんNGNG
IrDA使ってる人いる?
001812NGNG
っていうかARMバイトコード直接実行できるって何処かで見たような記憶が、
0019デフォルトの名無しさんNGNG
Jazelleのことかな?
http://www.jp.arm.com/kk/pdf/jazelle.pdf
0020デフォルトの名無しさんNGNG
age
0021デフォルトの名無しさんNGNG
♪あなたが組み込んだ〜
プログラムで動き出す〜
生まれた〜私を〜抱きしめて〜
0022デフォルトの名無しさんNGNG
♪あふれそうなデータを〜
バッファでそっと受け止めて〜
0023デフォルトの名無しさんNGNG
閑古鳥が鳴いてるな
0024sageNGNG
>>23
そう思うならなんか書けや、ヴォケ
0025デフォルトの名無しさんNGNG
閑古鳥が鳴いてるな
0026デフォルトの名無しさんNGNG
周囲に喪中やら入院やらが多くてまいってる
0027デフォルトの名無しさんNGNG
>>26
・・・・それになんと答えろと、、、
0028デフォルトの名無しさんNGNG
>>27
閑古鳥が鳴いてるな、と。
0029デフォルトの名無しさんNGNG
>>28
ネタが無いから、みんなマ板で遊んでるんだろ(w
本気の質問が来たらまた集まってくるんじゃないか?
0030デフォルトの名無しさんNGNG
閑古鳥ってカッコーのこと?
0031デフォルトの名無しさんNGNG
>>30
かっこー
0032デフォルトの名無しさんNGNG
下がりすぎだろ。age。

ていうか質問です。
簡易ファイルシステムを構築しようと考えています。
ちなみにターゲットはH8、記憶媒体はフラッシュメモリです。(ワード書き込み、セクタ消去)
フラッシュメモリ書き込み、消去プログラムは完成しておりますが、
ファイルシステムに何を使うべきなのか、どの程度まで簡易なFSを実装すべきなのか検討しております。

マイコンにファイルシステムを載せてる方は、どの程度まで機能を実装されてます?
また、何か参考にされた情報とかございますか?
0033デフォルトの名無しさんNGNG
>>32
簡単なのは、やっぱりFAT
ファイルの新規作成や追加書き込みをしない限りは楽
0034デフォルトの名無しさんNGNG
FATだろ〜な〜
FAT32とVFATに対応させとけば、後々使い回し
効くしな〜
0035デフォルトの名無しさんNGNG
>>32
フラッシュって、ただのフラッシュメモリ?
それ用のファイルシステムがあるんでは?
書き込みが偏ると、寿命が短くなるからねー。
0036デフォルトの名無しさんNGNG
わー、こんなにレスが。
>>33、>>34
ありがとうございます。FATですか。
さっきぐぐってたらインターフェース誌に
"移植性を重視したファイルシステムの作成法"があるのを発見しました。
http://www.cqpub.co.jp/interface/contents/1998/199809.htm
組み込み用FAT型ファイルシステムの作成という項目もあるみたいです。
バックナンバーがCD-ROMですが。この辺読んでみるかな。

>>35
CMOSのフラッシュメモリです。
そうなんですよね。消去、書き込みの分散化とかをどう実装するか・・・。
今そこの資料を探してるところです。
0037デフォルトの名無しさんNGNG
>>36
以前、俺がフラッシュメモリ上にFATを実装したときは
インテルのVFM関連のドキュメントを参考にしたよ。
職場にいけば当時の参考資料のURLがあるんだけど
今は自宅なのでこれ(↓)で我慢してくれ。
ttp://developer.intel.com/design/flash/swb/vfm.htm
0038デフォルトの名無しさんNGNG
TRON SHOW 2003開催中!
ところで,T-Engineて使っているひといますか?
0039デフォルトの名無しさんNGNG
>>38
この前、デバッグボードに使った。
0040デフォルトの名無しさんNGNG
>>36
買い物でよければ、ここでFlash ROM用ファイルシステム売ってるよ。
http://www.kyoto-sr.co.jp/products/fugue/productinfo/index.html
0041デフォルトの名無しさんNGNG
質問!

最低どのくらいのCPU(とクロック)でLANコントローラ付きの組み込み機器作ったことある?
PICNICはさすがにアプリが載らないからそれ以外で教えて。

ネットワーク要の組み込み機器の原価低減でCPUを変えたいので。

ちなみに今の構成は
CPU 32Bit RISC 66MHz です。
0042デフォルトの名無しさんNGNG
>>36
大体2面データを持って、書き換えるときは古い面を全部消去して
変更を加えたデータを書き込んでる。
…で書き換えに失敗したら(書き換え中の電源OFFとか)古い面を
バックアップに使用。
0043ガラタサライNGNG
” (゚Д゚)ハンパネー!!!
0044デフォルトの名無しさんNGNG
>>41
AKI-H8にLAN対応の組み立てキットがあるよ。
H8/3069で、トラ技の12月号にも載ってたな。

>ネットワーク要の組み込み機器の原価低減でCPUを変えたいので。
この辺の事情はよく分からん。自分で調べてくれ。
0045デフォルトの名無しさんNGNG
>>44
ありがとう。
「ネットでI/O」とかいう特集だったけ?(記憶モード)
0046デフォルトの名無しさんNGNG
>>39
CPUは何を使いました?
やはり,パーソナルメデイアのものですよね。
0047デフォルトの名無しさんNGNG
H8なら秋月でかうのがいいですか?
0048デフォルトの名無しさんNGNG
>>47
特に事情がなければ。
情報も一番多いんじゃないかな。

0049デフォルトの名無しさんNGNG
>>47
値段的にも安いんじゃないかな。
WEBでも買えるし
0050デフォルトの名無しさんNGNG
>>46
いや三菱のやつだった。
0051デフォルトの名無しさんNGNG
ロボットとか作ったことありますか?
0052デフォルトの名無しさんNGNG
>>51
リア消の時は、石鹸の空き箱とかで作ったけど、そんな話は聞いてないって?
0053デフォルトの名無しさんNGNG
>>51
作ったんだけど、俺のことを好きになっちゃって嫁さんのこと気にして
ハングアップしてしまった。2台目に学習経験を吸い出されちゃったけど、
2台目の学習結果がそれで上書きされちゃうので、2台目自身が1台目
のようにまた俺のことを好きになったらマズイから捨ててくれ、と言ったので、
泣く泣くゴミ捨て場に捨ててきました。

これからはパソコンと呼ぶようにしてください。>>51
0054 NGNG
オシロ当てたりジャンパいじったりしてるうちにどうしても
基盤壊してしまいます。
すでにTr焼損x2 断線x3 (しかもICEのプローブ線を断線させてしまった)

ハードわかるのがほぼ自分しかいないので続けられますが
周りの目が痛いです。


基盤を壊さないこつを教えてください。
0055デフォルトの名無しさんNGNG
冷静に、機械に当たってもしょうがない
将来道はひらける。
くらいしか言えないです。スマソ
0056デフォルトの名無しさんNGNG
>>54 電力? 絶縁してないトライアック直接制御なら仕方ないよ。
 絶縁トランス+スライダックトランス入れてるけど、それでも時々やっちゃう。
005754NGNG
>>56

いや、マイコンです。厳密には制御系というより組み込み系かな。
最大電圧4.3V(Li-ion電池)なので安全っちゃー安全(^^;;

Tr損傷はオシロのプローブ当ててうっかりVccと出力を短絡させちゃって終了・・
VccとGND短絡で電源ふりきらせるなんてしょっちゅうです。


0058デフォルトの名無しさんNGNG
>>57
それは・・・・電流制限付(定電流VR付)の電源買って貰え

ハンダコテあてた後、電池をいきなり接続したりしたらそりゃダメだよ。
 テスターあててから、電流ギリギリにして試験用電源で確認する事。

オシロのGND用にはちゃんとつかむ所をハンダ付けしておくべきだし
0059デフォルトの名無しさんNGNG
>>57
>>58に同意

測定用のGNDなんざ、ベタのGNDパターンのレジスト削って太い線を半田付けしとけ。

それから、繋ぎっぱなしでチップの足での波形を見たいんなら↓みたいなクリップ買ってもらって
火を入れる前から繋ぎっぱなしにしとくといい。

http://www.tektronix.co.jp/Products/Measurement_Prod/Accessories/index.html


0060デフォルトの名無しさんNGNG
>>57
気合だ
0061デフォルトの名無しさんNGNG
>>54
まずは基板と書けるようになる。
0062デフォルトの名無しさんNGNG
>>61
ごもっとも(w
006354NGNG
皆さんアドバイスありがとうございます

ところで話が換わるのですが、いわゆる自動変数
を宣言しすぎてヒープを使い果たしたと思われる
バグにはどう対処されてますか?

H8でメモリが4Kしかないのに関数内で
char buf[5000]; とか
宣言しても警告すらされないんですね...

やはりすべてグローバルでとるか動的に取得するのが常識なんですか?
0064デフォルトの名無しさんNGNG
>>63
でかい配列はstaticにしませう。
あふれれば、リンクする時に怒られます。
動的な確保はあんまりやらない。
静的に取っていって、足りない時ぐらいかな。
0065デフォルトの名無しさんNGNG
>>63
> ところで話が換わるのですが、いわゆる自動変数
> を宣言しすぎてヒープを使い果たしたと思われる
> バグにはどう対処されてますか?

どんなコンパイラ使ってるの ? 普通は、自動変数 → スタックだと思うが...。
006654NGNG
>>65

今調べたら確かにスタックにとられてました・・

ちなみに使ってるコンパイラはHEWです。
0067デフォルトの名無しさんNGNG
>>66
別にわざわざ断らんでも普通のコンパイラは
自動変数はスタックに積む

ヒープを使うのはmallocでエリアを確保するとき
0068デフォルトの名無しさんNGNG
ヒープを日本語に訳す時って何て表現するの
0069デフォルトの名無しさんNGNG
>>63
アルゴリズムを見直す。
0070デフォルトの名無しさんNGNG
>>68
尻
0071デフォルトの名無しさんNGNG
infoseek 辞書によると
  heap [hi:p]
  【コンピュータ】ヒープ ((確保したメモリ領域))
だそうだ。まんまやん…
0072デフォルトの名無しさんNGNG
heapは堆積だよ (エッヘン!)
0073デフォルトの名無しさんNGNG
>>71
まんまやね…
>>72
直訳やね…

まぁ、コンピュータ用語なんて、そんなものか…
0074デフォルトの名無しさんNGNG
mallocなんて怖くてつかえねぇ
吐き出したMAPファイルとにらめっこ
0075デフォルトの名無しさんNGNG
mallocなんて実装するのがマンドクセー
ライブラリなんてメモリバカ食いするから使えねー
0076デフォルトの名無しさんNGNG
まあライブラリは自作が殆どだし、mallocも使わないのが殆どだし、

ただ、購入したライブラリというか機能を使う為に
呼出番地に応じて固定領域を返すmallocなんてのを書いたりするけど
0077デフォルトの名無しさんNGNG
>>74-76
TRON厨なのでget_mpfで確保しますが、何か?
0078デフォルトの名無しさんNGNG
オレもmallocは怖くて使ってない。

メモリ不足になったとき、どう処理すりゃいいのか、
それをどう検証すりゃいいのかがようわからん。

実際に使っている人たちにここら辺をどうしているのか
聞いてみたいところ。
0079デフォルトの名無しさんNGNG
>>78
メモリ不足になったら、とりあえず致命的なので
時間を空けて3,4回リトライしそれでも駄目なら
外付けしておいたブザーを鳴らしてプログラムは終了
0080デフォルトの名無しさんNGNG
>>79
レスさんくす。

更に質問。
メモリ不足になったときに、ブザーが鳴るかどうかの検証は、
どうする?ダミーを確保して圧迫させるの?
どのくらいの頻度でブザーが鳴るのか見当はつくもんなの?
0081デフォルトの名無しさんNGNG
>>80
ブザーが鳴ったら出荷できないものとしてメモリ関係を総チェックする
最終出荷試験というかいじめ耐久試験をやって
ブザーが鳴らなくなったらテストクリア
別にブザーでもLEDでもなんでもいいんだけど
0082デフォルトの名無しさんNGNG
>>81
それはメモリ不足じゃなくて不良じゃないか?
0083デフォルトの名無しさんNGNG
>>82
確かにこの例では不良だな。
不足したときの対処なんて、その時によって違うから、一概に言えないと思う。

通信で、受信バッファを取りにいったら足りないなんて場合は、
再送してもらえるプロトコルであれば、そのデータは捨てて、
次に期待すればいいし、それじゃ困る場合は、きちんとエラー処理
しなきゃいけないし。

検証は…わざとエラーになる状態にして、予定通り動けばOKぐらい?
008454NGNG
みなさん厨房の私にいろいろ教えていただいて(TдT) アリガトウございます。
すごく参考になりました。

ただ、81さんの方法だとすべてのテストケースを網羅するのが結構大変な
気がするのですが(割り込みの重なり具合とかバッファのたまり具合とか)
その辺はある程度割り切るしかないのでしょうか?

原子炉のシステムとかだと全部globalでとっててしかもメモリが2重化されてたり
するのだろうか・・ そもそもCでは書いてないか・・
0085デフォルトの名無しさんNGNG
>>84
> 原子炉のシステムとかだと全部globalでとっててしかもメモリが2重化されてたり
> するのだろうか・・ そもそもCでは書いてないか・・

そもそもハードウェアのフェイルセーフがある (...と、思う...。)
0086デフォルトの名無しさんNGNG
たぶんしないと思う しないんじゃないかなま、ちょっと覚悟はしておけ
0087デフォルトの名無しさんNGNG
>>84
・割り込みの重なり
  基本的には*重ねない*= 割込み中に他の割込み許可しない のが安全

・バッファのたまり具合
  バッファは固定サイズで固定領域に取る事。
  組込み系はメモリが小さいのに、可変バッファなんて使うと、時間と供に断片化
  して、すぐに取れない領域が増えてしまう

断片化の事を考えると、mallocを使う場合は、パソコンのように文字列の扱いで
使うような使い方は出来ない。可変サイズで使うんじゃなく、木構造とかファイル
システム的な使い方をする場合に限るべきだな

0088デフォルトの名無しさんNGNG
>>84
原子炉の場合はソフトウェアを使わず、ハードウェアだけでロジックを組むらしいぞ。
0089デフォルトの名無しさんNGNG
ていうか、メモリが足りなくなるって
設計ミスだろ
0090デフォルトの名無しさんNGNG
>>89

お前はあらゆる段階でのメモリの消費量を完全に把握してるのかと
小一時間・・・
0091デフォルトの名無しさんNGNG
>>90
俺ずっとチップの設計やってて、最近マイコンに手を出し始めてるんだけど、
やっぱりみんなあらゆる段階でのメモリ消費量を把握してるワケじゃないのか。

いじってて「すべての分岐や割り込み考えてると、マイコン設計者はたいへんだなぁ」
と感心していたのだが。
0092デフォルトの名無しさんNGNG
>>91
 いや、だからヒープは使わないって事で
 スタックについては最悪量は計算するよ

 分岐は構造化レベルで考えれば問題ない
 割り込みは 〔これは危険〕ってパターンがあるからそれを逃げておけばOK

009391NGNG
>>92
想像していた自分の感覚が大きく外れてないことがわかりました。ありがとう。

>割り込みは 〔これは危険〕ってパターンがあるからそれを逃げておけばOK

これは精進せにゃならんな・・・。
0094デフォルトの名無しさんNGNG
>弊社が2002年6月1日から販売しておりますビデオテープレコーダーの一部商品で、
>リモコンを使った翌年のタイマー予約ができないことが判明致しました。

やれやれ・・・・・日本で作ってないのか?
0095デフォルトの名無しさんNGNG
>>92
>  割り込みは 〔これは危険〕ってパターンがあるからそれを逃げておけばOK
基本は「割り込みと割り込み以外で同じ変数を読み書きしない」だな。
同じ変数を使うときは割り込み以外では割り込み禁止にしてから読み書きすること。
アセンブラの時にはレジスタとかPUSH,POPしてたなぁ。
0096デフォルトの名無しさんNGNG
あと、
出来るだけ割込中に別の割込を許可しないですむようにする。
タイマー割り込みは一つに纏める。それが出来ないなら割り込みは短くする。

たとえば、時間が来たかどうかをわざわざ割り込みを実際に発行させなくても、
割り込みを禁止しておいて、割り込みフラグが立ってるかどうかメインで見る
方式を使うとか、
 タイマ割り込みでは push popもせずに (inc メモリ) 命令だけを出しておいて
 メインルーチンでは ゼロでなければ dec で減算するようにすれば 割り込み
 禁止にしないでも通信出来るとか
0097デフォルトの名無しさんNGNG
> ゼロでなければ dec で減算
これ、1命令でできるの?
0098デフォルトの名無しさんNGNG
>>97
1命令で出来ないけど、 ゼロでないならdecを実行しないなら問題ない
ゼロかどうかの比較と decの間に割り込みがあっても問題無い
0099デフォルトの名無しさんNGNG
>>98
あ、そうかー。理解したよ。ありがとん。
0100デフォルトの名無しさんNGNG
多重割り込みしなかったら割り込みの価値半分捨ててるような気がするんですが...
0101デフォルトの名無しさんNGNG
>>100 面白そうだからもっと解説してみて
■ このスレッドは過去ログ倉庫に格納されています