diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/Drivers/STM32_USART.h b/Demo/CORTEX_STM32F103_GCC_Rowley/Drivers/STM32_USART.h
index 898835b3c2..d9eed30493 100644
--- a/Demo/CORTEX_STM32F103_GCC_Rowley/Drivers/STM32_USART.h
+++ b/Demo/CORTEX_STM32F103_GCC_Rowley/Drivers/STM32_USART.h
@@ -54,10 +54,51 @@
#ifndef STM_32_SERIAL_COMMS_H
#define STM_32_SERIAL_COMMS_H
+/*
+ * Initialise a COM port. As supplied 2 COM ports are supported, so ulPort can
+ * be either 0 or 1. Note that COM 0 is in effect USART1 in ST library
+ * terminology. The baud rate can be any standard baud rate and has been tested
+ * up to 115200 baud.
+ */
long lCOMPortInit( unsigned long ulPort, unsigned long ulWantedBaud );
+
+/*
+ * Output a single char to a COM port. As supplied 2 COM ports are supported,
+ * so ulPort can be 0 or 1. Note that COM 0 is in effect USART1 in ST library
+ * terminology. cOutChar is the character to be transmit, and xBlockTime is
+ * the time the task should be held in the Blocked state (in ticks) for space
+ * to become available in the queue of characters waiting transmission. pdPASS
+ * will be returned if the character is successfully queued (possible after
+ * waiting in the Blocked state for up to xBlockTime ticks), otherwise pdFAIL
+ * will be returned.
+ */
signed long xSerialPutChar( long lPort, signed char cOutChar, portTickType xBlockTime );
+
+/*
+ * Retrieve a character from the queue of received characters. As supplied 2
+ * COM ports are supported, so ulPort can be 0 or 1. Note that COM 0 is in
+ * effect USART1 in ST library terminology. pcRxedChar is the address into
+ * which the received character will be copied, and xBlockTime is the time the
+ * task should be held in the Blocked state (in ticks) for a character to be
+ * available if one is not available immediately. pdPASS will be returned if a
+ * character is successfully returned (possible after waiting in the Blocked
+ * state for up to xBlockTime ticks), otherwise pdFAIL will be returned.
+ */
signed long xSerialGetChar( long lPort, signed char *pcRxedChar, portTickType xBlockTime );
+
+/*
+ * Send a string of characters to a COM port. As supplied 2 COM ports are
+ * supported, so ulPort can be 0 or 1. Note that COM 0 is in effect USART1 in
+ * ST library terminology. pcString contains the address of the first
+ * character to be transmit, and ulStringLength the total number of characters
+ * from and including *pcString. pdPASS will be returned if the entire string
+ * is queued for transmission successfully, otherwise pdFAIL will be returned.
+ * Note that serPUT_STRING_CHAR_DELAY within STM32_USART.c can be adjusted in
+ * accordance with the applications requirements. Comments are included where
+ * serPUT_STRING_CHAR_DELAY is defined.
+ */
long lSerialPutString( long lPort, const char * const pcString, unsigned long ulStringLength );
#endif
+
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/RTOSDemo.hzs b/Demo/CORTEX_STM32F103_GCC_Rowley/RTOSDemo.hzs
index 60c0db1fb3..a2b9386082 100644
--- a/Demo/CORTEX_STM32F103_GCC_Rowley/RTOSDemo.hzs
+++ b/Demo/CORTEX_STM32F103_GCC_Rowley/RTOSDemo.hzs
@@ -18,7 +18,6 @@
-
@@ -49,14 +48,7 @@
-
-
-
-
-
-
-
-
+
diff --git a/Demo/CORTEX_STM32F103_GCC_Rowley/main.c b/Demo/CORTEX_STM32F103_GCC_Rowley/main.c
index fda7808112..33c8934974 100644
--- a/Demo/CORTEX_STM32F103_GCC_Rowley/main.c
+++ b/Demo/CORTEX_STM32F103_GCC_Rowley/main.c
@@ -70,7 +70,21 @@
*
* "Echo" task - This is a very basic task that simply echoes any characters
* received on COM0 (USART1). This can be tested by transmitting a text file
- * from a dumb terminal to the STM32 USART.
+ * from a dumb terminal to the STM32 USART then observing or capturing the text
+ * that is echoed back. Missing characters will be all the more obvious if the
+ * file contains a simple repeating string of fixed width.
+ *
+ * Currently this demo does not include interrupt nesting examples. High
+ * frequency timer and simpler nesting examples can be found in most Cortex M3
+ * demo applications.
+ *
+ * The functions used to initialise, set and clear LED outputs are normally
+ * defined in partest.c. This demo includes two partest files, one that is
+ * configured for use with the Keil MCBSTM32 evaluation board (called
+ * ParTest_MCBSTM32.c) and one that is configured for use with the official
+ * ST Eval board (called ParTest_ST_Eval.c). One one of these files should be
+ * included in the build at any one time, as appropriate for the hardware
+ * actually being used.
*/
/* Standard includes. */