embOS/IP Demo Using Rowley CrossStudio - Revised Procedure

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • embOS/IP Demo Using Rowley CrossStudio - Revised Procedure

    I'm running Rowley Cross Studio ARM (longest version number ever) on Windows XP SP3.
    My targets are the Embedded Artists LPC2478 32-bit board and my own custom LPC2468-based board.

    Just received my embOS 3.82i and embOS/IP 1.62.07 source.

    I had no trouble getting the embOS Start_2Tasks demo going "right out of the box."
    However, the embOS/IP OS_IP_SimpleServer demo took a little more effort than suggested by the 3 steps in Chapter 2 of the embOS/IP User Guide (UM07001).

    In step 2, the documentation tells you to add all the source files in the Config and IP directories and optionally the Util directory.

    When adding the files from the IP directory, do not add ARM_IP_cksum_ADS.s, ARM_IP_cksum_IAR.s, RX_IP_cksum_GNU.s, RX_IP_cksum_IAR.s and RX_IP_cksum_RENESAS.src.
    Also, for this particular demo application, the files in IP/IP_FS are not required.

    The files in the Util directory and its ARM_GNU subdirectory are NOT optional and must be added.

    In addition, the file IP_Config_LPC23xx.c in directory <embOSIP-root-directory>/BSP/LPC2378/Setup must be added to the project.

    As for the include paths, in addition to adding the ones in step 2, you also need to add <embOSIP-root-directory>/Sample/Config.

    In step 3 of Chapter 2, UM07001 recommends replacing the embOS application (i.e., Start_2Tasks.c) with OS_IP_SimpleServer.c. In addition to this file you will also need to add Main.c from the same directory.

    Unfortunately, OS_IP_SimpleServer.c appears to contain a typo that prevents compilation. Line 100 is

    C Source Code

    1. if (Error == IP_ERR_TIMEDOUT)
    and should be

    C Source Code

    1. if (Error == IP_ERR_TIMEOUT)
    . Not sure how this was missed?

    Finally, in source file IPConfigIO.c, if USE_DCC is zero then there is a call to putchar() in function _puts(...). According to Rowley's CrossStudio documentation, a call to putchar() becomes a call to __putchar() during compilation. __putchar() is typically undefined and you must provide an implementation. Alternatively, Rowley's support website indicates that you can configure CrossStudio to use Rowley's debug_putchar() simply by changing the "Library Options->I/O Library Name" to debug. I could not get this to work and Rowley claims it will be fixed in the next release. However, you can change the call to putchar() to debug_putchar() in IPConfigIO.c and then the demo should build and run. NOTE: You still need to change "Library Options->I/O Library Name" to debug in order to avoid a link error involving printf().

    While working through all these issues, I noticed that the CrossStudio project files that came with the embOS and embOS/IP source code may be from an older version as they do not appear to have all the same settings. For example, there is no evidence of a "Build Options->Target Processor" setting. I believe this led to a lack of support for flash breakpoints, which do work when I use a new project instead of trying to reuse the ones included with the Segger source.

    Anyway, I hope I remembered everything and that this helps other CrossStudio users.



    The post was edited 2 times, last by pawdrexel ().