RTEMS+LWIP for LPC1768 BSP

Federico Casares federico.casares at tallertechnologies.com
Tue Aug 26 11:22:54 UTC 2014


Hi,

In the past weeks we were working on porting the last LWIP version to RTEMS
for
the LPC1768 microcontroller. Our main goal was to accomplish this with the
minimum number of changes for both projects. Fortunately, the result was
positive.

Now, we are capable of providing to the community with this new version of
the
RTEMS+LWIP port. In details:

- RTEMS: last git revision = baa3c91ecb8a3b48ef387b938fcdb6
e60b5bdc8a
- LWIP: last git revision = 63038e03055183e3bc043711ada1de3bb907e989
- LPC1768: based on MBED driver =
https://github.com/mbedmicro/mbed/tree/master/libraries/net/eth/lwip-eth/arch/TARGET_NXP


The list of changes follows:

- RTEMS OS: No changes were needed here. Despite this we will be posting a
possible improvement in the newlib maillist soon. It consist in adding the
gcc
function attribute "warn_unused_result" to the pthread_*_init functions. As
a
result, developers will be warned about checking the return value. NOTE: a
common error here could be not checking the return value, assuming a
successful
result, and trying to, for example, lock a mutex which init function has
returned ENOMEM. (We found this exact mistake in the current LWIP OS layer
implementation for Unix)

- RTEMS LPC1768_MBED BSP: We added a new section to the linker script, so we
were able to put the LWIP and driver buffers in an exact memory location
(useful
when working with DMA devices).

- RTEMS LPC1768_MBED Ethernet Driver: Based on an existing driver from
MBED, we
ported it to RTEMS. NOTE: we will be creating our own driver in the near
future.

- LWIP: As mentioned previously, we needed to put all LWIP buffers in DMA
memory
locations. Consequently, we added the "section" attribute to LWIP ram_heap
and
memp_memory buffers. Furthermore, as this is a common strategy in embedded
devices with DMA, we made it generic and we will send these changes to the
LWIP
project. Additionally, we will provide some minor adds/changes to the lwip
log
system and statistics system.

- LWIP-contrib: Some of the changes/adds were: fixing some issues related
with
posix initialization checks and allow set threads stack size.

- LWIP-test-app: A simple TCP echo server with debugging functionality
(rtems malloc statistics, rtems stack checker, lwip statistics, driver
statistics and registers dump) available.


As this new port is comprised of several patches and adds, it would be great
to have some advice in how to proceed. We can provide you with the project
as a
whole or divided into independent patches. Also, we will need to know which
parts of the port are of RTEMS interest to be submitted.

Regards.


-- 
[image: http://www.tallertechnologies.com]
<http://www.tallertechnologies.com>
Casares, Federico
Sr. Software Engineer
Taller Technologies Argentina

San Lorenzo 47, 3rd Floor, Office 5
Córdoba, Argentina
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20140826/3200e210/attachment.html>


More information about the devel mailing list