mbed-wifi-exampleを動かしてみた
本記事は、同様の新しい記事があります。
新しい記事はこちらです。
MbedプラットフォームはAZ3166に対応しているみたいですが、
MxChip Board Support - Question | Mbed
情報が全然見当たらない。orz
GitHubにMXCHIPがサンプルを公開していたので、、、これが動くか(動かせるか)試してみました。
1回目
README.mdを参考に、mbed-cliでimportします。
C:\mbed>mbed import https://github.com/MXCHIP/mbed-wifi-example [mbed] Importing program "mbed-wifi-example" from "https://github.com/MXCHIP/mbed-wifi-example" at latest revision in the current branch [mbed] Adding library "emw10xx-driver" from "https://github.com/MXCHIP/mbed-emw10xx-driver" at rev #254df6a98312 [mbed] Adding library "mbed-os" from "https://github.com/MXCHIP/mbed-os" at rev #c1a665816660 C:\mbed>
何事も無く終了。
続いて、コンパイルします。
C:\mbed>cd mbed-wifi-example C:\mbed\mbed-wifi-example>mbed compile -m AZ3166 -t GCC_ARM Building project mbed-wifi-example (AZ3166, GCC_ARM) Scan: . Scan: FEATURE_BLE Scan: FEATURE_COMMON_PAL Scan: FEATURE_LWIP Scan: FEATURE_UVISOR Scan: FEATURE_ETHERNET_HOST Scan: FEATURE_LOWPAN_BORDER_ROUTER Scan: FEATURE_LOWPAN_HOST Scan: FEATURE_LOWPAN_ROUTER Scan: FEATURE_NANOSTACK Scan: FEATURE_NANOSTACK_FULL Scan: FEATURE_THREAD_BORDER_ROUTER Scan: FEATURE_THREAD_END_DEVICE Scan: FEATURE_THREAD_ROUTER Scan: FEATURE_STORAGE Scan: mbed Scan: env Compile [ 0.3%]: iperf_cli.c [Warning] cpu.h@21,0: "BYTE_ORDER" redefined [Error] sockets.h@317,8: redefinition of 'struct timeval' [Error] mico_socket.h@165,5: conflicting types for 'select' [ERROR] In file included from ./emw10xx-driver/mico/net/LwIP/lwip-sys/arch/cc.h:21:0, from ./emw10xx-driver/mico/net/LwIP/lwip-ver1.4.0.rc1/src/include/lwip/arch.h:43, from ./emw10xx-driver/mico/net/LwIP/lwip-ver1.4.0.rc1/src/include/lwip/debug.h:35, from ./emw10xx-driver/mico/net/LwIP/lwip-ver1.4.0.rc1/src/include/lwip/opt.h:46, from ./emw10xx-driver/mico/net/LwIP/lwip-ver1.4.0.rc1/src/include/lwip/sockets.h:37, from ./emw10xx-driver/mico/include/mico_socket.h:21, from ./emw10xx-driver/mico/include/mico.h:38, from .\app\iperf\iperf_cli.c:17: ...
struct timeval
を再定義してエラー...。
2回目
ソースを見たところ、LWIP_TIMEVAL_PRIVATE
マクロで定義するかしないか指定できるようになっていました。
mbed_app.jsonのmacros
に下記を追加して、再コンパイルします。
"LWIP_TIMEVAL_PRIVATE=0"
C:\mbed\mbed-wifi-example>mbed compile -m AZ3166 -t GCC_ARM Building project mbed-wifi-example (AZ3166, GCC_ARM) ... +-----------------------+--------+-------+-------+ | Module | .text | .data | .bss | +-----------------------+--------+-------+-------+ | Fill | 406 | 15 | 132 | | Misc | 158909 | 2824 | 51169 | | drivers | 2607 | 4 | 164 | | features/filesystem | 627 | 0 | 0 | | features/netsocket | 3922 | 85 | 60 | | hal | 536 | 0 | 8 | | platform | 1927 | 4 | 297 | | rtos | 213 | 4 | 4 | | rtos/rtx | 8079 | 20 | 6874 | | targets/TARGET_MXCHIP | 2578 | 4 | 0 | | targets/TARGET_STM | 21876 | 0 | 1424 | | Subtotals | 201680 | 2960 | 60132 | +-----------------------+--------+-------+-------+ Allocated Heap: unknown Allocated Stack: unknown Total Static RAM memory (data + bss): 63092 bytes Total RAM memory (data + bss + heap + stack): 63092 bytes Total Flash memory (text + data + misc): 204640 bytes Image: .\BUILD\AZ3166\GCC_ARM\mbed-wifi-example.bin C:\mbed\mbed-wifi-example>
Warningはいくつか出ましたが、とりあえずコンパイル通りました。やった!
3回目
このサンプル、複数のサンプルが同封されていて、main()で呼び出す部分を変更して切り替える作りになっていました。
どれにしようかな、、、
一番単純そうなmbed_wifi
を動かすことにします。
int main( void ) { RUN_APPLICATION( mbed_wifi ); return 0; }
mbed_wifi
は、Wi-FiアクセスポイントのSSIDとパスワードが必要なので、mbed_app.jsonのwifi-ssid
とwifi-password
に書いておきます。
"config": { "wifi-ssid": { "help": "WiFi SSID", "value": "\"aterm-3b8988-g\"" }, "wifi-password": { "help": "WiFi Password", "value": "\"p@ssw0rd\"" } }
で、コンパイルを。
C:\mbed\mbed-wifi-example>mbed compile -m AZ3166 -t GCC_ARM
実行
コンパイルで出来上がった.binファイルをAZ3166ドライブへコピーすれば、実行されます。
C:\mbed\mbed-wifi-example>copy .\BUILD\AZ3166\GCC_ARM\mbed-wifi-example.bin d:\ 1 個のファイルをコピーしました。 C:\mbed\mbed-wifi-example>
実行結果はこちら。
WiFi example Scan: [493][SYSTEM: .\emw10xx-driver\mico\system\system_misc.c: 230] Kernel version: 31620002.049 [501][SYSTEM: .\emw10xx-driver\mico\system\system_misc.c: 233] MiCO version: 3.0.0 [508][SYSTEM: .\emw10xx-driver\mico\system\system_misc.c: 235] Wi-Fi driver version wl0: Sep 10 2014 11:28:46 version 5.90.230.10 , mac C8:93:46:84:19:CC Network: aterm-3b8988-g secured: WPA2 BSSID: 1C:B1:7F:bf:61:ce RSSI: -63 Ch: 5 1 networks available. Connecting... [9332][SYSTEM: .\emw10xx-driver\mico\system\system_misc.c: 73] Station up Success MAC: c8:93:46:84:19:cc IP: 192.168.0.6 Netmask: 255.255.255.0 Gateway: 192.168.0.1 RSSI: -56 Sending HTTP request to www.arm.com... sent 38 [GET / HTTP/1.1] recv 64 [HTTP/1.1 301 Moved Permanently] Done [9733][SYSTEM: .\emw10xx-driver\mico\system\system_misc.c: 77] Station down