[転載禁止] ARM mbed【IoT】©2ch.net
1 :
774ワット発電中さん:
新規スレか、だれも居ない
3 :
774ワット発電中さん:2014/10/28(火) 01:29:59.45 ID:MKf4q1Vj
スレたてた人が不在なら何の話題をしていいやら?
誰かmbed基板リストをうp
6 :
774ワット発電中さん:2014/10/29(水) 21:48:50.78 ID:Zh8ACj4w
__________
/━━━━━━━━━ \
|┃| ̄ ̄|. 〇 〇 [大月]┃|
|┃| ̄ ̄|| ̄ ̄ ̄ ̄ ̄ ̄|┃| プオーン!!!
|┃|__||______|┃|
|┃ JR ┃|
|┗━━━━━━━━━┛| \('A`)/ ミ
| ━━ ━━ ━━ | ( ) ミ
| [中央.特快] | └└ミ
| \_/ |
| 〇 ━━━ 〇 |. ┌────────────
|___________|. │
│ │[=.=]| |.. │
└─────────┘ │
/ \ │
mbed osって何?
ぐぐった?
>>8 MONOist見たけど、FreeRTOS比でTCP/IPスタックが付く位しか、差異が分からん。
後発でわざわざやるからには、何かあるんだと思うのだけど。
10 :
774ワット発電中さん:2014/11/06(木) 05:01:38.57 ID:mtPH9lNj
OSの標準化だよ
>>10 どうかなぁ〜?
国内で標準だった iTRON、今は見る影も無いし。
海外は各ベンダーのオリジナルOSに、サードパーティーからわんさか。
ベンダーがどれだけ本気になるか…。
ただ、CMSISを先に出したのは、ARM社の戦略だったんだな。
いつの間にか、外堀が埋まってるし。
STmicroのNUCLEO-F411REをポチった。これでmbedデビューしてみるよ。
>>14 お、おう、ありがと。まさかの激励されちゃって、ちょっと感動した。
16 :
774ワット発電中さん:2014/11/16(日) 21:44:44.65 ID:hjDEEhad
俺はNXP LPC1768にした。
Arduinoしようかと思ったんだけど、どうもあれはC言語とちょっと違うからやめといた。
>どうもあれはC言語とちょっと違う
まあC++だからC言語とはちょっと(どころではなく)違うけど、Arduinoのサンプル
プログラムなんかはArduino言語というC++を機能限定したサブセットの範囲で
組んでるからmbedよか初心者には易しい気がするが。
Arduino言語といいつつ、中身はただのC++だからなぁ
つーか、mbedもC++なんだけどな…
まあ、Cがわかればどうにでもなるよ
20 :
774ワット発電中さん:2014/11/17(月) 01:50:18.14 ID:eqmg6Ylt
これ使ってQuadCopter飛ばせる?
mbedのサイト内を検索すると作製事例らしきものは出てくるが…。
>>19 サンプルコードはどっちかっていうとCという観点でみればArduinoのほうが正統派だと思うけど
Arduinoのサンプルコード見てmain関数が見あたらなかったから
「ありゃ?これはC言語風の何か別物なのか」と思ってしまったのだよ。
main関数はライブラリーの中にありまぁす
int main(void)
{
init(); //割り込みやらデバイス初期化
setup(); //userプログラム
for (;;)
loop(); //userプログラム
return 0;
}
どこかにスタートアップルーチンみたいなものはあるのだろうと思ってたけど。
それを知ったのはmbedを使った試作品ができあがってからだった。
いつも16bitのマイコンで開発してた俺にとって32ビットARMマイコンと
オンラインIDEの組み合わせはやたらかっこよく感じた。
たいした制御をやってるわけじゃないけど開発してて久々に楽しかった。
Linuxのユーザー空間メインで仕事してて組み込み詳しくないのですが、勉強でやってみようと思ってます
これを使ってblutoothとかwifi繋いでみたいのですが、処理量がよくわからなくて、どの石にしようか悩んでます
個人で手に入る無線基板だとstm32とか載って技適通してるので最低限の機能は実現済みで、アプリケーションcpuとしてモデムくらいと見るのがいいですかね?
転送量も分あたり数百キロ程度であれば、cortex-M0でも十分なのかなあ…
HRM1017買ってBLEやって、Nanoもらって、専用基板作りたくなってきてる<- イマココ
>>26 処理量?
データ量 × 必要なクロック数
で必要なCPUパワーを見積もるのが最初
次がDMAで処理量を減らせないか考える
29 :
774ワット発電中さん:2015/02/04(水) 11:12:30.19 ID:PRaz8gfY
mbedの初心者丸出しの
質問ってここに書いてもおk?
いいんじゃね??
32 :
774ワット発電中さん:2015/02/16(月) 13:56:55.38 ID:Mr3fUiZI
ネットワークオーディオもどきをmbedで作りたくてあれこれしてるんだけど
テストとして公式のサンプルプログラムを触ってて理解できない事があるんだけど
(省略)
char out_buffer[] = {72,101,108,108,111};
Endpoint echo_server;
echo_server.set_address(ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT);
sock.sendTo(echo_server, out_buffer, sizeof(out_buffer));
char in_buffer[256];
int n = sock.receiveFrom(echo_server, in_buffer, sizeof(in_buffer));
in_buffer[n] = '\0';
printf("%d\n", in_buffer);
sock.close();
eth.disconnect();
while(1) {}
}
で、サーバー側はHelloと表示されるんだが
返ってきたクライアント側では268466888と表示されてしまう。
printf("%s\n , in_buffer);とすればちゃんとHelloと表示される。
どうすれば数字のまま出力されるんでしょう?
>>32 >char in_buffer[256];
>int n = sock.receiveFrom(echo_server, in_buffer, sizeof(in_buffer));
>
>in_buffer[n] = '\0';
わかっててやってんの?
>>33 わかっててやってません。
とりあえず
in_buffer[n] = '\0';
を削除してみてもやっぱり268466888なんですが。
マイコン等を触りだしたのが最近で、プログラム自体も最近はじめたので
アホみたいに素人くさい間違いなんだとは思いますが。
int n = sock.receiveFrom(echo_server, in_buffer, sizeof(in_buffer));
in_buffer[n] = '\0';
というのは何個目の配列にヌル文字を代入するのか、という部分だと解釈してあってますよね?
>>34 Amazonとかで評判のよさげなCの入門書1冊買って読むとかすることをお勧めするよ
>>34 エラーの場合は-1を返すって書いてなかった?
>>32 printf で %d 使ってる行がなにしてるのかわかってる?
38 :
32,34:2015/02/16(月) 22:07:54.83 ID:2JGAaV1i
ID変わってますが、32および34です。
>>35 実はもう一冊読んでたりします
>>36 エラーなんですか
>>37 一応は。
えーとつまり
変換指定子が間違ってますよ
という事でおkなんですかね?
int型じゃないんだから
%dでやりたいなら
一度キャストしろよ、という事なんでしょうか?
書いてて思ったんですが、これビッグエンディアンとリトルエンディアンとかで
もう一度派手に躓きそうな気がしてきたw
あとサークルバッファでも。
手元にmbedが無いので明日また悩んでみます。
あざーす
>>38 エラーの時配列の外に書きにいかないかな?
サークルバッファは +1 してand とればよろし
>>38 >実はもう一冊読んでたりします
書かれてることを理解してないかハズレの本を買ってしまったかのどちらかだわ。
ちょっと今のあなたは何が分かってないかも分かってないレベルだからまずは人に訊く前に評価のある本でじっくり勉強するべき。
>>38 in_bufferはアドレスだから、%dで出てるのは、そのアドレスの値
それを意図してるわけじゃないでしょ?
んで、あくまでもアドレスなので、キャストしてもアドレスが変化するわけでもなく、出てくる値はかわらない
42 :
32:2015/02/17(火) 10:27:14.94 ID:L3yOYKiQ
>>41 あー
あーそうだよ。
やったわ、本での練習問題でやったわ
ポインタと似てるけど違うでしょ?っていう練習問題でやったよ
どこを勉強しなおすべきか分かったよ
ありがとー
43 :
32:2015/02/17(火) 13:44:38.30 ID:L3yOYKiQ
質問するだけしておいて
結果を書かないのもアレなので
in_buffer[n] = '\0';
for (cnt = 0; in_buffer[cnt] != '\0' ; cnt++)
{
printf("%d ",in_buffer[cnt]);
}
printf("%s\n", in_buffer);
}
と書いて、意図した通りに出来ました。
mbedじゃなくてCの初歩な質問だったのにレスしてくれた人はありがとう。
まぁ問題は、俺がやりたいのはADC通した音声データを別のmbedに送って
そこで音声を流すという物であって
今回やった事がなんの役にたつのかという疑問で頭がいたいですが。
道が遠いわ
>>43 >in_buffer[n] = '\0';
これ大丈夫だと思ってる?
45 :
32:2015/02/17(火) 15:02:09.64 ID:L3yOYKiQ
>>45 >mbedのサンプルプログラムに書いてあるそのままなんですが
>問題があるような使い方なんですか?
あるよ
47 :
32:2015/02/17(火) 16:36:16.14 ID:L3yOYKiQ
んー
考えたけどわからん。
文字列を送る予定が無いので問題なさそうな気がするんだけども
気になるのでどういう事か教えてもらえますか?
>>47 >んー
>考えたけどわからん。
考えが足らないんじゃないの
49 :
774ワット発電中さん:2015/02/17(火) 17:09:02.73 ID:2BFUg0WR
やっべ
俺も何が問題かわかんね、やっべ
51 :
774ワット発電中さん:2015/02/19(木) 11:40:14.41 ID:VbhMR7d6
>>39 それ、バッファサイズが2のn乗という大前提がないと成立しませんから。
>>39 配列の外に書くのはエラーの時だけじゃないだろ。
n が 256 やエラーの -1 だった時、in_buffer で定義してある外に \0 を書き込んでしまうこと。
たぶん、そのサンプルプログラムはバッファぎりぎりのデータが来ないことを想定している、
もしくはサンプルだから気にしてないだけだと思う。
配列は 0 から指定分の数予約される。
char in_buffer[256];
なので、
アクセスできるのは 0 〜 255 まで。
int n = sock.receiveFrom〜
の戻り値は読み込んだバイト数なので、最大の 256 バイト読み込めば、 n は 256 。
つまり、アクセス可能な 255 から 1 後ろに \0 を書き込んでしまう。
まぁ、初心者だしとりあえずは
>>39 の方法で
char in_buffer[256+1];
で、宣言し
int n = sock.receiveFrom(〜, 256);
にしておけばいい。
54 :
774ワット発電中さん:2015/02/23(月) 18:48:48.02 ID:E/3XZPTW
よく考えると
自分が書いたわけでもないコードに
しかもサンプルコードにいちゃもん付けられて
しかも馬鹿にされ教えてくれないというw
酷えことしてるよなw
性格悪すぎるだろw
初心者のころなんて本で読んだ知識が
なぜか作る段階でスッポ抜けるなんて多々あるから
こんなもんだとは思うけどね
本家の掲示板の方は上から目線で説教されたあげくに何処其処の理解が足りてない
すら教えてくれないから、まだマシなんだろうけどもw
おかしい箇所を指摘してくれるのは十分すぎるほどの親切だと思うがなあ。
初心者です分からないところがありますって相談なら、じゃあ勉強する助けをしてやるかってのは
相談者も望んでるとこなんじゃないかね。
物を作るプロセスを学ぶところはどうでも良くて完成品が欲しいって話なら、mbedなんて自分で
いじってないでどっかに外注でも出せばいい筈だし。
>>55 この場合、問題は
自分が書いたわけでもない部分でって所じゃなかろうか
自分が書いた所だったら
まさしくその通りで、どこそこの理解足りてないぜ
そこ勉強しなおせよ
っていう方が嬉しい、じゃなきゃmbedなんて触らないしなw
今回の場合だと、俺なんかはいやソコじゃないっすとか思っちゃうな。
いやしかし、自分が想定もしていない問題点を教えてくれてるという点ではアリか?
でもまぁせっかく過疎ってるスレなんだし、もうちょっと優しくしようぜw
mbed V3 のmbed OSってどこまで進んでいるの?
ライブラリがNode.jsのNPMスタイルになるらしいけれど、デベロッパー側の仕様は決まったのかな?