# Read Me First
TCP-K-LPC1769-1c

# Step 1: Check package contents

Among the other things in the .ZIP file you received should be the following important items:

- `emblibs/embtcp.lib` -- This is the library compiled for "NON-DEBUG"
- `emblibs/embtcp-debug.lib` -- This is the library compiled for "DEBUG"
- `tcp_examples/example1` -- This directory contains a very basic, "yes, something is working" program
- `emb_h` -- This directory contains include files required to use the embTCP library.
- `embDocs/embTCP-Reference.htm` -- This is the primary reference manual for embTCP
- `embDocs/embTCP-FAQ.htm` -- Frequently Asked Questions, including a link for a possibly updated version of the FAQ
- `FreeRTOS` -- This is the source code for the FreeRTOS™ Operating System

# Step 2: Have a ready project

By far the easiest way to ensure that your new libraries are working is to add them to a very simple project that you already know works and the behavior of which is well known. Please prepare a very small program, verify that it compiles, downloads, and runs on your development target.

# Step 3: Move libraries into place

1. Begin with a project known to build, download and run on your LPC1769-based board
2. Add source files to the project:
   - `embsrc` directory: Add every file
   - If you already have FreeRTOS, skip to the next section
   - `FreeRTOS` directory: Add every source code file
   - `FreeRTOS/Source/portable/RVDS/ARM_CM3` directory: Add every source code file
   - `FreeRTOS/Source/portable/MemMang` directory: add the management scheme most appropriate for your environment. (Note: During development of embTCP, the file `heap_3.c` was most heavily tested of the three methods provided with FreeRTOS.)
3. Add `embtcp-debug.lib` to the project
4. Add the following include directories ( C/C++ | Preprocessor | Additional Include Directories)
   - `FreeRTOS/Source/include`
   - `FreeRTOS/Source/portable/ARM_CM3`
   - `emb_h`

# Step 4: Example1

1. Add `examples/tcp_examples/example1/example1.c` to the project as discussed above.
2. Modify the `get_mac_address()` routine in `tcpdata.c` to correctly obtain the MAC address for your board. For debugging purposes, you could temporarily set the "`local_mac[6]`" array elements `1`, `2`, `3`, `4` and `5` to random values that are unique to your network.
3. Edit example1.c and change the default value of the `svraddrstr` parameter from `0.0.0.0` to the IP address of a TCP echo server. If you do not have an available TCP echo server, feel free to ignore the error messages that appear on "stdout".
4. Edit the file `embsrc/inmain.c` and remove the comments surrounding the call to `example_init()`.
5. Verify that the target board is connected to the LAN, and that a DHCP Server exists on the network
6. Compile, download, run
7. Notice the IP address displayed on the console
8. From another system on the LAN, "ping" the target's IP address

# Step 5: Read some documentation

Find the embTCP User's Guide and start to read, making special note of the chapter entitled "Example1 Walkthrough".