osd-contiki/platform/win32/README-1.X.md

2.1 KiB

Win32

The platform/win32/ directory contains a showcase of Contiki 1.x technologies ported to the Contiki 2.x environment. As such it serves primarily two purposes:

  • Allow for easy interactive experience of the Contiki applications with user interface, especially the Contiki web browser.
  • Allow for easy regression tests of the code in core/ctk/ and most of the code in apps/.

The employed Contiki 1.x technologies include:

  • The 'Contiki Tool Kit' (CTK) UI framework in general
  • CTK running in a character based environment (here the Win32 Console API)
  • CTK mouse support
  • Dynamic loading and unloading of Contiki programs (.PRG) and Contiki program descriptions (.DSC) based on dynamically loadable libraries (here Win32 DLLs)

A typical Contiki 1.x implementation consists of a core binary (containing among others the uIP and CTK libraries) and the program (and program description) binaries which are both loaded by the core and reference the core libraries. Therefore the Contiki 2.x project-based build system doesn't suit exactly. So in order to be able to leverage the Contiki 2.x build system to its maximum extend two makefiles are necessary:

  • Makefile plays the role of a Contiki 2.x project Makefile
  • Makefile.win32 is an ordinary (yet complex) Contiki 2.x Makefile.$(TARGET)

As platform/win32/Makefile.win32 includes cpu/native/Makefile.native the WinPcap library is used for network I/O. Please consult cpu/native/net/README-WPCAP for further details.

Both a Cygwin Bash Shell and an ordinary Windows Command Prompt are fine for runtime. But in order to experience the CTK mouse support it is necessary to deactivate the 'QuickEdit Mode' of the window used. This option is found in its Windows system menu under 'Properties'.

As the console is used for displaying the actual user interface the log output is routed to the debug output. DebugView is a very lean program for displaying the debug output in case no debugger is active and does so. It is available at http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx.