Llosa de Viango Tollos – design FAQ



Getting started



  Tollos libraries

  Device libraries





  Sample application


Here are some questions and answers about the design of Tollos – please let me know if you have any other questions that could be answered here.

  1. Some microcontroller development systems provide a configuration language and tool which builds a custom ‘library’ the application is linked to. Why does Tollos not have a configuration tool?

    A configuration tool imposes another layer of complexity and tools on the programmer. Instead, the Tollos libraries are intended to be fixed, with configuration being resolved at link time.

    For example, instead of requiring separately compiled system libraries for each combination of chip and oscillator frequency, Tollos provides a single library for each chip family, which can be compiled once and then forgotten.

  2. Why do the ‘getting started’ pages use Windows examples and scripts? Why not Linux?

    Partly because Windows is the more complicated system, so it was necessary to cover the need for a USB device driver, for example. Also, the scripts are simple and should be easily ported to some other scripting language. At the moment I’m concentrating on the Tollos core.

  3. Why does Tollos use a 25 Hz tick? Some other systems use a 1kHz tick.

    Tollos runs a 10 kHz SysTick. The user tick() routine is called every 40 ms (400 SysTicks) by default because this is a suitable interval for refreshing a display, but the API lets you choose any tick interval >0 µs (including 1000, giving 1 kHz – suitable for many robotic applications).

    It is recommended that the tick interval be set to a multiple of the internal SysTick (currently 100us) for accurate tick timing.

  4. Where is the network stack?

    The target applications for Tollos are battery-driven, hand-held devices with long running time. These don’t really have the power budget for WiFi, and for connecting to a PC, laptop, or tablet, mini USB is just as convenient as Ethernet and perhaps more appropriate.

    However, there are some network stacks available which could be suitable for use with Tollos.

  5. Why does the API use functions to alter GPIO bits, instead of allowing direct manipulation of the hardware registers?

    Allowing direct access to the ports for bit-twiddling requires exposing the microcontroller details to the application at compile time; a particular chip family would have to be selected in order to compile an application. Further, the Tollos ‘glue’ for bits takes care of configuration of the bits (pin selection, input/output, etc.) which otherwise would differ depending on the microcontroller.

    Although in practice one usually needs to know the device connections in order to decide which pins to use, etc., the layering in Tollos permits the possibility of abstracting this kind of detail more in the future, and makes it simpler to move applications from one chip family to another.

Tollos and these web pages were written by Mike Cowlishaw; Please send me any corrections, suggestions, etc.
All content © Mike Cowlishaw, 2010–2012, except where marked otherwise. All rights reserved. The pages here are for non-commercial use only (see the separate licence for Tollos source code). Privacy policy: the Speleotrove website records no personal information and sets no ‘cookies’. However, statistics, etc. might be recorded by the web hosting service.

This page was last updated on 2012-02-09 by mfc.