This is the mail archive of the ecos-discuss@sourceware.cygnus.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Ethernet driver /MPC860 FADS


Hello,

let me first introduce myself. My name is Claus Jarnik and I'm a student
of the Fachhochschule Munich/University of Applied Sciences.
Actually I do my diploma for the Fraunhofer ESK (research institute).
My business is the development of an ethernet driver under eCos for the
Motorola MPC860 (evaluation board: FADS).

Also I want to write something about eCos (if I get enough information
about the purpose of eCos, known commercial Applications and products …)

If you have any interest in my driver (end version is planned to be in
march 2000) I will make the code available to the eCos community.

Right now I might need your help because I got some problems with the
data rate of my driver.
It would be a great help for me if you have any good idea to solve the
problem.

I use the eCos cyg_io_read and cyg_io_write function for
receive/transmit data.
(cyg_io_write(cyg_io_handle_t handle, const void *buf, cyg_uint32 *len)

In these functions I copy the data from/to buf with the desired length
len.
This copying (I use memcpy) costs a lot of performance.

For a simple performance test I transmit 50000 ethernet frames  (1518
bytes) from a Linux PC to the FADS board.

This are my data rates for receiving:

Action                             | average data rate| busy errors
-------------------------------------------------------------------------------------
Receive and check                  | 1.4 Mbit/s       | 49997
(check if every single byte is ok) |                  |
Receive without check              | 2.8 Mbit/s       | 50001
Without memcpy (no copying of data)| 7.1 Mbit/s       |  3400

Remarks: 64 receive buffer (1520 bytes per buffer), one user task, BSY
INT deactivated, non-blocking read modus

The 7.02 Mbit/s rate would be the best theoretical average data rate
with my driver.
The copying of the received data costs nearly 60% of the theoretical
data rate.

Does eCos support pointer handling with a memory pool (only to handle
pointers to data, not copying the data) because the copying of data from
layer to layer will decrease a lot of performance?

I think a pointer handling from layer to layer would be more effective.


Thank you very much


-- 
kind regards

Fraunhofer Einrichtung für 
Systeme der Kommunikationstechnik
mailto:jarnik@esk.fhg.de
Claus Jarnik			Hansastraße 32
				D-80686 München
               			Telefon: +49(0)89/547088-40
		                Telefax: +49(0)89/547088-20

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]