[転載禁止] ARM mbed【IoT】©2ch.net
__________
/━━━━━━━━━ \
|┃| ̄ ̄|. 〇 〇 [大月]┃|
|┃| ̄ ̄|| ̄ ̄ ̄ ̄ ̄ ̄|┃| プオーン!!!
|┃|__||______|┃|
|┃ JR ┃|
|┗━━━━━━━━━┛| \('A`)/ ミ
| ━━ ━━ ━━ | ( ) ミ
| [中央.特快] | └└ミ
| \_/ |
| 〇 ━━━ 〇 |. ┌────────────
|___________|. │
│ │[=.=]| |.. │
└─────────┘ │
/ \ │ >>8
MONOist見たけど、FreeRTOS比でTCP/IPスタックが付く位しか、差異が分からん。
後発でわざわざやるからには、何かあるんだと思うのだけど。 >>10
どうかなぁ〜?
国内で標準だった iTRON、今は見る影も無いし。
海外は各ベンダーのオリジナルOSに、サードパーティーからわんさか。
ベンダーがどれだけ本気になるか…。
ただ、CMSISを先に出したのは、ARM社の戦略だったんだな。
いつの間にか、外堀が埋まってるし。 STmicroのNUCLEO-F411REをポチった。これでmbedデビューしてみるよ。 >>14 お、おう、ありがと。まさかの激励されちゃって、ちょっと感動した。 俺はNXP LPC1768にした。
Arduinoしようかと思ったんだけど、どうもあれはC言語とちょっと違うからやめといた。 >どうもあれはC言語とちょっと違う
まあC++だからC言語とはちょっと(どころではなく)違うけど、Arduinoのサンプル
プログラムなんかはArduino言語というC++を機能限定したサブセットの範囲で
組んでるからmbedよか初心者には易しい気がするが。 Arduino言語といいつつ、中身はただのC++だからなぁ
つーか、mbedもC++なんだけどな…
まあ、Cがわかればどうにでもなるよ そだね。今にして思えばそんなに難しい制御はやらないからどっちでもよかったけどね。
Arduinoのサンプルコード見て「ちょっと違うな」と思ってmbedに気持ちが傾いちゃったのだ。
こっちの方が正統派っぽいかなって思って。
まぁ最終的にはここら辺を読んでから決めたんだけど。
ttp://developer.mbed.org/users/okini3939/notebook/mbed_vs_arduino/ 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で処理量を減らせないか考える mbedの初心者丸出しの
質問ってここに書いてもおk? ネットワークオーディオもどきを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';
わかっててやってんの?