Standard SDK: [RTL8195AM] SSL – 使用Ameba来发送简单的HTTPS请求
材料准备
- Ameba x 1
范例说明
这个范例里,我们会用 AT COMMAND 将 Ameba 连接上 WiFi, 然后发送一个简单的 HTTPS 请求到 www.github.com 来获取网页相关信息。
- 修改 SDK 的 flag 开启 SSL 功能
在 platform_opts.h ($ sdk \project\realtek_ameba1_va0_example\inc)中修改:
#define CONFIG_SSL_CLIENT 1
将 CONFIG_SSL_CLIENT 设置为1。 - Ameba 8710/8711AF 用户更改 SSL 文件的位置 对于使用 8710/8711 的用户,需要将 SSL 的相关文件从 SDRAM 移到 SRAM。 通过 IAR 打开 $ sdk \project\realtek_ameba1_va0_example\EWARM-RELEASE 下的 project.eww 在 workspace 窗口中,将 ”polarssl” 和 ”ssl_ram_map” 两个文件夹从 ”SDRAM” 中拖至 ”Project-Debug” 下。
- 在 IAR 中 make 编译程序并下载到 Ameba 中 点击project目录下的make,或点击IAR右上方的“make”快捷键,对程序进行编译,下载程序到Ameba中。
- 在 UART console 上发送 AT Command 进行 SSL 连线
首先使用AT Command 将Ameba连上WiFi
- ATW0=SSID (设置WiFi的名称)
- ATW1=PASSWARD (设置WiFi的密码,若无密码,可跳过这一步)
- ATWC (进行WiFi连线)
#define CONFIG_EXAMPLE_WLAN_FAST_CONNECT 1
Ameba 将会把 WiFi 的信息储存在 flash 中,reset之后会自动对上次保存的 WiFi 信息进行连线。 然后就可以使用 AT Command 与 SSL 的服务器进行连线了: ATWL=HOST_NAME 此处以www.github.com为例:
常见错误及原因
- net_connect returned -86 請检查WiFi是否连线正常,以及确认WiFi是否可与internet正常通讯。
- net_connect returned -68 請确认连线的服务器是否支持SSL。
- ssl_handshake returned -0x7200 可能是该服务器设定的file 大小超过了默认的SSL_MAX_CONTENT_LEN 4096的范围,可到 config_rsa.h ($ sdk\component\common\network\ssl\polarssl-1.3.8\include\polarssl)中,将 SSL_MAX_CONTENT_LEN 设置为可容纳file大小+digest,最大可设为16384。 例如连线 www.baidu.com, 需要将SSL_MAX_CONTENT_LEN 改为大于4419。
- ssl_handshake returned -0x2880 SSL MALLOC 失败,需要到 FreeRTOSConfig.h ($ sdk\project\realtek_ameba1_va0_example\inc)中将 configTOTAL_HEAP_SIZE 的值调大。
Realtek IoT/Wi-Fi MCU Solutions . All Rights Reserved. 使用条款