https://github.com/offa/stm32-eth
Experimental C++ Ethernet driver for Stm32 boards using W5100.
https://github.com/offa/stm32-eth
cmake concepts cpp cpp20 cpputest driver embedded ethernet gsl modern-cpp socket stm32 w5100
Last synced: 9 months ago
JSON representation
Experimental C++ Ethernet driver for Stm32 boards using W5100.
- Host: GitHub
- URL: https://github.com/offa/stm32-eth
- Owner: offa
- License: gpl-3.0
- Created: 2016-08-04T14:06:56.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2025-07-14T16:53:28.000Z (10 months ago)
- Last Synced: 2025-07-14T21:27:22.317Z (10 months ago)
- Topics: cmake, concepts, cpp, cpp20, cpputest, driver, embedded, ethernet, gsl, modern-cpp, socket, stm32, w5100
- Language: C
- Homepage:
- Size: 2.29 MB
- Stars: 18
- Watchers: 2
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
README
# [Stm32 Eth](https://github.com/offa/stm32-eth)
[](https://github.com/offa/stm32-eth/actions)
[](https://github.com/offa/stm32-eth/releases)
[](LICENSE)

Ethernet connectivity for *Stm32F4* Boards using W5100 Ethernet controller.
## • Requirements
- [**CMake**](http://www.cmake.org/)
- [**CppUTest**](https://github.com/cpputest/cpputest) – *(Optional)*
- [**GNU ARM Embedded Toolchain**](https://developer.arm.com/open-source/gnu-toolchain/gnu-rm) (*arm-none-eabi-gcc*)
## • Testing
Build and execute Unit Tests:
```
mkdir build && cd build
cmake ..
make
make unittest
```
Executing tests using CTest: `make test` or `ctest`. For `unittest` it's possible to switch verbosity by CMake option.
## • Integration Test
Integration Test for *Stm32F4* are enabled by the `INTEGRATIONTEST` option. The target `stm32-eth-it` is available as *ELF* (default) and *HEX*.
## • Flashing (OpenOCD)
Both *ELF*- and *HEX*-files can be flashed using [***OpenOCD***](http://openocd.org/):
```sh
$ openocd -f stm32f4discovery.cfg
```
```sh
$ telnet localhost 4444
> reset halt
> flash write_image erase
> reset run
```
## • Wiring & Pin Assignment
#### W5100 Wiring
Connect ***Reset*** and ***3.3 V*** with **4.7 kΩ Resistor**.
[](doc/W5100-Pin-Assignment.png?raw=true)
#### Stm32 Pin Assignment
| Pin | Stm32 |
|:----:|:-----:|
| MOSI | PB15 |
| MISO | PB14 |
| SCK | PB13 |
| SS | PB12 |
## License
**GNU General Public License (GPL)**
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see .
### Third party licenses
The License does ***not*** apply to files of [*system*](system/) directory. Files included in the [*system*](system/) folder are licensed under different conditions – please refer to it's files for more details.