Code memory of WizFi250(MicroPython)
이전 포스팅(http://ilikethisplus.tistory.com/23)에서 WizFi250에 MicroPython을 포팅하는 것에 대해서 정리를 했었는데, 이번에는 대한 코드 메모리의 Usage에 대해서 정리해 본다.
Platfrom(TreadX) |
|
| 20KB |
||
Platfrom(TreadX + STDIO) |
|
| 40KB | ||
Platfrom(TreadX + STDIO) |
WICED |
| 270KB | ||
Platfrom(TreadX + STDIO) |
WICED | WLAN(WiFi Join + TCP/IP) |
| 323KB | |
Platfrom(TreadX + STDIO) |
WICED | WLAN(WiFi Join + TCP/IP) | HTTP | 423KB | |
Platfrom(TreadX + STDIO) |
WICED | WLAN(WiFi Join + TCP/IP) | HTTP | MicroPython | 505KB |
Platfrom(TreadX + STDIO) |
|
| MicroPython | 120KB |
MicroPython Core를 위한 최소 코드 메모리는 100KB 이내로 가능한 것을 볼 수 있다. (실제로는 약 80KB)
물론, IoT 개발 플랫폼을 제대로 서비스하기 위해서는
- Peripherals 들을 위한 코드
- External Flash 및 File System을 위한 코드
- WiFi Management를 위한 코드
- Socket Library를 위한 코드
- 기타 (Telnet D, FTP D, Bootloader with F/S)
등이 포함되어야 할 것이다.
참고로, 아래는 <Platfrom(TreadX + STDIO) + WICED + WLAN(WiFi Join + S/W TCP/IP) + HTTP + MicroPython>를 컴파일 했을 때의 실제 메모리 맵이다.
----------------------------------|---------|---------|
| | Static |
Module | Flash | RAM |
----------------------------------+---------+---------|
base64 | 520 | 0 |
DHCP_Server | 1512 | 132 |
DNS | 1340 | 44 |
Host MCU-family library | 12313 | 2484 |
HTTP_client | 195 | 0 |
Interrupt Vectors | 424 | 0 |
libc | 34722 | 3136 |
Networking | 3560 | 14278 |
NetX | 54538 | 536 |
NetX-Duo - Interfaces & Stacks | 0 | 12 |
Other | 76857 | 2610 |
Packet Buffers | 0 | 23142 |
platform | 1132 | 168 |
RAM Initialisation | 2424 | 0 |
resources | 16 | 0 |
Ring_Buffer | 92 | 0 |
Startup Stack & Link Script fill | 149 | 14 |
Supplicant - BESL | 90128 | 516 |
ThreadX | 9168 | 396 |
Wi-Fi Firmware | 210412 | 0 |
WICED | 2790 | 820 |
WWD | 13408 | 1112 |
----------------------------------+---------+---------|
TOTAL (bytes) | 513276 | 49400 |
----------------------------------|---------|---------|