トップページ⇒tech
1001コメント331KB

●●●くみこの組み込み相談室●●●

■ このスレッドは過去ログ倉庫に格納されています
0001くみこNGNG
組み込み用ワンチップマイコンについて語りましょ。
STB/ゲーム機のゲーム以外のプログラムもOKよ!
0232くみこNGNG
>>231
!!
それじゃただの「*内蔵*マイコン」じゃないの!
「*内臓*マイコン」ていうから人工臓器とか人造人間とか人体改造とか
マッドなサイエンスを語る板かと思ったのに!!
0233くーみんNGNG
>>232
ペースメーカーは立派な内臓マイコンよ。私の作ったパルスがあなたの洞結節を
刺激しまくるの♥
考えてみれば人造臓器にマイコン応用されるならば、それが一番高度な応用よね?
低消費電流、エラーフリー、適応化、小型軽量化。緊張感ありそうで禿げそうね。
怖いわ。
0234デフォルトの名無しさんNGNG
この業界は、女性は多いですか?
0235くみこNGNG
>>234
いるわけねえだろボケ!
0236デフォルトの名無しさんNGNG
本スレage
0237デフォルトの名無しさんNGNG
>>234
ここにいる組系のコテハンは全員根鎌だ。
気を付けろ。
0238デフォルトの名無しさんNGNG
>>224
おおPERTNER仲間がいた。うちでは愛用してる。なんとなく使いやすくて。。
日立のがひどすぎるんだな。
ちなみにH8/3006メインです。
0239デフォルトの名無しさんNGNG
俺はZ80でも68kでもパートナーだったから、SHでもパートナーを要望したよ。
0240デフォルトの名無しさんNGNG
>>234 いないこともないんじゃない?
 Mだと、ビットの開発やDSPで女性いたよ。派遣じゃなく社員で
 って感じで多くはないな
0241デフォルトの名無しさんNGNG
MST2001あげ
0242くーみんNGNG
>>240
大体1割がオンナね。徹夜しても無精髭が生えてこないから羨ましい。
0243デフォルトの名無しさんNGNG
無精わきげ萌え
0244デフォルトの名無しさんNGNG
>>239
うちももうすぐSH使う予定でやはりPARTNERでいこうと思ってる。
期待通りの使い勝手だった?

ところでSHくらいになるとみんなOS使うんだろうか。。
SH2なんだけど。
0245デフォルトの名無しさんNGNG
>>244
μITRONが、多いかな。
0246デフォルトの名無しさんNGNG
>>244
SH3とかSH4ならLinuxでも積んどけば? ってSH2か。
0247デフォルトの名無しさんNGNG
明日MST2001行ってくる
0248デフォルトの名無しさんNGNG
μTRONとかリアルタイムOSを使ってる方に質問ですが、
RAMの容量ってどれくらいで稼動してますか?

リアルタイムOSのこと良く理解できてないのですが、今月のインタフェースの
特集記事を読んでるとTCBとか、データキューとか出てきて、
OSを使わない場合に比べメモリを大変消費しそうな気がしてなりません。

あとスタックエリアって、タスク間で独立してるんでしょうか?

漠然として初歩的な質問かもしれませんがよろしくお願いします。
0249くーみんNGNG
>>248
そーねー私がμITRON使った構成で一番少ないRAM容量は152Kbitかしら。
逆に一番大きいサイズで12Mbitね。サイズは工夫次第でどうとでもなるものよ。
流石に64Kbitを割り込むと苦しいけれど・・・。

スタック空間はタスクでユニークよ。割り込みのスタック空間を分けるかどうかは
システム毎にそれぞれに悩んで選択してハマってゆくわ。ほほほ。
0250にぶるNGNG
>249
bitかい。あんたのところはbitかい。
64Kbit/8=8KByteなんてスタックだけで消費するぞ。
0251デフォルトの名無しさんNGNG
>>248
確かに、OSを使わない場合に比べメモリを消費します。
比較的メモリの消費の少ないOSの仕様としては「OSEK」というものがあります。
http://www-iiit.etec.uni-karlsruhe.de/~osek/
0252ななしNGNG
A.T.氏「OSEKはDOMANTがないんですよ!」
0253デフォルトの名無しさんNGNG
そんなことより久美子さんの
スリーサイズを教えてください。

ミリメートルオーダーは小数点一桁までで頼んだ
0254くみこNGNG
0.1mmオーダーのメジャーがないのでcmオーダーで。
上から106、78、94じゃゴルァ。
0255デフォルトの名無しさんNGNG
・・・・・
「変数MyInterestはNULLを返しました。」
0256くみこNGNG
ちなみに身長体重は180cm76kgじゃゴルア!
0257デフォルトの名無しさんNGNG
・・・・・
変数MyInterestをデストラクトしました・・
0258くーみんNGNG
>>250
あら?メモリって普通bitかWORDで表現しない?
WORDの場合は1WORD何bitかを明記するから結局はbit表現がメインよね?
64Kbitでも物によっては作れるわよ。
採算厳しいんだから節約しなきゃよね。
0259デフォルトの名無しさんNGNG
みみっちー世界じゃのぉ
富豪的プログラミング推奨者のおれがなんで、
こんな仕事やらされてんだか。。。
0260デフォルトの名無しさんNGNG
イメージを送り込むと
JPEGを吐いてくれる
LSIとかCPUを作って!
0261260NGNG
しかも安くお願いします。
いっこ1000円くらいで
0262デフォルトの名無しさんNGNG
あまいな。
RAM無しっつうのを見たこと有るよ。
0263248NGNG
>249
回答ありがとうございます。
OSの実装方法がなんとなくわかってきました。

>262
RAM無しって、外付け分のこと?
ROM256Kbyte RAM10Kbyteぐらいなら内蔵してる
CPUがあるからできるってことですよね。
0264デフォルトの名無しさんNGNG
 まあ RTモニタ/OS がのせられるような環境は リッチ!
0265くみこNGNG
>>260
わざわざ作らなくても既にあるのでそれ買って使え。
0266くーみんNGNG
>>263
RAM無しというのはレジスタのみで実装する特殊なアプリケーションの事よ。
話題には上がるけれどなかなかやれる事ではないわね。

>>265
くみこちゃん、最近荒れてるね。修羅場なの?
トンネルはいつか抜ける事ができるわ。頑張りましょう。
0267260NGNG
回答待ってます
0268260NGNG
>>265
ありがとう。どんな製品ですか?
HPがあれば教えてください。
0269デフォルトの名無しさんNGNG
最近制御の仕事やってるんですけど、ソース見てみたらグローバル変数だらけ。
これなんとかする方法教えてくださいませ。
どうもエミュ無しでのデバッグ必要時に、シリアル通信で変数を参照できるように
するためにほとんどの変数がグローバルなのだそうです。
どなたか良いアイデアプリーズ。。
0270デフォルトの名無しさんNGNG
とりあえず
struct{
}global;
の中に全部放り込むとか。
デバッガで一望できるよ。
0271デフォルトの名無しさんNGNG
>>269 慣れろ!
0272デフォルトの名無しさんNGNG
おはやうです。
>>270
ども、早速の回答ありがとうございます。
今日会社でどんな感じになるのかいろいろ試してきます。
MAPファイルに各メンバのアドレスが出力されるのかちょい心配。。
0273269NGNG
>> 271
そんなぁ。。(;´Д`)
0274デフォルトの名無しさんNGNG
>273
ソフトの方から来た人はグローバル変数=悪と
考える人が多いけどどうなんだろ?
自分の頭の中でマップできる数位使ってかまわんと
思うが。
0275デフォルトの名無しさんNGNG
半年前に書いた自分のプログラムを見て
一発で何やってるかワカるんならそれでも良い。

二年以上前に書いた自分のプログラムを見て
一発で何をやってるかわかるんなら、そのスタイルを貫いても良い。
0276デフォルトの名無しさんNGNG
ローカル変数に取るよりはスタティックの方が安心って事があるよね。

で static に取ると 作ったツールとの相性からデバックし難いからグローバルにって
感じなのかな?
 命名規則にユニット名でも付ける事ってしとけば大丈夫じゃない?
0277デフォルトの名無しさんNGNG
>>275
わからん奴なんているのか?
普通仕様書と設計書をみれば何もかも分かるじゃん。

分からんような資料を残す奴は人間のクズ。今すぐ氏ね。
0278デフォルトの名無しさんNGNG
資料なしでコードだけ読んでわかるか?
大規模なコードになればなるほど、
細部のドキュメントは省かれるし
コードとの同期もとれなくなってくる。

半年後の自分を、新しくプロジェクトに加わった
新人だと思って、そいつにでもわかるようにコードを書け

ああ、でも、一行一行フローチャートか何かに書いてる
元COBOLERとかだったら、べつにそんなことしなくてもいいよ。
ドキュメントにない仕事すると怒られるからね。
ドキュメントを読めば、コードがわかる。
そうだろ?
0279デフォルトの名無しさんNGNG
>>274
個人的な実体験として、
ローカル変数に慣れるとグローバル変数を把握するのが
面倒になる。

確かに数が少なければ自分の頭の中でマップする労力もたいしたこと無いが
0であればさらに楽。
管理対象は少なければ少ないほどいい。
0280デフォルトの名無しさんNGNG
>>278
ドキュメントをかかないならコードをみただけでわかるようにしとけ。
1行1行コメント付けてる奴は今すぐ氏ね。
コメント書かないやつは今すぐ氏ね。
「ここ不要」とかコメント残してる奴は今すぐ氏ね。
「あとはまかせた」とか書いてる奴も今すぐ氏ね。
0281デフォルトの名無しさんNGNG
わかるようにコードを書けといっただけで
コメントを書けとはいってないぞ

まあいいや。
0282269NGNG
いろいろ試してきました。
で、構造体に放り込むのはどうもうまくなかったです。
MAPファイル(関数や変数がどこに配置されたか確認できる)っていうのがあるんですけど、
そこには構造体自体のアドレスは書いてあるけど、メンバのアドレスは書いてなかったです。
アラインメントを考慮して自分でアドレスを算出するのはミスがでそうで怖いですし。
同様に、staticをつけてファイルスコープにした変数も書かれないようでした。
SH2にHIMって環境で開発してるんですが、皆さんどうされてるんでしょうか?
10や20ならいいんですけど、さすがに100や200のグローバル変数は管理しきれないです。。
0283269NGNG
>>276
本当にどうしようもなかったら命名規約でごまかそうと思います。
でもせっかくCにはスコープって便利なものがあるのでできればこちらでなんとかしたいとこです。
開発環境であるHIMがstatic変数のアドレスも吐いてくれれば万事解決なんですけど、
今日調べた限りではそんな設定は見つかりませんでした。。
0284デフォルトの名無しさんNGNG
ごめん、くみこの食い込み相談室だと思って入ってきちゃった。
0285デフォルトの名無しさんNGNG
>>282
考えるのが面倒なので、
構造体のメンバにcharの配列を要所要所に埋め込んで
そこに文字列入れてます。
慣れればMAPファイル見なくてもダンプ解析できます。
0286デフォルトの名無しさんNGNG
>269
構造体の頭のアドレスがわかればメンバのアドレスなんてわかるだろ。
マニュアル見たか?
構造体が嫌ならサイズそろえて配列にでも入れておけ。
メモリダンプすりゃすぐ解るだろ。
割り込みを扱う以上グローバル変数は避けては通れん。
0287デフォルトの名無しさんNGNG
くみこに質問!
えーっとだな、char* szBuf="abcde\0";
宣言した6バイトの領域に対して、
p=realloc(szBuf,64);とかできる?(よーなきがしてきた)
そのときszBufは内部でfreeされておいらが最後にやるのは
free(p)ってやればいいんだな??
0288269NGNG
>>285
> 慣れればMAPファイル見なくてもダンプ解析できます。
どうもイメージがつかめないです。頭悪くてごめんなさい。
えと、構造体の中でさらにグループ分けして、そのグループごとの先頭アドレスを
切りのいいとこに合わせるためにchar配列を入れとくってことですか?って違うか。。

>>286
> 構造体の頭のアドレスがわかればメンバのアドレスなんてわかるだろ。
アラインメントを考慮して全メンバ分手計算するんでしょうか?
ミスりそうだし、なにより面倒だと思うんですが。。
> 割り込みを扱う以上グローバル変数は避けては通れん。
その負担を少しでも減らせないかな〜と良いアプローチがないか探してますです。

やりたいことが漠然としてたんですけど、文章書いてるうちにまとまってきました。
1.200程あるグローバル変数を構造体で10個程度にグループ分けしたい。
2.グローバルである必要のないものにはがんがんstaticをつけてファイルスコープに限定したい。
3.でも1,2をやるとMAPファイルにアドレスが出力されないので、通信で変数参照したいときに
 アドレス調べるのがめんどい&間違えそう。
4.ということで構造体メンバ、およびstatic変数のアドレスを楽に間違いなく取得する方法探してます。

長文ゴメソ
0289くーみんNGNG
>>288
各タスクのタスクエントリでAUTOで構造体宣言を行えばいいのよ。
で、後は構造体のポインタをグローバル変数でタスク内に公開するの。
ヘッダを工夫すれば隠蔽できるし、スタックポインタの先頭に配置されるから
デバッグでも困らないわ。結構重宝する主婦の知恵ね。
0290デフォルトの名無しさんNGNG
>>287 reallocはとりあえずおいといてだな 文字列勉強しなおした方がいいぞ(;´Д`)
0291デフォルトの名無しさんNGNG
>>287
つーか、マルチポスト。
0292くみこNGNG
>>287
K&Rを5万回復唱しろ。
0293デフォルトの名無しさんNGNG
>>269  結局問題はそのデバッカなんだろ?


アセンブル後のリストからマップファイルの出力と突き合わせてstatic領域の定義を
グローバルequ文に拾い出すツール作ればいいだろ

 組込系は 自分で必要なツール作るのが基本だよ
0294デフォルトの名無しさんNGNG
300H用のHIMでは、mapファイルには確かにstatic変数のラベル情報は入ってないけど、absファイルには埋め込まれているようだ。
解析すれば拾い出せるかも!?
0295デフォルトの名無しさんNGNG
>>269 ちなみにデバッガなに使ってるの?
0296デフォルトの名無しさんNGNG
objファイルには構造体のメンバ名も埋め込まれている。
だからこれも解析すれば道は拓けると思う。

大体PARTNERでは当たり前のようにみれるんだからな。。
0297269NGNG
>>293 >>295
デバッガは「HP Debug User I/F」ってやつです。

でも今回問題としている、「通信で変数を参照したい」ってのはこのソフトでのことではないです。
えと、現地でデバッグ&コンパイル&フラッシュ書き換えってことがあるらしいです。
その時エミュレータなんて使えないから以下のようなプログラムを利用してデバッグします。
シリアルケーブルで実機とノートパソコンをつないで、
例えばパソコンからターミナルソフトで「watch 0C000123 word<CR>」って送ると、
実機は「0C000123 03E8<CR>」ってな感じで変数の値を返すように組んであります。
実装は以下のようなイメージです。(実際はもっと泥臭いです)
switch ( size ) {
case 1:
  Transmit("%08X %02X\r", address, *(byte *)address);
  break;
case 2:
  Transmit("%08X %04X\r", address, *(word *)address);
  break;
case 4:
  Transmit("%08X %08X\r", address, *(dword *)address);
  break;
default:
  Transmit("error\r");
}
ということで、デバッグするには変数のアドレスが必要なのですが、
static変数や構造体メンバのアドレスはどうすれば簡単にわかるだろう?ってことです。

>>289
まいった、、全然わからんです(;゚Д゚)
制御においてのタスクって何を表してるんでしょう?関数?モジュール?

>>293
objと一緒に吐かれるlstを見てみましたが、どうなってるのかようわからんかったです。。

>>294 >>296
期待をもってバイナリエディタとにらめっこしてみます。

またまた長文ゴメソ…
長いんでsage
0298くーみんNGNG
>>297
名前の衝突を避けるためにstatic宣言している変数がリンクリストファイルには
現れないんだけれどデバッグでは位置を知る必要があるって事ね。よくあるわ。

一つはstatic宣言でアサインされる領域を固定にする方法があるわね。
リンカのメモリ配置方法は法則があるから、事前にデバッガで調べておくと推測できる
ようになるわ。これはリンカオプションで実現できる事が多いので調べてね。

もう一つはμITRON等、タスク空間が分かれている場合等で、タスクループに入る前に
ローカル宣言する方法があるわね。
ローカル変数とはいえスタックポインタ上でアドレス固定となってしまうからアドレス
算出は安易に行えるわ。でも結構ソースをいじる事になりそうでお勧めできないわ。

Transmit()のような関数が実装されているのなら直接変数を吐き出すコードを埋め込ん
でおけばいいんじゃないの?現場では。
0299デフォルトの名無しさんNGNG
>>288
>どうもイメージがつかめないです。頭悪くてごめんなさい。
>えと、構造体の中でさらにグループ分けして、そのグループごとの先頭アドレスを
>切りのいいとこに合わせるためにchar配列を入れとくってことですか?って違うか。。

ちょっと違います。
構造体の中でさらにグループ分けして、そのグループごとの先頭に
検索用の文字列を埋め込みます。
目的のメンバの値を調べたいときは、そのグループの文字列をメモリダンプ
から検索して、先頭アドレスを見つけます。
そこから、暗算で目的のメンバのアドレスを算出します。
バカみたいな方法ですみません。
アドレス解析ツールを作りたかったのですが難しくて出来ませんでした。
うちのところは、現地から自動ダンプされたデータしか来ないので
この方法をとってますが、そちらのデバッカじゃ使えそうもないので
忘れてください。せめてメモリ検索ができればいいんですけど。
0300269NGNG
>>298
> 名前の衝突を避けるためにstatic宣言している変数がリンクリストファイルには
> 現れないんだけれどデバッグでは位置を知る必要があるって事ね。よくあるわ。
そのとーりです。ああ、、気持ちが伝わるって嬉しいことだなぁ。。( ´∀`)
えー、前者の方はまた明日調べてみます。ありがとー。
後者の方ってなにかOS使った場合なのでしょうか?
マイコンにOSってどんな環境になるのか想像もつかんです。う〜ん、やってみたい。
> Transmit()のような関数が実装されているのなら直接変数を吐き出すコードを埋め込ん
> でおけばいいんじゃないの?現場では。
調べたいとこがあったらそこにデバッグコードを挿入しろって解釈であってますか?
現在は調べたいstatic変数や構造体メンバがあると、デバッグ用のグローバル変数に
代入するコードを挿入してそれを前述のコマンドで見るようにしてます。
でも開発環境の入ったノートパソコンがない時とか、開発室と実験室(別館)を何度も
往復するハメになるので、再コンパイルが必要ない方法を見つけたいです。

>>299
なるほど、理解しました。
メモリダンプする通信コマンド追加すればうちでも使える場合がありそうです。
> アドレス解析ツールを作りたかったのですが難しくて出来ませんでした。
これがあれば何もかも解決するんですよね。
自分で作ろうにもかなり難しそうでひるんでます。
> せめてメモリ検索ができればいいんですけど。
これかなりいいですね。実装できないか検討してみます。
処理を占有するわけにはいかないから、かなり検索に時間かかりそうだけど^^;
いろいろアイデアありがとうございました。
0301デフォルトの名無しさんNGNG
質問です。
DSPプログラミングについてですが、
MAC命令を実行するとはじめの実行時だけ3サイクルかかってあとは1サイクル
らしいのですが、
MAC X0,X0
MAC X1,X1
MACD X2,X2
このようなコードをループさせた場合
最初の実行には9サイクルかかって次からは3サイクル
なのでしょうか?それとも最初に5サイクルかかって
(はじめのMAC命令のみ3サイクル)次からは3サイクルという
風に動作するのでしょうか?
0302666NGNG
ありゃ?何か変になった。
MAC X0,Y0
MAC X1,Y1
MACD X2,Y2
こんな感じですね。
0303デフォルトの名無しさんNGNG
スレの流れ完全無視、しかも荒れそうな話題で申し訳ないんだけど、
スレタイトルの食い込みという言葉に反応して質問です。


組み込み系で Java を使う事にはどんなメリットがあるのでしょう?
プログラマが確保しやすいくらいしか思いつきません。
技術的なメリットってあるのですか?
VM の上で動くとか、ライブラリが充実しているとか、オブジェクト指向である
とかいった Java の特徴が生かされるような分野なのでしょうか?
0304くみこNGNG
>>301
どういうループなのか知らないけど、ディレイドブランチで最適化された
ループなら1回目のMAC X0,X0だけ3サイクルで後は全部1サイクルに
なりそうだけど。
ていうかそんなコアな話題ならどこのなんていうDSPなのかくらい書いて
欲しいのよね!
0305くみこNGNG
>>303
>>27-31
0306302NGNG
>くみこさん
ありがとうございます!最初だけ3ですね!
あとどこのDSPだかわからないです、ごめんなさい。
0307くみこNGNG
>>306
だから「ループが最適化されてるなら」って書いてあるでしょ!
どこのなにかわかんなきゃループが最適化されてるかどうかもわかん
ないじゃない。
データブックくらいないの?
0308デフォルトの名無しさんNGNG
最近お勧めのCPUは何かな。
ベクタ定義が楽な奴。
漏れはSH2が使いやすかったけど他に何かある?
0309デフォルトの名無しさんNGNG
>>305
で、何かメリットがあるのでしょうか? 設計がし易いから?
それともそういう次元の話ではないという事でしょうか?
逆に、実行速度が遅いという Java の欠点はデメリットとならないのでしょうか?

いろいろパンフ等を見てみたりしているのですが、Java だぜ凄いだろ!
という調子の説明が多く、何故 Java なのかという切り口がありません。
結局 Java を謳っているのは技術的な視点からではなく、マーケティング的な
視点からなのでしょうか?
0310名無しサンプリング@48kHzNGNG
すいません。
組み込みの人達って、数学や物理やってるんですよね?
電磁気、電気回路、電子回路、PLD・・・。とか。
0311デフォルトの名無しさんNGNG
>309
組込みでJAVAを使うといっても、本当にどうなっても良い領域で
しか動作させていない。
メリットとしてはインターフェースガ同一ならばチップの違いはJAVA-VMが吸収する。
早い話が、どうでも良い上っ面の部分を誰でも書けるから。
0312302NGNG
最適化されてる場合のみですね。はい。
0313くみこNGNG
>>309
前にもどっかで書いたけど、Java厨を投入できるのでやっつけ仕事向き。
シビアなリアルタイム制御には不向き。
0314デフォルトの名無しさんNGNG
>310
組込みといっても分野は広い。
あんたが言ってるのはワンチップマイコン系の制御分野だな。
そっちはハード寄りなので回路の動きが解った方が良い。
0315デフォルトの名無しさんNGNG
Javaはつかわん、処理時間の計算がでけん、
マンマシンとかネットワークの上位とかではつかうかもね
でも、VMを乗せるメリットはあんまないかも、ROM、RAMの
制限がつらい。
0316デフォルトの名無しさんNGNG
組み込みJavaのメリット

セキュリティ/メモリ保護
たとえばネットワーク越しにプログラムをロードしたり
してもコードベリファイやってサンドボックス入れとけば、
バグまたは意図的にメモリ壊されたりしない。
C/C++だったらユーザーが作ったプログラムは、
メモリ空間分けないと怖くて実行できない。

アーキテクチャー独立
CPU/OSの選択肢が多い。
ゲームとかブラウザとかプロトコルスタックとかの開発者は
売り込み先が増やせる
J2SEと同じ環境でクロス開発もできる。

あと同じ様なコードだったら32bitRISCよりバイトコードのサイズが
小さくなるとおもうけど、クラスライブラリは肥大傾向になるし
メモリ消費はデカイから相殺。
0317アホンダラスNGNG
>>316
>バグまたは意図的にメモリ壊されたりしない。
いままさに組み込みJavaで頭悩ませてるんだけど・・・
メモリ破壊されまくり。
0318デフォルトの名無しさんNGNG
>>317
食い荒らされてメモリの破片だらけになるんだよね。
0319デフォルトの名無しさんNGNG
>>317
まぁ、原理的にはってことで。
そりゃあプラットフォームの実装がバグってたり、
わざと穴開けてればしょうが無い。
0320くーみんNGNG
組み込みJAVAのメリットというのはUMLツールを用いたコードのスケルトンの
自動生成ね。でもそのツールのファーストユーザーだったりする事が多いから、
腰が引ける事が多いわ。
ポイントはJAVAを使うタスクを一番複雑なタスク(大抵の場合はユーザーI/F層ね)
に限定して後はCで実装する事よ。こうするとメモリ破壊をしている理由がある程度
判ってデバッグしやすいわ。でも個人的には懲りているかなぁ。
0321デフォルトの名無しさんNGNG
>316
そもそもポインタの概念がない言語なんだからアドレス操作できない。
せいぜい確保した領域を参照するだけだ。
でも組み込みなんだから、それじゃお話にならんだろ。
0322デフォルトの名無しさんNGNG
>>321
JNIに頼んで直接いじれるクラスをもらうっすよ。
0323デフォルトの名無しさんNGNG
>>321
メモリリード・ライトメソッドを持ったスタブクラスを作って、
Cで書いた実装をJVMと一緒にコンパイルしちゃえば
ポインタもどきするのは簡単だけどね。(Sunに怒られるかも)

>>320みたいに、下層はRTOSが担当して上位アプリはJVMって
いう今主流の方法が一番無難かな?
(なんかnativeOS/JVM界面で色々問題が起きている気もするが)
ドライバとかでもUSBホストドライバの上位とか結構複雑だから
Javaで書いても良さそう

個人的にはXpressoとかAll Java solutionに惹かれてるんだけど
0324デフォルトの名無しさんNGNG
>>322
J2ME/CLDCはJNIが無いために、
かえってJVMに色々組み込んで穴を増やしそうな気がする。
0325デフォルトの名無しさんNGNG
>>320
組み込みでCASEツールって流行ってるの?

時代はXPで、分厚いドキュメントよさようならっ、
になって欲しい
0326デフォルトの名無しさんNGNG
>>321
Javaのreal-time拡張の仕様書(JSR-1)を眺めたら、
メモリ管理クラスが色々あった。
class RawMemoryAccessとか
class PhysicalMemoryFactoryとか、
こういうのに沿って組み込んじゃえばいいんだろうけど、
ライセンスとか面倒なんだろうな。

遊びだったら気軽にCommunity Source License使って、
色々できるけど
0327デフォルトの名無しさんNGNG
>>322->>326
組込みでは、DMA,割り込み,例外処理を使って正確な時間で高速な処理を
させているんだよ。Cで書いたコードでも高速にできる余地があれば
コンパイラが吐いたアセンブラのコードを修正する。
このような用途には当然JAVAは使えない。
JINIでポインタを書けると言ってもそれでドライバを書く気にはならんだろ。
せいぜいミドルウェアから上のアプリケーションだな。
でもJAVAは処理が遅いのでボトルネックになるだろう。
0328デフォルトの名無しさんNGNG
>>327
タイポとは思うけど…
×JINI ○ JNI
だよね?
0329くーみんNGNG
>>320
CASEツールはホントの上流工程で使うわよ。でもCASEツールを使っての修正は基本的にやらないわ。
理由は多分みんな判ってくれると思うけれど組み込みが泥臭い世界だからよ。
この工程でフォロー不可能なバグ出したら工作室の裏に呼び出されて正座させられて
説諭されるわ。私も何度泣かされた事やら(ノ><)
0330デフォルトの名無しさんNGNG
普通のプログラマ(C/C++、汗の経験無し)にも、組み込みは作れますか?
回路設計、アナログ、デジタルの知識が前提ですか。
あと、組み込みの仕事は一般的にどう思われているのか、
組み込みプログラマはどう思ってるのか、
給料的には、将来的には(人月5万のインド人に負けたりしますか?)等教えて下さい。
0331デフォルトの名無しさんNGNG
>>330
経験が無ければ、積めばいい。
回路は、TTLが分かればいいよ。
一般的には縁の下の力持ちと考えられてる
こっちとしてもその自負がある。
給料はインド人には勝ってる。
■ このスレッドは過去ログ倉庫に格納されています