Llosa de Viango Tollos – FAQ



Getting started



  Tollos libraries

  Device libraries





  Sample application


Here are some troubleshooting hints – please let me know if you have any other questions that should be answered here.

There is also a design FAQ with some questions and answers on the design of Tollos.


  1. churn reports that “‘arm-none-eabi-gcc’ is not recognized as an internal or external command, operable program or batch file.”

    This occurs when CodeSourcery is installed without selecting the ‘add to PATH’ option. Either reinstall CodeSourcery, accepting the default option for the sixth step, or add the CodeSourcery binaries directory to the PATH environment variable manually. The binaries directory might be:
      C:\Program Files\CodeSourcery\Sourcery G++ Lite\bin

  2. churn compiles OK then reports that:

      arm-none-eabi-ld: C:\Program Files\CodeSourcery\Sourcery G++ Lite\lib\gcc\arm-
      none-eabi\4.5.2\thumb2\libgcc.a: No such file: No such file or directory

    This is because for some reason the linker cannot find this file automatically and it has to be included explicitly. With different versions of CodeSourcery its location changes. Change the value of the variable ‘eabi’ near the top of charm.bat from 4.5.2 to the version of your CodeSourcery.

  3. After compiling my application the .bin file is empty (size=0).

    This is because of an undocumented behaviour of the linker. It can happen if the application does not use any of the Tollos system functions. There are two workarounds:

    • Include a call to a system function (e.g., sysPause(0)) in the application
    • Extract the file tollos.o from tollos.a and add its name to the list of files and libraries passed to the linker before the library name tollos.a.

    The extract command for CodeSourcery G++ EABI is
      arm-none-eabi-ar x tollos.a tollos.o


  1. After a Watchdog reset, normal (external) resets appear to reset the board twice.

    This is a known problem (see this mbed forum thread). Removing then restoring the power to the board will revert to normal behaviour.


  1. The I2C clock on channel 2 runs twice as fast as specified.

    In lpc17xx i2c.c the I2C SetClock function has an error; in the case of I2Cx == LPC I2C2, the line

      temp = CLKPWR_GetPCLK (CLKPWR_PCLKSEL_I2C1) / target_clock;

    should be:

      temp = CLKPWR_GetPCLK (CLKPWR_PCLKSEL_I2C2) / target_clock;

    This has been corrected in the copy shipped with Tollos, but if you are using a different copy the error may still be there.

JTAG problems

  1. After I flash my version of psample into the Olimex STM32-H103 board, while it runs (as seen by the flashing LED), I lose control of the JTAG.

    This only seems to happen with OpenOCD (please let me know if you have the same problem using another flash tool). The JTAG code seems to get confused when the code running on the microcontroller does a WFI (Wait For Interrupt).

    A simple workaround for this is to change sysPowerIO(SYSTEM SLEEP) (in xSysIO.c) to just return immediately (e.g., comment out the call to __WFI()).

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 2011-10-24 by mfc.