#include "lwip/tcp.h"
#include "config.h"
#include "netif/xemacliteif.h"
Aller au code source de ce fichier.
Fonctions | |
void | print (char *ptr) |
Fonction d'affichage d'une chaine de caractères sur stdin (généralement le port série). | |
void | xil_printf (const char *ctrl1,...) |
Fonction d'affichage avancée sur stdin (généralement le port série). | |
void | putnum (unsigned int num) |
Fonction d'affichage d'un nombre hexadécimal sur stdin (généralement le port série). | |
int | main (void) |
Exemple d'utilisation de lwIP avec l'API raw. | |
int | lwip_init (void) |
Initialise la pile TCP/IP de lwIP. | |
netif * | lwip_config (const unsigned char mac[6], const unsigned char ip[4], const unsigned char subnet[4], const unsigned char gateway[4]) |
Configure l'interface réseau de lwIP. | |
int | server_init (short int port) |
Initialise notre serveur. | |
err_t | server_accept (void *arg, struct tcp_pcb *pcb, err_t err) |
Fonction d'acceptation de connexion. | |
err_t | server_recv (void *arg, struct tcp_pcb *pcb, struct pbuf *pbuf, err_t err) |
Fonction appelée lors de la réception de données. | |
err_t | server_sent (void *arg, struct tcp_pcb *pcb, u16_t len) |
Fonction appelée lors de l'acquittement des données émises. | |
void | server_err (void *arg, err_t err) |
Fonction appelée lors d'une erreur. | |
int | client_init (const unsigned char remote_ip[4], short int remote_port) |
Initialise notre client. | |
err_t | client_connected (void *arg, struct tcp_pcb *pcb, err_t err) |
Fonction appelée lorsqu'une connexion à été établie. | |
err_t | client_sent (void *arg, struct tcp_pcb *pcb, u16_t len) |
Fonction appelée lors de l'acquittement des données émises. | |
err_t | client_poll (void *arg, struct tcp_pcb *pcb) |
Fonction appelée régulièrement pour envoyé des données. | |
void | client_err (void *arg, err_t err) |
Fonction appelée lors d'une erreur. | |
err_t | client_recv (void *arg, struct tcp_pcb *pcb, struct pbuf *pbuf, err_t err) |
Fonction appelée lors de la réception de données. | |
void | run (struct netif *netif) |
Fonction principale de l'application. | |
void | print_err (err_t err) |
Affiche sur stdin, de manière lisible, une erreur. | |
Variables | |
XEmacLiteIf_Config | XEmacLiteIf_ConfigTable [] |
Configuration des interfaces réseaux du FPGA (généré par EDK dans le fichier xemac_g.h). |
|
Fonction appelée lorsqu'une connexion à été établie. Cette fonction effectue les opérations suivantes :
Définition à la ligne 5 du fichier client_connected.c. Références client_poll(), client_recv(), POLL_INTERVAL, et print(). Référencé par client_init(). |
|
Fonction appelée lors d'une erreur. Cette fonction fait simplement appel à print_err().
Définition à la ligne 3 du fichier client_err.c. Références print(), et print_err(). Référencé par client_init(). |
|
Initialise notre client. Cette fonction effectue les opérations suivantes :
Définition à la ligne 9 du fichier client_init.c. Références client_close, client_connected(), client_err(), et print(). Référencé par main(). |
|
Fonction appelée régulièrement pour envoyé des données. Cette fonction effectue les opérations suivantes :
Définition à la ligne 6 du fichier client_poll.c. Références client_close, et client_sent(). Référencé par client_connected(). |
|
Fonction appelée lors de la réception de données. Cette fonction effectue les opérations suivantes :
Définition à la ligne 5 du fichier client_recv.c. Références print(), et putnum(). Référencé par client_connected(). |
|
Fonction appelée lors de l'acquittement des données émises. Cette fonction ne fait qu'afficher sur stdin le nombre d'octets envoyé avec succès.
Définition à la ligne 5 du fichier client_sent.c. Références print(), et putnum(). Référencé par client_poll(). |
|
Configure l'interface réseau de lwIP. Cette fonction effectue les opérations suivantes :
Définition à la ligne 7 du fichier lwip_config.c. Références EMAC, loopif_init(), print(), et XEmacLiteIf_ConfigTable. Référencé par main(). |
|
Initialise la pile TCP/IP de lwIP. Cette fonction effectue les opérations suivantes :
Définition à la ligne 8 du fichier lwip_init.c. Référencé par main(). |
|
Exemple d'utilisation de lwIP avec l'API raw. Cette fonction effectue les opérations suivantes :
Définition à la ligne 5 du fichier main.c. Références client_init(), LOCAL_GATEWAY, LOCAL_IP, LOCAL_MAC, LOCAL_PORT, LOCAL_SUBNET, lwip_config(), lwip_init(), print(), REMOTE_IP, REMOTE_PORT, run(), server_init(), et xil_printf(). |
|
Fonction d'affichage d'une chaine de caractères sur stdin (généralement le port série). On retrouve cette fonction dans le fichier standalone_v1_00_a/src/print.c Référencé par client_connected(), client_err(), client_init(), client_recv(), client_sent(), lwip_config(), main(), print_err(), run(), server_err(), server_init(), server_recv(), et server_sent(). |
|
Affiche sur stdin, de manière lisible, une erreur.
Définition à la ligne 4 du fichier print_err.c. Références print(). Référencé par client_err(), et server_err(). |
|
Fonction d'affichage d'un nombre hexadécimal sur stdin (généralement le port série). On retrouve cette fonction dans le fichier standalone_v1_00_a/src/putnum.c Référencé par client_recv(), client_sent(), server_recv(), et server_sent(). |
|
Fonction principale de l'application. Il s'agit de la fonction la plus compliquée de l'application, alors des explications semblent les bienvenues... Pour que la pile TCP/IP de lwIP fonctionne, il faut appeler certaines fonctions périodiquement. Nous avons utilisé le timer interne au PPC pour effectuer ces appels périodiques, grâce aux fonctions XTime_SetTime() et XTime_GetTime() qui, respectivment, met à jour et lit la valeur du Time Base Register. Ce dernier est sur 64 bits et est incrémenté de 1 à chaque coup d'horloge. Ainsi, nous pouvons (devons) appeler la fonction tcp_tmr() toutes les 100 milli-secondes et la fonction etharp_tmr() toutes les 10 secondes. Dans les autres "périodes", nous faisons appel à la fonction xemacif_input() afin que lwIP puisse lire les trames Ethernet entrant sur l'interface réseau.
Définition à la ligne 11 du fichier run.c. Références print(). Référencé par main(). |
|
Fonction d'acceptation de connexion. Cette fonction enregistre simplement auprès de lwIP le callback server_recv() qui sera appelé lors de la reception de données.
Définition à la ligne 6 du fichier server_accept.c. Références server_recv(). Référencé par server_init(). |
|
Fonction appelée lors d'une erreur. Cette fonction fait simplement appel à print_err().
Définition à la ligne 3 du fichier server_err.c. Références print(), et print_err(). Référencé par server_init(). |
|
Initialise notre serveur. Cette fonction effectue les opérations suivantes :
Définition à la ligne 9 du fichier server_init.c. Références print(), server_accept(), server_close, et server_err(). Référencé par main(). |
|
Fonction appelée lors de la réception de données. Cette fonction effectue les opérations suivantes :
Définition à la ligne 5 du fichier server_recv.c. Références print(), putnum(), server_close, et server_sent(). Référencé par server_accept(). |
|
Fonction appelée lors de l'acquittement des données émises. Cette fonction ne fait qu'afficher sur stdin le nombre d'octets envoyé avec succès.
Définition à la ligne 5 du fichier server_sent.c. Références print(), et putnum(). Référencé par server_recv(). |
|
Fonction d'affichage avancée sur stdin (généralement le port série). On retrouve cette fonction dans le fichier standalone_v1_00_a/src/xil_printf.c Référencé par main(). |
|
Configuration des interfaces réseaux du FPGA (généré par EDK dans le fichier xemac_g.h). On retrouve cette variable dans le fichier lwip_v1_00_a/src/contrib/ports/v2pro/netif/xemacif.c Référencé par lwip_config(). |