
Monday, July 4, 2011
RTS on SparkFun's 5V FTDI Basic

Friday, October 1, 2010
One new trick for an old dog

A few weeks ago I received several small 0.85 x 1.26" (23 x 32mm) LPC210x header boards from BatchPCB. OpenOCD version 0.3.1 with FTDI2232 based adapter does work with LPC2103 on the board via new tiny JTAG connector. However, the OpenOCD configuration file needs minor adjustment since the connector has no TRST pin. So the reset configuration should include
srst_only
to let the OpenOCD know that TRST is not available.Thursday, April 1, 2010
CMSIS 2.0 Alpha
New Alpha version of CMSIS except adding Cortex-M4 support has replaced implementation of single assembly instruction functions by making them inline and moving code to dedicated header files (
core_cmFunc.h
and core_cmInstr.h
) in CoreSupport
folder. Thanks ARM! Now I can utilize original CMSIS code in my projects instead of coping functions with modified names to an additional header file. Nevertheless, the definition of __INLINE
for GCC compiler still does not enforce actual inlining of the code as I described in the previous post. Well. I hope it will be fixed in the final release.Monday, February 1, 2010
Using CMSIS with GCC
My interest in ARM Cortex-M3 based micros recently turned into some practical exercises with STM32-H103, GCC and Cortex Microcontroller Software Interface Standard (CMSIS) library. CMSIS is a useful set of definitions of Cortex-M0/M3 core architecture registers, data structures and interfaces to access core resources of a Cortex-M0/M3 based microcontroller. However, if you use GCC with CMSIS (v1.2.0 or v1.3.0) the definition of
__INLINE
macro provided in core_cm3.h
and core_cm0.h
:#define __INLINE inlinedoes not force the compiler to actually inline the body of a function defined with
__INLINE
attribute. To tell GCC to inline the define should be:#define __INLINE __attribute__((always_inline)) inlineFurthermore,
__get_xxx
, __set_xxx
, __LDREX
, __STREX
groups of a single assembly line functions implemented as a regular functions as oppose to inline functions. Change of these functions to inline style allowed two times improvement of the performance of certain fragments of my code.Sunday, June 21, 2009
My take on SST
My search of some sort of OS suitable for N1's on-board computer based on LPC2103 lead me to an article "Build a Super Simple Tasker" (SST). The article describes a "run-to-completion (RTC) prioritized, fully preemptive, deterministic real-time kernel". Although I like the simplicity of the idea I think that tight coupling between an event and its target task in SST implementation (see Listing 3) reduces flexibility of the kernel. The Observer pattern is commonly utilized by event propagation frameworks including frameworks designed by Mother Nature. Additionally, an Observer pattern based design would allow to create and destroy tasks during an application run time. With these thoughts in mind, I decided to put together my own implementation of the idea. Since the coding has been completed I am using this implementation in two unrelated projects and should confirm that RTC tasks fit pretty nicely into FSM oriented designs and single event queue implementation of the Observer pattern provides nice to have extra flexibility with minimal impact on performance.
Friday, May 29, 2009
Number one

Wednesday, May 20, 2009
Shrinkning Sharp GP2D120

Subscribe to:
Posts (Atom)