This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Implementing lwIP in RTOS environment to upload data to server & also use Tiva C MCU as an Embedded Web Server

Other Parts Discussed in Thread: TM4C1294NCPDT

BoardEK-TM4C1294XL

MCUTM4C1294NCPDT

IDE: CCS v6.0.1.0040

Hello,

    I am starting with a project based on Tiva C MCU TM4C1294NCPDT. My requirements are the following:

 

1. The firmware will be running on TI-RTOS

2. USB Pen drives / Thumb drives will be connected to the USB OTG cable for data copy from MCU to Thumb drive

3. USB Pen drive will also be used for firmware upgrade of the MCU

4. SD card will be interfaced with the MCU over SPI communication

5. Ethernet port will be used to enable use of Embedded Ethernet (Tiva acting as a server)

6. Ethernet port will also be used to upload data to a website using HTTP GET (Tiva acting as a client terminal accessing internet connection over LAN)

 

    I have already gone through the examples provided along with TI-RTOS for Tiva C as well as with Tivaware. I find a few examples very helpful in the matter of the requirements of my project. But a few examples are non-RTOS based & a few are RTOS based.

    To start with, I have decided to use the RTOS example project given in TI Resource Explorer named “fatsdusbcopy_TivaTM4C1294NCPDT”. I find this as a good starting point as it contains the RTOS configured already.

    Now, the challenge for me is to accommodate the non RTOS based Ethernet codes to the RTOS based environment. The codes that I tested are the examples named “enet_io” for Embedded Ethernet & “enet_weather” for data upload to server using HTTP GET method. Both “enet_io” & “enet_weather” works using lwIP. My query is how do we run these non RTOS based lwIP codes in the RTOS environment? Is there any corresponding RTOS code for Embedded Ethernet & HTTP GET method usage demonstration? How am I going to handle the function calls of the lwIP library in the RTOS mode? Is there any document available on these subjects which I can go through & start implementing also? 

Thanks

Regards

Soumyajit Das

  • TI-RTOS comes with its own networking stack. The tcpEcho example in TI-RTOS is a simple use case of it. The TI-RTOS networking stack (also known as NDK) supports IPv4 and IPv6 and numerous protocols. For a list of the protocols, please refer to the User Guide <tirtos_version>/products/<ndk_version>/docs/spru523i.pdf ('i' at the end might be different depending on the version of TI-RTOS you have).

    There is also a write-up on how to get the HTTP Server working on the Concerto boards (M3 side). The steps are the same for the TM4C129 boards. The write-up includes using the SD card for storing webpages. Please take a look here under the training header: http://processors.wiki.ti.com/index.php/TI-RTOS_Support#Training

    Regarding lwIP, you would have to port lwIP to TI-RTOS (http://lwip.wikia.com/wiki/Porting_for_an_OS).  We do not have a supported version of this.

    Todd

  • Hi Todd,

       Can you please throw some light on advantages of using NDK over lwIP. I have gone through the documents related to NDK implementation, but nowhere I noticed anything mentioned related to the memory footprint NDK is going to consume in the flash of the MCU. I understand that different components of the NDK package can be enabled and disabled and that way we can reduce the memory footprint NDK will consume. But I need to know how much flash memory space NDK is going to consume if we enable all its functions. It would also be better if you can point out in which documents, NDK's flash memory space consumption is indicated.

    Thanks

    Regards

    Soumyajit