# embTCP FAQ - Updated March 15, 2012

## For Product : TCP-K-LPC1769-1C

Note: It is not the intention of this FAQ to provide answers that can easily be found in the reference manual that accompanied the TCP Library, but to help with answers to questions that should probably have been included in that document to begin with. If you have any comments or suggestions for this document, please send them in email form to faq@iNiche.com and be sure to include the name of the product under discussion.

usage

1. What RAM memory is available for my application?
   Application data should be placed in the 32 KB of RAM that begins at 0x10000000. Any unused memory in this region is managed by FreeRTOS memory manager (heap_1.c, heap_2.c, or heap_3.c) and is available at runtime through the FreeRTOS memory allocation and free functions. The 32 KB of RAM that begins at 0x2007C000 is used by Embedded TCP for ethernet packet buffers and task stacks. Unallocated memory at the end of this region is available at runtime through the function, `void *ahb_alloc(unsigned int bytes)`. This memory cannot be freed.
2. Is there an updated version of this FAQ?
   The most current version of this FAQ can be found at http://www.iniche.com/embtcp.php. Note that you will need to enter the InterNiche product code of your package, which is defined as `EMBTCP_PRODUCT_CODE` in the file "tcpdata.h"
3. Now that my system is running, I'd like to save some room by removing some of the menu system's commands. How do I do that?
   In the file `tcpdata.c`, find the declaration and initialization of the `struct cli_cmd net_cmds[ ]` array and then modify the controlling `#ifdefs`.
4. Does the TCP library require use of a file system?
   No.
5. How do I change the baudrate of the console UART?
   The console UART is fixed at 115200 baud, assuming a 100MHz clock. If you want to change the system clock or use a different console buadrate, you must replace the call to `uart_init()` in the file `sysinit.c` with a call to a function that loads the proper values in to the UART registers.
6. Where can I go to see a list of bugs, errata, etc?
   Visit http://www.iniche.com/embtcp.php and enter your InterNiche product code (look for `EMBTCP_PRODUCT_CODE` in the file "tcpdata.h") for access to bug lists and product notes.

tools

1. What versions of hardware and software were used to develop and verify this product?
   The hardware used was Keil's MCB1700 Eval Board, populated with an LPC1769 and the Keil's uVision v4.22.22.0, MDK-ARM Version 4.22a.

os

1. How do I change the FreeRTOS priorities of the Networking Tasks?
   Please see the section entitled "FreeRTOS Task Parameters" in the embTCP Reference manual.
2. Since FreeRTOS is controlled by a modified GPL license, I assume that I can get its source code. Is this correct, and where can I get the source code?
   This product uses FreeRTOS v7.0.1 and its source code can be obtained from www.sourceforge.net
3. How do I add a task to the system?
   You add a task just like you would for a FreeRTOS project that does NOT use embTCP. However, if the task you are adding will take advantage of embTCP then it must call `TK_CREATE()` instead of the `xTaskCreate()` function. This is so that the networking stack can create resource locks for each of the application tasks.
4. How do I change the stack size of a networking task?
   The size of the networking code's stacks are initialized in `tcpdata.c`, but you are advised to NOT decrease the values as it could lead to unpredictable and impossible-to-debug problems.
5. Where can I find technical documentation for FreeRTOS?
   At the time of this writing, FreeRTOS documentation can be found at www.FreeRTOS.org. We hope that we will be able to offer a version of the information tailored to users of embTCP in the near future. Please check the updated FAQ for updated information.

license

1. I want to use this library for a new project using the same component and toolchain. Is that allowed?
   Yes.
2. I want to cost-reduce my product by using a pin-compatible, FLASH-reduced version of the chip that this product is licensed for, but I can't seem to run my code on my new hardware. What's going on?
   The library will only operate on the component for which it was licensed, and moving to another controller will require you to license another library.
3. Is the source code available for this product?
   Source code for all InterNiche software modules are available directly from InterNiche or its distributors. Please visit www.iNiche.com or contact Sales@iNiche.com for more information.
4. I have a question or problem with the product. How do I get technical support?
   InterNiche has made every effort to make certain that the software package you have licensed operates successfully on the specified processor. If the library is not functioning properly on your microcontroller, please make certain that you have the correct module for the licensed processor. If you have verified this and still have diificulty, please contact embSupport@iNiche.com.
5. Can I use this code with other Open Source products?
   All emb-family libraries can be used with Open Source modules, but you should read the license just to be safe.