Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ethernet DMA Driver #33

Open
ztnel opened this issue Jan 25, 2024 · 0 comments
Open

Ethernet DMA Driver #33

ztnel opened this issue Jan 25, 2024 · 0 comments
Labels
firmware embedded software development networking Network configuration and drivers

Comments

@ztnel
Copy link
Contributor

ztnel commented Jan 25, 2024

Description

Goal: Demonstrate data streaming over Ethernet using DMA.
Description: Create a new FreeRTOS Task which will be a TCP/IP server for high speed measurement collection. You will need to generate 100 random IEEE-754 floating point numbers for the following fields:

  • Voltage
  • Current
  • Thrust

For each packet include a new field for :

  • MCU epoch timestamp (IEEE-754 float)
  • The packet index number as a uint32_t (starting from index 0)
  • Key (for error checking) → hardcoded 0x4443544c → DCTL in utf-8
  • Sampling frequency (Hz) → hardcoded to 10000

Here is a sample packet struct you could use:

typedef struct demo_packet_t {
	uint32_t key;
	uint32_t index;
	uint32_t frequency;
	float timestamp;
	float voltage[100];
	float current[100];
	float thrust[100];
} demo_packet_t;

You will need have an infinite loop to perform the following:

  1. Generate random values to populate the arrays for voltage, current and thrust
  2. Get MCU epoch
  3. Build struct populating key, index, frequency, timestamp and array values
  4. Increment index

Testing: Connect to socket as a client using a python script.

Validation: Unpack values in client program and use wireshark to verify the packet integrity

@ztnel ztnel added firmware embedded software development networking Network configuration and drivers labels Jan 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
firmware embedded software development networking Network configuration and drivers
Projects
None yet
Development

No branches or pull requests

2 participants