15 YouTube views, likes subscribers in 10 minutes. Free!
Get Free YouTube Subscribers, Views and Likes

Embedded TCP/IP stack explained: step-by-step code walk-through

Follow
Mongoose Networking Library

A simple HTTP server is created on a NucleoF756ZG dev board using Cube IDE and Mongoose Library. Then, an HTTP request is wiretapped, and every frame gets explained how it is handled by the embedded stack, from a driver layer, up to the application.

In order to understand this video better, study this first:
https://github.com/cpq/baremetalpro...
https://github.com/cpq/embeddednetwo...
   • TCP/IP explained  

Materials used in this video:
Mongoose Library: https://mongoose.ws
Bare metal demo page: https://mongoose.ws/demo/
Mongoose on Cube IDE stepbystep: http://mongoose.ws/documentation/tuto...

0:00 Intro
0:40 Mongoose Library
1:43 Server on a workstation
2:27 NucleoF756 & baremetal demo page
9:02 NucleoF756 & Cube IDE
27:45 Wireshark dump
29:20 mg_mgr_init()
33:04 MG_TCPIP_DRIVER_INIT()
41:17 Ethernet, MAC, PHY, RMII
46:15 STM32F driver
48:07 Driver init: TX/RX descriptors
53:45 Transmit (tx) function
55:14 Up function
56:00 ETH_IRQHandler, receive path
01:02:27 mg_tcpip_init()
01:05:30 struct mg_connection
01:09:22 mg_tcpip_poll()
01:11:05 mg_tcpip_rx() TCP/IP entry
01:13:05 Protocol headers
01:21:10 rx_ip() parse IP frame
01:23:33 rx_tcp() parse TCP frame
01:25:45 SYN response, seq/ack sequence numbers
01:34:56 tx_tcp() sending TCP frames
01:37:52 accept_conn() create new connection
01:39:29 struct mg_connection event handlers
01:42:29 http_cb() handling HTTP request
01:45:30 ev_handler() app layer, HTTP response
01:50:05 BSD socket layer
01:57:27 lwIP 3 APIs
01:58:23 Wrap up

posted by bellamuertemsi