Rowley Associates Driver

The MAXQ serial driver is available for the IAR Embedded Workbench® for MAXQ and Rowley Associates' CrossWorks for MAXQ, two integrated development and debugging environments for MAXQ applications using C and assembly languages. Sample code in C demonstrates MAXQ serial-driver usage and limitations, and how to implement. USB to I2C master, SPI master and GPIO interface. Most simple way to access your hardware from PC using I2C,SPI interfaces and GPIO. This product is discontinued. Please use DLN-2 adapter as fully co. Olimex MSP430-JTAG-TINY-V2 CrossWorks for MSP430 Release 2.1.2.11906 Windows 7 (64 bit) Hello World, The drivers from Olimex have been downloaded. I have been able to get the Olimex msp4.

Great news – we have decided to open source this project! It can be downloaded for free from GitHub – please follow this link.

Previous customers may continue to use the project under the embedded-code.com licence they purchased under, or apply the new MIT licence we have now released the project under.

Ethernet is the perfect solution to providing connectivity for all sorts of embedded devices. Not only does the incredibly versatile range of TCP/IP stack functions lend themselves to all sorts of communication applications, the internet and web browsers allow easy communications across the world and with anyone’s computer or smart phone, effectively for free. The barriers to use once caused by expensive embedded device program memory are now all but gone with today’s low end microcontrollers typically providing plenty of memory for a TCP/IP stack.

The simplicity of the design of each individual part of a typical TCP/IP stack has allowed it to become the universal standard it is today. However whilst simple in concept the implementation of a complete set of TCP/IP stack components is a large and complex task by any programmers standards. This driver removes you from all of that complexity and allows you to add an Ethernet interface to your project with ease. Each of the stack components is configurable to allow you to easily tailor the overall stack depending on each of your projects requirements.

[product_section_start:product_page_section_details.png]

This TCP/IP stack is designed from the ground up to be lean, yet extremely fast and powerful. The aim of the driver is for it to be the perfect choice for applications ranging from small 8 bit low speed embedded devices needing TCP/IP functionality, to fast 16 and 32 bit devices that need to provide high throughput and performance without requiring huge resources. Whilst these aims may seem to contradict each other, accomplishing this is actually relatively straightforward with the right decisions made about the architecture of the stack. With a typical TCP/IP stack being comprised of a large number of lines of code it can be very daunting for anyone other than the original programmers to navigate and understanding it, let alone tailor it to their own needs with any sense of confidence. However the other main aim of this stack is for it to be easy for programmers to understand and customise if need be and it has been implemented with huge importance placed on the source code remaining simple, straightforward and easy to understand.

The driver provides the following main features:

  • Optimised for small memory embedded designs. Processor ram usage is kept to a minimum and the Ethernet Controller IC memory is released as soon as packets are transmitted, allowing for high throughput applications.
  • Intelligent TCP handling to provide automatic re-transmission in the event of lost packets, but without using any large data buffers. If a packet gets lost it is automatically re-sent with the lost packet data simply re-generated.
  • Powerful web server with built in dynamic data handling, allowing your application to automatically add additional information to each web page as it is transmitted. Design your web pages using your favourite web design package and then use the included PC application to automatically convert the entire web site, including its images, scripts, etc, into either:

    A single C compliant .h header file which you simply add to your project files and the entire web site is then automatically stored in the program memory of your device when you next compile. No additional work is required by you – the driver automatically deals with serving the web pages and content on demand.

    A single binary data file ready to store in a flash memory IC, with a header file to add to your project allowing the HTTP server to automatically deal with serving the entire web site as you designed it. You just provide the method to store the single binary data block to your flash memory and to read the binary data from it on request by the HTTP server driver.

  • Receive input from a web browser using GET and POST methods. GET provides simple form or hyperlink inputs to be received. POST provides more advanced form entry and file upload. The driver incorporates full handling of uploaded files allowing users to upload configuration files, new firmware, new web site content, etc. The driver simply passes the received and decoded file data to your function ready for you to store or process as you wish.
  • As the majority of internet connected networks will allow outbound communications but will block inbound connections this driver also provides the functionality to allow your embedded device to connect to the internet itself, avoiding the need for a remote device or PC to have to make a connection to it. Having this functionality avoids special changes needing to be made by network administrators to permit inbound communications to your embedded device, which is often an issue in today’s security conscious world. POP3 email functionality allows your embedded device to connect to a POP3 mail server to check for incoming emails. SMTP and MIME email functionality allows your embedded device to send emails periodically or in response to events or emails received, with files attached if you wish. DNS functionality allows you to use URL's rather than IP addresses, ensuring your device will continue to work should your mail server or remote server IP address be changed.
  • NetBIOS functionality allowing you to connect to your device by name rather than IP address on local networks.
  • No reliance on compiler specific libraries.
  • Full source code supplied for you to use and modify as required.

The following protocols are included:

  • UDP – Fast non-managed data transferClient and server functionality.Multiple connections may be open and active at the same time.
  • TCP – Fast connection based managed data transfersClient and server functionality.Multiple connections may be open and active at the same time.
  • HTTP Host – Web server. Multiple connections may be open and active at the same time.
  • HTTP Client – Download files from a remote web server. A really useful way for your embedded device to update itself with information and files which can be uploaded and updated using standard http tools and web services.
  • DHCP – Automatic network configuration clientAutomatic request of IP address, subnet and gateway address so your device can simply plug and play on a network.
  • NetBIOS – Use names instead of IP address on local networksFind your device by a text based name rather than IP address on a local network.Can be very useful when using DHCP.
  • DNS – Lookup of IP address from a URLAllowing your embedded device to use text URL's to connect to remote devices, such as mail servers or your own remote servers.An important feature to protect against changes in a remote servers IP address effectively stopping your device from connecting to it.
  • POP3 – Receive email. Automatically check and download email from a standard POP3 mailbox.Get round strict network administrators in this security critical world. If your embedded device will be behind routers or firewalls use POP3 to allow your device to retrieve messages via the internet itself, avoiding the need to configure the routers or firewalls to allow an incoming connection.
  • SMTP – Send email. Automatically send anyone emails in response to events or at fixed intervals. Request an email to be returned to you using POP3
  • MIME Base64 encoding – Attach files to emails being sentEasy attachment of files to outgoing emails. For instance you could attach .txt files containing configuration settings or.csv spreadsheet files with logging data for opening with Excel and other spreadsheet applications. Any file type may be attached.
  • ICMP – Ping responseResponds to ping requests.
Rowley
  • ARP – Address resolution protocolA basic requirement for a TCP/IP device.
  • SNTP Time Server ClientUse internet public time servers to obtain the current time.

(Please see the project technical manual for detailed information regarding the implementation each of these protocols)

Drivers for the following Network Interface Controller IC’s are included

  • 10Base-T / 100Base-TX

    NXP LPC2000 series ARM microcontroller with built in Ethernet interface and external KSZ8001 PHY IC.

    PIC32 series MIPS microcontroller with built in Ethernet interface and external KSZ8001 PHY IC.

    SMSC LAN91C111 (8 or 16 bit hardware interface).

  • 10Base-T

    Microchip ENC28J60 (SPI bus hardware interface)

    Realtek RTL8019AS (8 bit hardware interface)

Adding support for other network interface controller IC’s is straightfoward by modifying the dedicated nic file to provide basic IO access to chosen chipset.

This source code product is written in C and has been designed to be used with any ANSI compliant C compiler on any platform. Direct compatibility has been tested with the compilers and processors / microcontrollers listed below. Using the driver with other ANSI compliant C compilers and devices should not present significant problems.
Tested with the Rowley Associates CrossWorks for ARM C Compiler, with sample project for the NXP LPC23xx family of 32 bit ARM microcontrollers included.
Tested with the Microchip C18 MPLAB C Compiler for PIC18 family of 8 bit microcontrollers with sample project included. Free version of the compiler available from Microchip.
Tested with the Microchip C30 MPLAB C Compiler for PIC24 family of 16 bit microcontrollers and dsPIC digital signal controllers with sample project included. Free version of the compiler available from Microchip.
Tested with the Microchip C32 MPLAB C Compiler for PIC32 family of 32bit microcontrollers with sample project included. Free version of the compiler available from Microchip.
We benefit hugely from resources on the web so we decided we should try and give back some of our knowledge and resources to the community by opening up many of our company’s internal notes and libraries through mini sites like this. We hope you find the site helpful.
Please feel free to comment if you can add help to this page or point out issues and solutions you have found, but please note that we do not provide support on this site. If you need help with a problem please use one of the many online forums.

From FreeRTOS V4.0.3, this demo requires CrossWorks V1.6 or higher.

This demo application uses the FreeRTOS GCC ARM7 port along with the Rowley Associates CrossWorks integrated development tools to create a multitasking embedded web server example.

The example executes 12 of the standard demo application tasks, the idle task, and a task containingAdam Dunkels uIP (�IP) embedded TCP/IP stack and sample small web server.

FreeRTOS has made some modifications to the uIP stack since this demo was created. See the Embedded Ethernet Examples List page for more information.

The demo is preconfigured to execute on the LPC-E2124 embedded Ethernet development board(instructions are provided should you wish to use an alternative development board), forwhich the uIP TCP/IP stack port and embedded Ethernet device drivers were provided by Paul Curtis of RowleyAssociates.

Rowley

IMPORTANT! Notes on using the �IP demo

Please read all the following points before using this Demo.


RTOS Configuration

This demo uses the FreeRTOS GCC ARM7 port which is documented separately.The file Demo/uIP_Demo_Rowley_ARM7/FreeRTOSConfig.h is used to tailor the port for use with the LPC2124 developmentboard.


Source Code Organization

  • The FreeRTOS/Demo/uIP_Demo_Rowley_ARM7 directory contains the Rowley CrossWorks project file – rtosdemo.hzp – and main.c.
  • The directory FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip contains the uIP source code.
  • Refer to the Source Code Organization section for a description of all the files contained in the standard FreeRTOS download.

Rowley Associates Driver Ed

main.c contains the application entry point. It is responsible for creating all the tasks, then starting the real time kernel.


Building the Demo Application

CrossWorks provides a user friendly interface to the GCC development tools – greatlysimplifying startup configuration, linking and debugging. To build the application:
  1. Open the project file FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/rtosdemo.hzp from within the CrossWorks IDE.
  2. Ensure “Thumb FLASH Debug” is the selected configuration (see picture below). This must be the selected configuration as currently it is the only configuration containing all the required settings.

    Selecting the Thumb Flash Debug configuration
  3. Select the “Build Solution” option from the “Build” menu within the IDE. The application should build with no warnings or errors.


Loading and Executing the Demo Application

These instructions describe how a J-Link USB JTAG debug interface can be used from within CrossWorks to program the flash and debug the application. CrossWorks also supports Wiggler (low cost) and CrossConnect JTAG interfaces. If you do not have access to one of these JTAG interfaces refer to the main GCC ARM7 port pages for information on using the free flash programmingsoftware from Philips.
  1. Connect your chosen JTAG interface to the embedded computer and power on.
  2. From the “Target” menu select the appropriate “Connect To” option for your debug interface.
  3. Select “Start Debugging” from the “Debug” menu.


Connecting to the Demo Application

To connect to the embedded computer you must set a compatible IP address and use an appropriate cable.

The IP address is configured within the file FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/uipopt.h. This must be set tobe on the same subnet as your host computer, and must not conflict with any other IP address on the same subnet.

Rowley Associates Driver License

A standard CAT5 Ethernet cable can only be used if a HUB is placed between the embedded computer and your host. A cross over (or point to point)cable is required if you want to connect directly (without a HUB).

Once correctly configured use any HTTP client (such as Internet Explorer) to make a connection by typing ‘http://nnn.nnn.nnn.nnn’into the address bar – obviously replacing the nnn’s with the correct IP address.


Demo Application Functionality

The demo application creates 12 of the standard demo application tasks. These are included to demonstrate and test the RTOS kernel functionality.In addition a ‘Check’ task is created to ensure the standard demo tasks are executing correctly. Every three seconds the ‘Check’ task monitors thestandard demo tasks, then toggles the yellow LED. If the yellow LED is toggling every three seconds then the ‘Check’ task has not discoveredany errors. If the toggle rate increases to 500ms then an error has been discovered in at least one task.

A separate task is created to execute the uIP TCP/IP stack and web server. Oculus drivers. The uIP Ethernet driver can only poll the Ethernet interface. The LPC-E2124 8bit interface mode does not allow for interrupt operationof the CS8900 Ethernet controller. The uIP task therefore operates at a highpriority, yielding processing time to the other tasks when it finds nothing to do.

Positivo unique drivers download. To achieve this functionality a couple of small changes were required to the uIP code provided by Paul Curtis.

  • The file main.c provided with uIP was renamed uIP_Task.c so as not to conflict with the main.c of the demo application. Likewise the function main() within uIP_Task.c was renamed vuIP_TASK() as it is now created as a task rather than being the application entry point.
  • The yellow LED is now used by the ‘check’ task, rather than the uIP task.
  • The timer tick count used within the embedded TCP/IP drivers has been changed to use the RTOS tick count.
  • Calls to vTaskDelay() have been added to the TCP/IP driver code to yield processor time when there are no actions for the TCP/IP task to perform.
  • The maximum number of connections was increased from 10 to 20.

Execution Context

The RTOS scheduler executes in supervisor mode, tasks execute in system mode.

NOTE! : The processor MUST be in supervisor mode when the RTOS scheduler is started (vTaskStartScheduler is called). The demo applications included in the FreeRTOS download switch to supervisor mode prior to main being called. If you are not using one of these demo application projects then ensure Supervisor mode is entered before calling vTaskStartScheduler().

Rowley Associates Driver Jobs

See the LPC2000 GCC documentation for a lot more information on the RTOS scheduler setup and usage.

Licensing

Please note that the uIP stack is licensed separately to FreeRTOS. Users must familiarise themselves with the license conditions.