Comments (8)
It's part of design that the STM32. packages provides an higher level interface.
Again the STM32.Eth is quite old and maybe not up to the standard of the other drivers. I encourage you to have a look others packages (STM32.I2C, STM32.SPI, STM32.PWM) to see what kind of interfaces we usually expect.
I also suggest that you start thinking about an HAL.Ethernet interface, again you can look at the other packages in HAL. This should define Ethernet interface that would work on any Ethernet controller. By doing this work, or only starting to think about it, you will be able to design a better interface for STM32.Eth.
from ada_drivers_library.
I have been trying, particularly, to complete a project with Ethernet.
Is there a HAL.Ethernet interface anywhere - even an old one?
Do you know anybody who has successfully sent or received a packet with
STM32.Eth? Even if it's terrible code and very old, it'd still be very
useful.
On 6 September 2016 at 15:01, Fabien Chouteau [email protected]
wrote:
It's part of design that the STM32. packages provides an higher level
interface.Again the STM32.Eth is quite old and maybe not up to the standard of the
other drivers. I encourage you to have a look others packages (STM32.I2C,
STM32.SPI, STM32.PWM) to see what kind of interfaces we usually expect.I also suggest that you start thinking about an HAL.Ethernet interface,
again you can look at the other packages in HAL. This should define
Ethernet interface that would work on any Ethernet controller. By doing
this work, or only starting to think about it, you will be able to design a
better interface for STM32.Eth.—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
#51 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AESqR93_-1vQqgbrmF4J_gKu4w9tBLkXks5qnWQdgaJpZM4J1U_6
.
from ada_drivers_library.
I have been trying, particularly, to complete a project with Ethernet.
We appreciate your effort, Ethernet is not easy and we are mostly starting from scratch here :)
Is there a HAL.Ethernet interface anywhere - even an old one?
Not in Ada, it's on the TODO list. You can have look at ARM CMSIS C interfaces: http://www.keil.com/pack/doc/CMSIS/Driver/html/group__eth__interface__gr.html
Do you know anybody who has successfully sent or received a packet with STM32.Eth? Even if it's terrible code and very old, it'd still be very useful.
@gingold-adacore did, and all his code is in STM32.Eth (I think).
from ada_drivers_library.
Thank you for the reference - I've written to Tristan, and the e-mail
didn't bounce back, but I've not yet had a reply. I know it's holiday
season in Europe, but I thought I should check, is Tristan's adacore e-mail
address still the correct one to use?
On 6 September 2016 at 16:31, Fabien Chouteau [email protected]
wrote:
I have been trying, particularly, to complete a project with Ethernet.
We appreciate your effort, Ethernet is not easy and we are mostly starting
from scratch here :)Is there a HAL.Ethernet interface anywhere - even an old one?
Not in Ada, it's on the TODO list. You can have look at ARM CMSIS C
interfaces: http://www.keil.com/pack/doc/CMSIS/Driver/html/group__eth__
interface__gr.htmlDo you know anybody who has successfully sent or received a packet with
STM32.Eth? Even if it's terrible code and very old, it'd still be very
useful.@gingold-adacore https://github.com/gingold-adacore did, and all his
code is in STM32.Eth (I think).—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
#51 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AESqR0ycLGMd5sLpQA5-9sWqa_Cvv9bHks5qnXksgaJpZM4J1U_6
.
from ada_drivers_library.
I played a little bit with STM32.Eth and it was a nice starting point to understand the Ethernet driver.
The Ethernet driver must have a transmit queue and a receive queue so that you can manage
the TX and RX Ethernet rings. There are many strategies for that and I've implemented a driver
that allows to avoid copies when a frame is sent but also when it is received.
As for now, the Ethernet driver receive queue works very well so that you can recieve network
packets and do whatever you like with them. The transmit queue works but it stops after sending
the first packet but it's a matter of time to fix it.
Check out:
https://github.com/stcarrez/ada-enet
and look at src/stm32/net-interfaces-stm32.adb for the TX and RX ring setup with the transmit
and receive queues.
I've picked the STM32.Eth and stripped down to the minimal subset for my own needs (MII setup).
from ada_drivers_library.
Thanks for sharing the info! That's an awesome project you have here!
May I suggest that you record a short video of the project in action and put it on YouTube or similar.
from ada_drivers_library.
Dear Stephane,
Thank you very much - that's really helpful.
Regards,
Peter
On 27 September 2016 at 21:52, Stephane Carrez [email protected]
wrote:
I played a little bit with STM32.Eth and it was a nice starting point to
understand the Ethernet driver.The Ethernet driver must have a transmit queue and a receive queue so that
you can manage
the TX and RX Ethernet rings. There are many strategies for that and I've
implemented a driver
that allows to avoid copies when a frame is sent but also when it is
received.As for now, the Ethernet driver receive queue works very well so that you
can recieve network
packets and do whatever you like with them. The transmit queue works but
it stops after sending
the first packet but it's a matter of time to fix it.Check out:
https://github.com/stcarrez/ada-enetand look at src/stm32/net-interfaces-stm32.adb for the TX and RX ring
setup with the transmit
and receive queues.I've picked the STM32.Eth and stripped down to the minimal subset for my
own needs (MII setup).—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
#51 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AESqR-icPnM9ElcRk7V00UDjw-pG3ELzks5quXQGgaJpZM4J1U_6
.
from ada_drivers_library.
Here is a short video that shows EtherScope in action: EtherScope an Ethernet Traffic Monitor
from ada_drivers_library.
Related Issues (20)
- FE310-specific performance counters HOT 1
- install_dependencies.py appears to be broken HOT 2
- Some examples do not build HOT 6
- Support LSM303AGR for newer micro:bit hardware revisions HOT 1
- Target not found for Micro:Bit with Debian Linux HOT 3
- Project Wizard doesn't generate startup files HOT 3
- Include directions in examples/README.md to have compatible versions of bb-runtimes and compiler
- Support for Adafruit Feather M0 board HOT 3
- mma8653 initialization fails on MicroBit HOT 21
- EXAMPLES: Installing run-time dependencies fails with both Python 2 and Python 3 on Linux HOT 2
- Make HAL packages preelaborable HOT 1
- I2C HAL ideas HOT 15
- Many warnings with GCC 12 HOT 2
- RISC-V requires "zicsr" ISA extension to build with FSF GNAT 12.1.1 HOT 11
- IO expander MCP23x08 reports GPIO mode always as Output HOT 1
- Support for STM32F411CEU6 board HOT 1
- Extension zicsr required in HiFive1_rev_B board
- Microbit.Time resets the board
- How to get the toolchain up and running? HOT 15
- Compiler crash with pragma Ada_2022 on body HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ada_drivers_library.