<div dir="ltr">Hi,<br><br>In the past weeks we were working on porting the last LWIP version to RTEMS for<br>the LPC1768 microcontroller. Our main goal was to accomplish this with the<br>minimum number of changes for both projects. Fortunately, the result was<br>

positive.<br><br>Now, we are capable of providing to the community with this new version of the<br>RTEMS+LWIP port. In details:<br><br>- RTEMS: last git revision = baa3c91ecb8a3b48ef387b938fcdb6<div dir="ltr">e60b5bdc8a<br>
- LWIP: last git revision = 63038e03055183e3bc043711ada1de3bb907e989<br>
- LPC1768: based on MBED driver = <a href="https://github.com/mbedmicro/mbed/tree/master/libraries/net/eth/lwip-eth/arch/TARGET_NXP" target="_blank">https://github.com/mbedmicro/mbed/tree/master/libraries/net/eth/lwip-eth/arch/TARGET_NXP</a><br>

<br><br>The list of changes follows:<br><br>- RTEMS OS: No changes were needed here. Despite this we will be posting a<br>possible improvement in the newlib maillist soon. It consist in adding the gcc<br>function attribute "warn_unused_result" to the pthread_*_init functions. As a<br>

result, developers will be warned about checking the return value. NOTE: a<br>common error here could be not checking the return value, assuming a successful<br>result, and trying to, for example, lock a mutex which init function has<br>

returned ENOMEM. (We found this exact mistake in the current LWIP OS layer<br>implementation for Unix)<br><br>- RTEMS LPC1768_MBED BSP: We added a new section to the linker script, so we<br>were able to put the LWIP and driver buffers in an exact memory location (useful<br>

when working with DMA devices).<br><br>- RTEMS LPC1768_MBED Ethernet Driver: Based on an existing driver from MBED, we<br>ported it to RTEMS. NOTE: we will be creating our own driver in the near future.<br><br>- LWIP: As mentioned previously, we needed to put all LWIP buffers in DMA memory<br>

locations. Consequently, we added the "section" attribute to LWIP ram_heap and<br>memp_memory buffers. Furthermore, as this is a common strategy in embedded<br>devices with DMA, we made it generic and we will send these changes to the LWIP<br>

project. Additionally, we will provide some minor adds/changes to the lwip log<br>system and statistics system.<br><br>- LWIP-contrib: Some of the changes/adds were: fixing some issues related with<br>posix initialization checks and allow set threads stack size.<br>

<br>- LWIP-test-app: A simple TCP echo server with debugging functionality<br>(rtems malloc statistics, rtems stack checker, lwip statistics, driver<br>statistics and registers dump) available.<br><br><br>As this new port is comprised of several patches and adds, it would be great<br>

to have some advice in how to proceed. We can provide you with the project as a<br>whole or divided into independent patches. Also, we will need to know which<br>parts of the port are of RTEMS interest to be submitted.<br>

<br>Regards.</div><br clear="all"><br>-- <br><div dir="ltr"><div><div><span style="font-family:verdana,sans-serif"><a href="http://www.tallertechnologies.com" target="_blank"><img alt="http://www.tallertechnologies.com" src="http://www.tallertechnologies.com/templates/tallertechnologies/images/signature.png" height="78" width="200"></a><br>
Casares, Federico<br></span></div><span style="font-family:verdana,sans-serif">Sr. Software Engineer<br></span></div><span style="font-family:verdana,sans-serif">Taller Technologies Argentina<br><br><span style="font-size:8pt;color:rgb(0,0,0);font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;background-color:transparent">San Lorenzo 47, 3rd Floor, Office 5<br>
</span><span style="font-size:8pt;color:rgb(0,0,0);font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;background-color:transparent">Córdoba, Argentina</span></span><br></div>
</div>