-
Notifications
You must be signed in to change notification settings - Fork 1k
Stm32 ethernet lib #38
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
Closed
Closed
Changes from all commits
Commits
Show all changes
21 commits
Select commit
Hold shift + click to select a range
a5c56b7
LwIP TCP/IP stack added
1bd6f3e
First step: DHCP request works. Hardware configuration validated.
d8a7658
Ethernet configuration validated. DHCP is functional. DNS is function…
5298367
Remote IP issue fixed. Ethernet RX mode selectable. Send manual IP co…
6763911
Add file to link Ethernet with main
d0b5d20
Client added
05f707a
Move *udp_pcb inside udp struct
ef96147
Rename library to keep compatibility with Arduino Ethernet library.
3cbfe2d
Ethernet mode configuration (RMII or MII)
d2023c4
Say to compiler where find the correct lwipopt.h
cabab9b
Move LwIP in library
5a48f79
Removed debug options of LwIP stack to decrease code size
e4515a3
Renamed Ethernet library
c741a80
DNS, DHCP, TCP & UDP functions under LwIP flags to give clean errors …
656680b
Example headers modified
f3526cb
Some documentation modification
17535b2
Fixed crash inside ChatServer & DhcpChatServer examples
0442f1f
Example headers updated
80b70aa
Code cleaned.
ad53a28
Custom option added.
bb77db0
Merge branch 'master' into STM32_Ethernet_lib
fpistm File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
/** | ||
****************************************************************************** | ||
* @file ethernet.h | ||
* @author WI6LABS | ||
* @version V1.0.0 | ||
* @date 14-June-2017 | ||
* @brief Header for ethernet background task for LwIP stack. | ||
****************************************************************************** | ||
* @attention | ||
* | ||
* <h2><center>© COPYRIGHT(c) 2016 STMicroelectronics</center></h2> | ||
* | ||
* Redistribution and use in source and binary forms, with or without modification, | ||
* are permitted provided that the following conditions are met: | ||
* 1. Redistributions of source code must retain the above copyright notice, | ||
* this list of conditions and the following disclaimer. | ||
* 2. Redistributions in binary form must reproduce the above copyright notice, | ||
* this list of conditions and the following disclaimer in the documentation | ||
* and/or other materials provided with the distribution. | ||
* 3. Neither the name of STMicroelectronics nor the names of its contributors | ||
* may be used to endorse or promote products derived from this software | ||
* without specific prior written permission. | ||
* | ||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | ||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE | ||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | ||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | ||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | ||
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | ||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
* | ||
****************************************************************************** | ||
*/ | ||
|
||
/* Define to prevent recursive inclusion -------------------------------------*/ | ||
#ifndef __ETHERNET_H | ||
#define __ETHERNET_H | ||
|
||
/* Includes ------------------------------------------------------------------*/ | ||
#ifdef __cplusplus | ||
extern "C" { | ||
#endif | ||
|
||
/* Exported types ------------------------------------------------------------*/ | ||
/* Exported constants --------------------------------------------------------*/ | ||
/* Exported macro ------------------------------------------------------------*/ | ||
/* Exported functions ------------------------------------------------------- */ | ||
|
||
/* This function is defined by the NativeEthernet library and it is used as | ||
background task inside the main loop. */ | ||
__weak void stm32_eth_scheduler(void) | ||
{ | ||
/* NOTE : This function should not be modified. It is defined in the Ethernet | ||
library. | ||
*/ | ||
} | ||
|
||
void stm32_eth_scheduler(void); | ||
|
||
#ifdef __cplusplus | ||
} | ||
#endif | ||
|
||
#endif /* __ETHERNET_H */ | ||
|
||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why doing it here in the core rather than in the loop ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is the idle task for handle timer and data reception. It must be called as much as possible.
I put it here to be sure it is called at least one time per loop.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The same would happen if you put this call in the loop, so this does not answer my question.
Also this seems here that it will be called for each loop for a board that supports it, even if I don't use Ethernet , is that right ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This function is defined as weak in ethernet.c, when the library NativeEthernet is not included, this function is empty.
And to call it in the loop, we must create a function that the user should call (this function will not be refered in the Arduino documentation).
I thought it was easier to leave that in background.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK - this is maybe acceptable if this has no impact when the library is not included. This may be explained as well in the comments
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will this break if freertos or the arduino Scheduler library is used in combination with this library?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@RickKimball
I don't know because I didn't study the LwIP stack in case of an "operating system". The NativeEthernet is oriented single threaded core. I refer you to the LwIP wiki or freertos example using the LwIP stack.
Maybe call stm32_eth_scheduler() inside its own thread or process is enough.