WM - W800 - SDK User Manual - v11

Download as pdf or txt
Download as pdf or txt
You are on page 1of 20

Machine Translated by Google

WM_W800_SDK User Manual

V1.1

Beijing Lianshengde Microelectronics Co., Ltd. (winner micro)

Address: 18th Floor, Yindu Building, No. 67 Fucheng Road, Haidian District, Beijing

Tel: +86-10-62161900

Company website: www.winnermicro.com

1
Machine Translated by Google

Document modification record

Version revision time Revision history Author review

V0.1 2019/9/25 [C]Create document Cuiyc

V0.2 2020/7/ 8Unified font Cuiyc

V1.0 2020/8/10 upgraded version number Cuiyc

V1.1 2020/11/5 Updated digital interface description Ray

2
Machine Translated by Google

Table of contents

Document modification record................................................ ................................................................. ................................................................. ... 2

Table of contents................................................. ................................................................. ................................................................. ............. 3

1Introduction ................................................ _ ................................................................. ................................................................. ........... 4

1.1 Overview................................................ ................................................................. ................................................. 4

1.2 Chip Introduction................................................ ................................................................. ..................................5

1.3 Basic features of SDK................................................ ................................................................. ............................. 7

2 SDK usage instructions................................................ ................................................................. .............................................11

2.1 Software Architecture................................................ ................................................................. .............................11

2.2 Directory Structure................................................ ................................................................. .............................11

2.3 Compile and connect...................................... ................................................................. .................................. 12

2.3.1 CDS project compilation...................................... ................................................................. ............................12

2.3.2 CDK project compilation...................................... ................................................................. ............................12

2.3.3 Command line compilation........................................ ................................................................. ............................13

2.3.4 Compilation results................................................ ................................................................. ............................. 13

2.4 Burning firmware................................................ ................................................................. ............................. 14

2.4.1 Burning via ROM........................................ ................................................................. .............................14

2.4.2 Programming via SECBOOT................................................ ................................................................. ............ 14

2.5 Program debugging........................................ ................................................................. .................................. 15

2.5.1 Firmware debugging information................................ ................................................................. ........................ 15

2.5.2 CK-LINK debugging................................................ ................................................................. .............................15

3
Machine Translated by Google

2.5.3 AT command debugging........................................ ................................................................. ............................16

2.6 development tools................................................ ................................................................. .................................. 16

2.7 Compilation tools................................................ ................................................................. .................................. 16

2.7.1 IDE development environment—CDS/CDK ........................................ ................................................................. ...... 16

2.7.2 GCC from the command line........................................ ................................................................. .............................16

2.8 Firmware generation tool................................................ ................................................................. .............................17

2.9 download tool................................................ ................................................................. .................................. 17

2.10 Debugging Tools................................................ ................................................................. .................................. 17

3Development Guide ................................................ ................................................................. ................................................................. . 17

3.1 WM_SDK startup method................................................ ................................................................. .............17

3.2 User program entry................................................ ................................................................. ............................18

3.3 Memory usage................................................ ................................................................. .................................. 18

3.4 FLASH layout................................................ ................................................................. ............................. 19

3.5 User parameter management................................................ ................................................................. ............................19

3.6 System parameter management................................................ ................................................................. ............................20

1 Introduction

1.1 Overview

This article mainly describes the functions and usage of the W800 software development kit (SDK), which integrates the W800 hardware driver (BSP),

Real-time operating system, TCP/IP protocol stack, WiFi protocol stack, BT protocol stack and other public modules can satisfy most application software

needs.

4
Machine Translated by Google

1.2 Chip Introduction

Figure 1 W800 chip architecture

ÿ Chip appearance

ÿ QFN32 package, 4mm x 4mm

ÿ MCU Features

ÿ Integrated 32-bit XT804 processor, operating frequency 240MHz, built-in DSP, floating point operation unit and security engine

ÿ Built-in 2MB Flash, 288KB RAM

ÿ Integrated PSRAM interface, supports up to 64MB external PSRAM memory

ÿ Integrated 5-way UART high-speed interface

ÿ Integrated 2 channels of 16-bit ADC, maximum sampling rate 1KHz

ÿ Integrated 1 high-speed SPI interface, supporting up to 50MHz

ÿ Integrated 1 SDIO_HOST interface, supports SDIO2.0, SDHC, MMC4.2

ÿ Integrate 1 SDIO_DEVICE, support SDIO2.0, maximum throughput 200Mbps

5
Machine Translated by Google

ÿ Integrated 1 I 2C controller

ÿ Integrated GPIO controller, supports up to 18 GPIOs

ÿ Integrated 5-way PWM interface

ÿ Integrated 1-way Duplex I 2S controller

ÿ Integrated 11 Touch Sensors

ÿ Security Features

ÿ The MCU has a built-in Tee security engine, and the code can distinguish between the secure world and the non-secure world.

ÿ Integrated SASC/TIPC, memory and internal modules/interfaces can be configured with security attributes to prevent non-security code access

ÿ Enable firmware signature mechanism to achieve safe boot/upgrade

ÿ Equipped with firmware encryption function to enhance code security

ÿ Firmware encryption keys are distributed using asymmetric algorithms to enhance key security

ÿ Hardware encryption module: RC4256, AES128, DES/3DES, SHA1/MD5, CRC32, 2048 RSA, true random number

generator

ÿ Wi-Fi characteristics

ÿ Support GB15629.11-2006, IEEE802.11 b/g/n

ÿ ÿÿ Wi-Fi WMM/WMM-PS/WPA/WPA2/WPS

ÿ Support EDCA channel access method

ÿ Support 20/40M bandwidth working mode

ÿ Supports STBC, GreenField, Short-GI, and reverse transmission

ÿ Support AMPDU, AMSDU

6
Machine Translated by Google

ÿ Supports IEEE802.11n MCS 0~7 and MCS32 physical layer transmission rate levels, with the transmission rate up to 150Mbps

ÿ Supports Short Preamble when sending at 2/5.5/11Mbps rate

ÿ Supports HT-immediate Compressed Block Ack, Normal Ack, and No Ack response methods

ÿ Support CTS to self

ÿ Supports Station, Soft-AP, Soft-AP/Station functions

ÿ Bluetooth features

ÿ Integrated Bluetooth baseband processor/protocol processor, supports BT/BLE dual-mode working mode, and supports BT/BLE4.2 protocol

ÿ Power management

ÿ 3.3V single power supply

ÿ Support Wi-Fi energy-saving mode power consumption management

ÿ Supports work, sleep, standby, and shutdown working modes

ÿ Standby power consumption is less than 15uA

1.3SDK basic features

W800 SDK is a collection of RTOS kernel, hardware driver, Wi-Fi protocol stack, Bluetooth protocol stack, TCP/IP protocol stack, network application protocol,

7
Machine Translated by Google

An embedded Wi-Fi and Bluetooth application development platform integrating AT command set, multiple application layer protocols and corresponding sample codes.

The functions it provides are:

wireless

ÿ Support IEEE802.11b/g/n wireless standard

ÿ Support BT/BLE4.2

ÿ Supported frequency range: 2.412~2.484 GHz

ÿ Support basic network (Infra)

ÿ Supports multiple encryption and authentication mechanisms: OPEN/WEP64/WEP128/TKIP/CCMP/WPA-PSK/WPA2-PSK

ÿ Support fast networking mode (specified channel and BSSID)

ÿ Support wireless roaming

ÿ Support PS-POLL energy-saving mode

ÿSupport WPS function

ÿ Support soft AP

ÿ Support OPEN, WEP, TKIP, AES encryption authentication

ÿ Supports up to 8 station connections

ÿ Support STA’s PS-POLL energy saving

ÿ Support soft APSTA

ÿ Support 2-level cascading

ÿ Supports up to 8 station connections

drive

ÿ Support UART interface communication

8
Machine Translated by Google

ÿ Support UART data interface, the maximum interface rate is 2Mbps

ÿ Support user-programmable GPIO control

ÿ Support HSPI interface

ÿ Support SDIO interface

ÿ Supports external PSRAM interface expansion

ÿ Support I2S interface

ÿ Support I2C interface, maximum rate 400Kbps

ÿ Support 7816 interface

ÿ Support hardware encryption and decryption

ÿ Support plug-in SPI-FLASH

ÿSupport built-in FLASH

ÿ Support ADC interface

ÿSupport PWM interface

networking

ÿ Support different network distribution methods

ÿ ONESHOT

ÿ WPS

ÿ WEB page

ÿ AIRKISS

ÿ Bluetooth

ÿ Supports API connection (for secondary developers)

ÿ Support AT command networking (for AT command developers)

9
Machine Translated by Google

TCP/IP protocol

ÿ Supports multiple network protocols: TCP/UDP/ICMP/DHCP/DNS

ÿ Support DHCP Server, DNS Server

ÿ Supports HTTP Client and HTTP Server functions

ÿ Support IPERF

other

ÿ Support AT command set

ÿ Support standard socket interface

ÿ Support m-DNS

ÿ Support web socket

ÿ Support SSL Server, SSL Client

ÿ Support OS replacement

ÿ Support cloud migration

ÿ Support module production testing based on serial port method

ÿ Provide various usage documents

10
Machine Translated by Google

2 SDK usage instructions

2.1 Software architecture

AT Command(For AT User)

Examples (For Developper)


Application Protocol(DHCPS,DNS,SSL,m-DNS,HTTP,MQTT)

OS API Driver API Wlan API Socket BT/BLE API Memory API

Driver
WLAN Supplicant LWIP STACK BT STACK
Other RTOS (I2C, I2S, PWM,
Memory
Free RTOS ÿRTTÿLiteOSÿ GPIOÿRTCÿTimerÿ
Management
AliOS) WDGÿ7816ÿinner
W i-Fi Driver BT Driver
FlashÿADCÿLSPIÿ

BSP

Figure 2 Software architecture diagram

2.2 Directory structure

WM_SDK

ÿÿapp User program development entrance

ÿÿbin executable file

ÿÿdemo Basic DEMO functions

ÿÿdoc Release Note/API Documentation

ÿÿinclude API header file

ÿÿld linker script file

ÿÿlib Wi-Fi, BT, application library

ÿÿMakefile make script file

11
Machine Translated by Google

ÿÿplatform chip and platform-related public source code

ÿÿsrc Applications, network protocol stacks, OS and third-party open source code sets

ÿÿtools Compile scripts, CDS IDE projects, CDK projects, and IMAGE generation tools

2.3 Compile and connect

2.3.1 CDS project compilation

Open the CDS integrated compilation environment and import the project file.

When importing project files, set the root path of the sdk to be imported. Then, the project files to be imported will be displayed. Just follow the operation.

When compiling, after selecting the sdk project, click build or rebuild on the toolbar to start compilation. The files generated by compilation are placed in bin

Under contents.

2.3.2 CDK project compilation

Go to tools\w800\projects\SDK_Project\project\CDK_WS, open the CDK project by opening the file with the .cdkws suffix, and then

click Rebuild All under Project to start compiling the project.

12
Machine Translated by Google

2.3.3 Command line compilation

Install the specified compilation tool and set it according to the compilation tool requirements. After decompressing the SDK, open the tool and jump to the root directory of the SDK and execute

Just make.

Reference document: "WM_W800_SDK Script Compilation Guide"

2.3.4 Compilation results

w800.bin Original bin file

w800.img XMODEM/OTA download image file

w800_ota.img Only supports OTA downloaded compressed firmware (save OTA space)

w800.fls Factory burned image file

w800.map MAP file

Reference document: "WM_W800_Firmware Generation Instructions"

13
Machine Translated by Google

2.4 Burn firmware

2.4.1 Burning through ROM

If the factory W800 development module has not been programmed with firmware, when it is powered on, the module will enter the ROM (UART0) and print information such as

Down:

If the development module of W800 leads to the BOOTMODE pin, and when powering on, the BOOTMODE pin is pulled down for more than 30ms, then

The module will also enter the ROM (UART0 only) and print the following information:

ROM According to the different stages of XMODEM download, the results of command execution and the abnormal conditions encountered at different stages of startup will be passed

UART0 outputs different characters to represent error codes.

See the documents: "WM_W800_ROM Function Brief", "WM_W800_Firmware Upgrade Guide"

2.4.2 Burning through SECBOOT

W800 SECBOOT is a functional program that implements user firmware migration, firmware startup verification, startup jump, and jump to ROM

XMODEM upgrade and other functions.

When the development module based on W800 is powered on/reset, if UART0 receives the ESC key, the module will detect when SECBOOT starts.

Test the ESC key and jump to ROM, then enter the serial port XMODEM download mode, (UART0) prints the following information:

14
Machine Translated by Google

In different XMODEM upgrade stages, if an exception is encountered, different characters will be output through UART0 to represent the error code.

See the documents: "WM_W800_ROM Function Brief", "WM_W800_SECBOOT Function Brief"

2.5 Program debugging

2.5.1 Firmware debugging information

The SDK supports the printf debugging function of standard C and outputs it to the physical serial port UART0. Users can perform debugging in the debugging stage according to their own needs.

Section adds its own debugging print information.

The existing LOG information output of the SDK can be set through the following macro definition in the wm_debug.h file:

/** Define the debugging level: info */

#define TLS_DBG_LEVEL_INFO TLS_DBG_OFF

/** Define the debugging level: warning */

#define TLS_DBG_LEVEL_WARNING TLS_DBG_OFF

/** Define the debugging level: error */

#define TLS_DBG_LEVEL_ERR TLS_DBG_OFF

/** Define the debugging level: dump */

#define TLS_DBG_LEVEL_DUMP TLS_DBG_OFF

/** general debug info switch, default: off */

#define TLS_GENERAL_DBG TLS_DBG_OFF

Wi-Fi debugging information requires a separate Wi-Fi Lib to support, and the user needs to implement the wm_printf and wm_vprintf interfaces.

2.5.2 CK-LINK Debugging

W800 supports CK-LINK debugging mode.

15
Machine Translated by Google

Reference document: "WM_W800 Debugging Configuration Guide"

2.5.3 AT command debugging

W800 supports AT command operation.

Reference document: "WM_W800_AT Instruction User Manual"

2.6 Development tools

Target Firmware
4 TCP/IP Tools

W800.img OTA Server


(user image)

5 9

Compiler: Image Generation Toolÿ C Codeÿ W800.img (in 6


IPERF Tool
1 GCC 2 wm_tool.c 3
secboot)
SDK based on Executable
10
GO: W800 EVB
W800 CDS
fileÿ wm_tool.exe

11
7

8
W800.fls (in

ROM)

Serial Port tool


CKLINK Debugger

Figure 3 W800 SDK development and usage process

2.7 Compilation tools

2.7.1 IDE development environment—CDS/CDK

W800's SDK supports CDS/CDK integrated development and compilation environment.

2.7.2 GCC from the command line

W800's SDK supports the command line GCC development and compilation environment, and installs a Linux virtual machine (the compilation environment has been integrated).

Reference document: "WM_W800_SDK Script Compilation Guide"

16
Machine Translated by Google

2.8 Firmware generation tool

After the W800 SDK target file is compiled, it needs to be packaged to generate the target upgrade file. The SDK comes with its own source code tools.

Reference document: "WM_W800_Firmware Generation Instructions"

2.9 Download tools

W800 supports serial port XMODEM protocol upgrade, and SecureCRT is recommended.

Reference document: "WM_W800_Firmware Upgrade Guide"

2.10 Debugging Tools

TCP/IP tool: TCP debugging assistant, used to test socket communication

Iperf: Used to test network performance

3Development Guide

3.1 WM_SDK startup method

The running mode of WM_SDK is based on the XIP mode implemented by the 32KB Cache integrated inside the W800 chip, and runs on QFLASH.

The startup process of W800 jumps to SECBOOT through ROM, and then jumps to user code space through SECBOOT.

ROM is responsible for initializing the basic functions of the chip and is solidified in the chip.

SECBOOT is responsible for verifying and upgrading the user space code and placing it in a section of QFLASH.

The W800's CACHE space size is 32KB. When the running code size is less than 32K, the CPU will not need to read instructions from QFLASH.

17
Machine Translated by Google

3.2 User program entry

wm_main.c (OS

startup.S initialization, parameter initialization, IO multiplexing configuration, main.c

(exception vector table and interrupt handling function) driver interface initialization, Wi-Fi initialization, BT initialization, (user program entry)

TCP/IP initialization)

After the W800 module is started and run through the ROM and SECBOOT programs, it will eventually run to startup.S to start execution, and then jump

Go to the wm_main.c file to perform some initialization functions. Finally, enter main.c to print the user task.

The starting entry of the user program (main.c) of WM_SDK is: UserMain(void). Users can use this file based on

Create your own Task in the CreateDemoTask function to complete the customized function. Currently DEMO CODE provides a

CreateDemoTask is used to test the API provided by the SDK, and customers can modify it according to actual needs.

void UserMain(void)

printf("\n user task\n");

#if WM_DEMO

CreateDemoTask();

#endif

3.3 Memory usage

W800 has a total of 160K Byte SRAM+128K Byte (configurable space), and the address space is [0x20000000 – 0x2048000].

BD for system runtime stack and Wi-Fi transceiver.

System heap size setting, located in the gcc_csky.ld file, is defined as follows:

18
Machine Translated by Google

__min_heap_size = 0x10000;

PROVIDE (__ram_end = 0x2003c000);

PROVIDE (__heap_end = __ram_end);

To configure the system heap size, __heap_end determines the actual heap size after linking. You can actually confirm it after the image is started.

The size of the next pile.

Currently, the default minimum heap configuration is 64KBytes.

3.4 FLASH layout

W800 uses built-in 2M Byte QFlash space by default, and the specific allocation is as follows (X=1 in the picture):

0x8XFFFFF
OTA Param (4KB)
0x8XFF000

System Param (12KB)


0x8XFC000

User Area (>=240KB,When X>=1)

0x81C0000

Image Run area (959KB)Variable

Run Image Header(1KB)variable

Image OTA Area (768KB)

0x8010000

SecBoot Image Area (55KB)


0x8002400
SecBoot Image Header (1KB)
0x8002000
RF data (8KB)
0x8000000

The user-available parameter area is 240Kbyte, which can be adjusted according to the IMAGE size of the running area and upgrade area.

Reference documents: "W800 Parameter Area Instructions", "WM_W800_QFLASH Layout Instructions"

3.5 User parameter management

W800 users wish to store customized parameters or run logs. The space available to users of the current SDK’s QFLASH layout is

240KB, the address range is: 0x81C0000-0x81FBFFF.

19
Machine Translated by Google

If the user's code space is redundant, the user can re-adjust the QFLASH code area and user parameter area space according to their own needs.

Increase the user parameter area space.

Reference document: "WM_W800_Parameter Area Usage Instructions"

3.6 System parameter management

System parameters refer to the networking, interface configuration, mode configuration, etc. parameters required when the W800 module is running, as follows:

1) Wi-Fi related (SSID, BSSID, KEY, channel list, power saving flag, rate setting, area code, working mode)

2) IP information (static IP, DHCP enabling information, NTP server, DNS server)

3) Interface configuration (UART mode configuration)

4) Other parameters (WEB)

The system parameter area is located at: 0x81FC000-0x81FEFFF. Users cannot use this parameter area for other purposes.

Reference document: "WM_W800_Parameter Area Usage Instructions"

20

You might also like