<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://andromeda.df.lu.lv/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Janisg</id>
	<title>DiLab - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://andromeda.df.lu.lv/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Janisg"/>
	<link rel="alternate" type="text/html" href="http://andromeda.df.lu.lv/wiki/index.php/Special:Contributions/Janisg"/>
	<updated>2026-04-08T12:23:19Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>http://andromeda.df.lu.lv/wiki/index.php?title=MansOS_Coding_Standard&amp;diff=52</id>
		<title>MansOS Coding Standard</title>
		<link rel="alternate" type="text/html" href="http://andromeda.df.lu.lv/wiki/index.php?title=MansOS_Coding_Standard&amp;diff=52"/>
		<updated>2008-04-03T06:19:13Z</updated>

		<summary type="html">&lt;p&gt;Janisg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Be advised to use the following coding style when writing or editing &amp;#039;&amp;#039;&amp;#039;[[MansOS]]&amp;#039;&amp;#039;&amp;#039; source code.&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
* Write comments. Respect the reader!&lt;br /&gt;
&lt;br /&gt;
* Keep the line length under 78 to help the viewer and those that want to print your code. Break the line in several as necessary. &lt;br /&gt;
Never ever exceed the line length of 120 symbols.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Code flow and indenting ==&lt;br /&gt;
&lt;br /&gt;
Indent new code blocks by 4 spaces&lt;br /&gt;
&lt;br /&gt;
Note that TAB character is always 8 spaces. &lt;br /&gt;
However, set your editor to use spaces instead of the TAB character to avoid confusion when loading text files that may contain tab characters and was written using a different editor.&lt;br /&gt;
&lt;br /&gt;
You may want to select TAB key to indent and Backspace key to un-indent in your text editor (SciTe, Emacs, ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Variable and function names ==&lt;br /&gt;
&lt;br /&gt;
Variable names and function names shall start in lowercase and be written in [http://en.wikipedia.org/wiki/Camelcase CamelCase] - writeByte, not write_byte, wrt_byte or WrItEbYtE.&lt;br /&gt;
&lt;br /&gt;
  int writeByte;&lt;br /&gt;
  void printByte(void *buf);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pointer variables ===&lt;br /&gt;
&lt;br /&gt;
Add trailing &amp;quot;_p&amp;quot; to show this is a pointer&lt;br /&gt;
&lt;br /&gt;
int writeByte;&lt;br /&gt;
int writeByte_p; &amp;lt;-- like this&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Constants and defines ===&lt;br /&gt;
&lt;br /&gt;
Use all-uppercase for &amp;lt;code&amp;gt;#define&amp;lt;/code&amp;gt; constants, with underscore between the words&lt;br /&gt;
&lt;br /&gt;
  #define MAX_LENGTH  15&lt;br /&gt;
  #define HEIGHT      7&lt;br /&gt;
&lt;br /&gt;
For constants use first letter in uppercase with the rest in camelcase&lt;br /&gt;
Add trailing _c to show this is a constant.&lt;br /&gt;
&lt;br /&gt;
  const MaxBufferSize_c = 64;&lt;br /&gt;
&lt;br /&gt;
When using &amp;lt;code&amp;gt;#ifdef&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;#if&amp;lt;/code&amp;gt; constructs, &lt;br /&gt;
you should always use comments for &amp;lt;code&amp;gt;#endif&amp;lt;/code&amp;gt;.&lt;br /&gt;
The comment for &amp;lt;code&amp;gt;#endif&amp;lt;/code&amp;gt; should match the expression used in the corresponding &lt;br /&gt;
&amp;lt;code&amp;gt;#if&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;#ifdef&amp;lt;/code&amp;gt;.  The comment for &amp;lt;code&amp;gt;#else&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;#elif&amp;lt;/code&amp;gt; should match the&lt;br /&gt;
inverse of the expression(s) used in the preceding &amp;lt;code&amp;gt;#if&amp;lt;/code&amp;gt; and/or &amp;lt;code&amp;gt;#elif&amp;lt;/code&amp;gt;&lt;br /&gt;
statements.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  #ifdef MSP430&lt;br /&gt;
   /* msp430 stuff here */&lt;br /&gt;
  #else /* !MSP430 */&lt;br /&gt;
   /* non msp430 stuff here */&lt;br /&gt;
  #endif /* MSP430 */&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Enums, structs and all other types === &lt;br /&gt;
&lt;br /&gt;
Use the first letter in uppercase, the rest is CamelCase.&lt;br /&gt;
Add trailing &amp;quot;_t&amp;quot; to show this is a type, or &amp;quot;_e&amp;quot; to show this is an enum&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  typedef struct&lt;br /&gt;
  {&lt;br /&gt;
    int a;&lt;br /&gt;
    int b;&lt;br /&gt;
    int c;&lt;br /&gt;
  } MyStruct_t;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enums example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  typedef enum &lt;br /&gt;
  {&lt;br /&gt;
    RECTANGLE, &lt;br /&gt;
    CIRCLE = 17,&lt;br /&gt;
    LAST              // Use &amp;quot;Last&amp;quot; as the last enum available, as needed&lt;br /&gt;
  } ShapeType_e;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enumeration values all should be written in uppercase.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
   typedef enum { WHITE, BLACK } Color_e;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code control structures ==&lt;br /&gt;
&lt;br /&gt;
=== if, else, for, while, do ===&lt;br /&gt;
&lt;br /&gt;
Always use braces after &amp;lt;code&amp;gt;if(), else, for(), while(), do&amp;lt;/code&amp;gt;, even when there is only one statement in the block.&lt;br /&gt;
There might be a few exceptions when if and the statement is on the same line and unmistakeably has one simple statement such as an assignment.&lt;br /&gt;
&lt;br /&gt;
You may write the opening brace on the same or the next line. Use common sense. Generally to make a short if() with just one statement in the body I use it on the same line.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  if ( 17 == a ) b++;&lt;br /&gt;
&lt;br /&gt;
  if (...) {&lt;br /&gt;
      foo();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if (...)&lt;br /&gt;
  {&lt;br /&gt;
      foo();&lt;br /&gt;
      bar();&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When using comparisons in control structures, always try to use left-hand comparisons. &lt;br /&gt;
Because these types of comparisons detects typo errors early. &lt;br /&gt;
Typical errors arise in right-hand style when equality operator is required but assignment operator is used, &lt;br /&gt;
in left-hand style these typos will result in compilation error and crash early.&lt;br /&gt;
&lt;br /&gt;
daily usage of comparisons - right hand style&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  if ( a == 17 )&lt;br /&gt;
  {&lt;br /&gt;
    ...&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
left-hand style&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  if ( 17 == a )&lt;br /&gt;
  {&lt;br /&gt;
    ...&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Spacing in expressions ===&lt;br /&gt;
&lt;br /&gt;
Use space to separate tokens in expressions and braces everywhere in the code&lt;br /&gt;
However, you may use no space between unary operation and operand, for example, i++;&lt;br /&gt;
&lt;br /&gt;
  x = y + 16 - z++;&lt;br /&gt;
&lt;br /&gt;
  if( 17 == a ) {&lt;br /&gt;
    b = foo( c, d );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
=== Function and procedure heads ===&lt;br /&gt;
&lt;br /&gt;
Start every function or procedure with a comment block describing it. &lt;br /&gt;
The return type for functions may be on a separate line prior to the function name to make the function fit in a single line.&lt;br /&gt;
&lt;br /&gt;
  //-----------------------------------------------------------------------------&lt;br /&gt;
  //    Prints formated text in a box with x,y,w,h parameters.&lt;br /&gt;
  //-----------------------------------------------------------------------------&lt;br /&gt;
  uint32_t&lt;br /&gt;
  printInBox(char* text, char *format, int16_t x, int16_t y, int16_t w, int16_t z)&lt;br /&gt;
  {&lt;br /&gt;
      ...&lt;br /&gt;
  }&lt;/div&gt;</summary>
		<author><name>Janisg</name></author>
		
	</entry>
	<entry>
		<id>http://andromeda.df.lu.lv/wiki/index.php?title=MansOS_Coding_Standard&amp;diff=51</id>
		<title>MansOS Coding Standard</title>
		<link rel="alternate" type="text/html" href="http://andromeda.df.lu.lv/wiki/index.php?title=MansOS_Coding_Standard&amp;diff=51"/>
		<updated>2008-04-02T20:44:00Z</updated>

		<summary type="html">&lt;p&gt;Janisg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Be advised to use the following coding style when writing or editing &amp;#039;&amp;#039;&amp;#039;[[MansOS]]&amp;#039;&amp;#039;&amp;#039; source code.&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
* Write comments. Respect the reader!&lt;br /&gt;
&lt;br /&gt;
* Keep the line length under 78 to help the viewer and those that want to print your code. Break the line in several as necessary. &lt;br /&gt;
Never ever exceed the line length of 120 symbols.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Code flow and indenting ==&lt;br /&gt;
&lt;br /&gt;
Indent new code blocks by 4 spaces&lt;br /&gt;
&lt;br /&gt;
Note that TAB character is always 8 spaces. &lt;br /&gt;
However, set your editor to use spaces instead of the TAB character to avoid confusion when loading text files that may contain tab characters and was written using a different editor.&lt;br /&gt;
&lt;br /&gt;
You may want to select TAB key to indent and Backspace key to un-indent in your text editor (SciTe, Emacs, ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Variable and function names ==&lt;br /&gt;
&lt;br /&gt;
Variable names and function names shall start in lowercase and be written in [http://en.wikipedia.org/wiki/Camelcase CamelCase] - writeByte, not write_byte, wrt_byte or WrItEbYtE.&lt;br /&gt;
&lt;br /&gt;
  int writeByte;&lt;br /&gt;
  void printByte(void *buf);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pointer variables ===&lt;br /&gt;
&lt;br /&gt;
Add trailing &amp;quot;_p&amp;quot; to show this is a pointer&lt;br /&gt;
&lt;br /&gt;
int writeByte;&lt;br /&gt;
int writeByte_p; &amp;lt;-- like this&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Constants and defines ===&lt;br /&gt;
&lt;br /&gt;
Use all-uppercase for &amp;lt;code&amp;gt;#define&amp;lt;/code&amp;gt; constants, with underscore between the words&lt;br /&gt;
&lt;br /&gt;
  #define MAX_LENGTH  15&lt;br /&gt;
  #define HEIGHT      7&lt;br /&gt;
&lt;br /&gt;
For constants use first letter in uppercase with the rest in camelcase&lt;br /&gt;
Add trailing _c to show this is a constant.&lt;br /&gt;
&lt;br /&gt;
  const MaxBufferSize_c = 64;&lt;br /&gt;
&lt;br /&gt;
When using &amp;lt;code&amp;gt;#ifdef&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;#if&amp;lt;/code&amp;gt; constructs, &lt;br /&gt;
you should always use comments for &amp;lt;code&amp;gt;#endif&amp;lt;/code&amp;gt;.&lt;br /&gt;
The comment for &amp;lt;code&amp;gt;#endif&amp;lt;/code&amp;gt; should match the expression used in the corresponding &lt;br /&gt;
&amp;lt;code&amp;gt;#if&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;#ifdef&amp;lt;/code&amp;gt;.  The comment for &amp;lt;code&amp;gt;#else&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;#elif&amp;lt;/code&amp;gt; should match the&lt;br /&gt;
inverse of the expression(s) used in the preceding &amp;lt;code&amp;gt;#if&amp;lt;/code&amp;gt; and/or &amp;lt;code&amp;gt;#elif&amp;lt;/code&amp;gt;&lt;br /&gt;
statements.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  #ifdef MSP430&lt;br /&gt;
   /* msp430 stuff here */&lt;br /&gt;
  #else /* !MSP430 */&lt;br /&gt;
   /* non msp430 stuff here */&lt;br /&gt;
  #endif /* MSP430 */&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Enums, structs and all other types === &lt;br /&gt;
&lt;br /&gt;
Use the first letter in uppercase, the rest is CamelCase.&lt;br /&gt;
Add trailing &amp;quot;_t&amp;quot; to show this is a type, or &amp;quot;_e&amp;quot; to show this is an enum&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  typedef struct&lt;br /&gt;
  {&lt;br /&gt;
    int a;&lt;br /&gt;
    int b;&lt;br /&gt;
    int c;&lt;br /&gt;
  } MyStruct_t;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enums example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  typedef enum &lt;br /&gt;
  {&lt;br /&gt;
    RECTANGLE, &lt;br /&gt;
    CIRCLE = 17,&lt;br /&gt;
    LAST              // Use &amp;quot;Last&amp;quot; as the last enum available, as needed&lt;br /&gt;
  } ShapeType_e;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enumeration values all should be written in uppercase.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
   typedef enum { WHITE, BLACK } color_e;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code control structures ==&lt;br /&gt;
&lt;br /&gt;
=== if, else, for, while, do ===&lt;br /&gt;
&lt;br /&gt;
Always use braces after &amp;lt;code&amp;gt;if(), else, for(), while(), do&amp;lt;/code&amp;gt;, even when there is only one statement in the block.&lt;br /&gt;
There might be a few exceptions when if and the statement is on the same line and unmistakeably has one simple statement such as an assignment.&lt;br /&gt;
&lt;br /&gt;
You may write the opening brace on the same or the next line. Use common sense. Generally to make a short if() with just one statement in the body I use it on the same line.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  if ( 17 == a ) b++;&lt;br /&gt;
&lt;br /&gt;
  if (...) {&lt;br /&gt;
      foo();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if (...)&lt;br /&gt;
  {&lt;br /&gt;
      foo();&lt;br /&gt;
      bar();&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When using comparisons in control structures, always try to use left-hand comparisons. &lt;br /&gt;
Because these types of comparisons detects typo errors early. &lt;br /&gt;
Typical errors arise in right-hand style when equality operator is required but assignment operator is used, &lt;br /&gt;
in left-hand style these typos will result in compilation error and crash early.&lt;br /&gt;
&lt;br /&gt;
daily usage of comparisons - right hand style&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  if ( a == 17 )&lt;br /&gt;
  {&lt;br /&gt;
    ...&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
left-hand style&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  if ( 17 == a )&lt;br /&gt;
  {&lt;br /&gt;
    ...&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Spacing in expressions ===&lt;br /&gt;
&lt;br /&gt;
Use space to separate tokens in expressions and braces everywhere in the code&lt;br /&gt;
However, you may use no space between unary operation and operand, for example, i++;&lt;br /&gt;
&lt;br /&gt;
  x = y + 16 - z++;&lt;br /&gt;
&lt;br /&gt;
  if( 17 == a ) {&lt;br /&gt;
    b = foo( c, d );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
=== Function and procedure heads ===&lt;br /&gt;
&lt;br /&gt;
Start every function or procedure with a comment block describing it. &lt;br /&gt;
The return type for functions may be on a separate line prior to the function name to make the function fit in a single line.&lt;br /&gt;
&lt;br /&gt;
  //-----------------------------------------------------------------------------&lt;br /&gt;
  //    Prints formated text in a box with x,y,w,h parameters.&lt;br /&gt;
  //-----------------------------------------------------------------------------&lt;br /&gt;
  uint32_t&lt;br /&gt;
  printInBox(char* text, char *format, int16_t x, int16_t y, int16_t w, int16_t z)&lt;br /&gt;
  {&lt;br /&gt;
      ...&lt;br /&gt;
  }&lt;/div&gt;</summary>
		<author><name>Janisg</name></author>
		
	</entry>
	<entry>
		<id>http://andromeda.df.lu.lv/wiki/index.php?title=MansOS_Coding_Standard&amp;diff=50</id>
		<title>MansOS Coding Standard</title>
		<link rel="alternate" type="text/html" href="http://andromeda.df.lu.lv/wiki/index.php?title=MansOS_Coding_Standard&amp;diff=50"/>
		<updated>2008-04-02T20:43:29Z</updated>

		<summary type="html">&lt;p&gt;Janisg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Be advised to use the following coding style when writing or editing &amp;#039;&amp;#039;&amp;#039;[[MansOS]]&amp;#039;&amp;#039;&amp;#039; source code.&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
* Write comments. Respect the reader!&lt;br /&gt;
&lt;br /&gt;
* Keep the line length under 78 to help the viewer and those that want to print your code. Break the line in several as necessary. Never ever exceed the line length of 120.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Code flow and indenting ==&lt;br /&gt;
&lt;br /&gt;
Indent new code blocks by 4 spaces&lt;br /&gt;
&lt;br /&gt;
Note that TAB character is always 8 spaces. &lt;br /&gt;
However, set your editor to use spaces instead of the TAB character to avoid confusion when loading text files that may contain tab characters and was written using a different editor.&lt;br /&gt;
&lt;br /&gt;
You may want to select TAB key to indent and Backspace key to un-indent in your text editor (SciTe, Emacs, ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Variable and function names ==&lt;br /&gt;
&lt;br /&gt;
Variable names and function names shall start in lowercase and be written in [http://en.wikipedia.org/wiki/Camelcase CamelCase] - writeByte, not write_byte, wrt_byte or WrItEbYtE.&lt;br /&gt;
&lt;br /&gt;
  int writeByte;&lt;br /&gt;
  void printByte(void *buf);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pointer variables ===&lt;br /&gt;
&lt;br /&gt;
Add trailing &amp;quot;_p&amp;quot; to show this is a pointer&lt;br /&gt;
&lt;br /&gt;
int writeByte;&lt;br /&gt;
int writeByte_p; &amp;lt;-- like this&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Constants and defines ===&lt;br /&gt;
&lt;br /&gt;
Use all-uppercase for &amp;lt;code&amp;gt;#define&amp;lt;/code&amp;gt; constants, with underscore between the words&lt;br /&gt;
&lt;br /&gt;
  #define MAX_LENGTH  15&lt;br /&gt;
  #define HEIGHT      7&lt;br /&gt;
&lt;br /&gt;
For constants use first letter in uppercase with the rest in camelcase&lt;br /&gt;
Add trailing _c to show this is a constant.&lt;br /&gt;
&lt;br /&gt;
  const MaxBufferSize_c = 64;&lt;br /&gt;
&lt;br /&gt;
When using &amp;lt;code&amp;gt;#ifdef&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;#if&amp;lt;/code&amp;gt; constructs, &lt;br /&gt;
you should always use comments for &amp;lt;code&amp;gt;#endif&amp;lt;/code&amp;gt;.&lt;br /&gt;
The comment for &amp;lt;code&amp;gt;#endif&amp;lt;/code&amp;gt; should match the expression used in the corresponding &lt;br /&gt;
&amp;lt;code&amp;gt;#if&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;#ifdef&amp;lt;/code&amp;gt;.  The comment for &amp;lt;code&amp;gt;#else&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;#elif&amp;lt;/code&amp;gt; should match the&lt;br /&gt;
inverse of the expression(s) used in the preceding &amp;lt;code&amp;gt;#if&amp;lt;/code&amp;gt; and/or &amp;lt;code&amp;gt;#elif&amp;lt;/code&amp;gt;&lt;br /&gt;
statements.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  #ifdef MSP430&lt;br /&gt;
   /* msp430 stuff here */&lt;br /&gt;
  #else /* !MSP430 */&lt;br /&gt;
   /* non msp430 stuff here */&lt;br /&gt;
  #endif /* MSP430 */&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Enums, structs and all other types === &lt;br /&gt;
&lt;br /&gt;
Use the first letter in uppercase, the rest is CamelCase.&lt;br /&gt;
Add trailing &amp;quot;_t&amp;quot; to show this is a type, or &amp;quot;_e&amp;quot; to show this is an enum&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  typedef struct&lt;br /&gt;
  {&lt;br /&gt;
    int a;&lt;br /&gt;
    int b;&lt;br /&gt;
    int c;&lt;br /&gt;
  } MyStruct_t;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enums example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  typedef enum &lt;br /&gt;
  {&lt;br /&gt;
    RECTANGLE, &lt;br /&gt;
    CIRCLE = 17,&lt;br /&gt;
    LAST              // Use &amp;quot;Last&amp;quot; as the last enum available, as needed&lt;br /&gt;
  } ShapeType_e;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enumeration values all should be written in uppercase.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
   typedef enum { WHITE, BLACK } color_e;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code control structures ==&lt;br /&gt;
&lt;br /&gt;
=== if, else, for, while, do ===&lt;br /&gt;
&lt;br /&gt;
Always use braces after &amp;lt;code&amp;gt;if(), else, for(), while(), do&amp;lt;/code&amp;gt;, even when there is only one statement in the block.&lt;br /&gt;
There might be a few exceptions when if and the statement is on the same line and unmistakeably has one simple statement such as an assignment.&lt;br /&gt;
&lt;br /&gt;
You may write the opening brace on the same or the next line. Use common sense. Generally to make a short if() with just one statement in the body I use it on the same line.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  if ( 17 == a ) b++;&lt;br /&gt;
&lt;br /&gt;
  if (...) {&lt;br /&gt;
      foo();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if (...)&lt;br /&gt;
  {&lt;br /&gt;
      foo();&lt;br /&gt;
      bar();&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When using comparisons in control structures, always try to use left-hand comparisons. &lt;br /&gt;
Because these types of comparisons detects typo errors early. &lt;br /&gt;
Typical errors arise in right-hand style when equality operator is required but assignment operator is used, &lt;br /&gt;
in left-hand style these typos will result in compilation error and crash early.&lt;br /&gt;
&lt;br /&gt;
daily usage of comparisons - right hand style&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  if ( a == 17 )&lt;br /&gt;
  {&lt;br /&gt;
    ...&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
left-hand style&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  if ( 17 == a )&lt;br /&gt;
  {&lt;br /&gt;
    ...&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Spacing in expressions ===&lt;br /&gt;
&lt;br /&gt;
Use space to separate tokens in expressions and braces everywhere in the code&lt;br /&gt;
However, you may use no space between unary operation and operand, for example, i++;&lt;br /&gt;
&lt;br /&gt;
  x = y + 16 - z++;&lt;br /&gt;
&lt;br /&gt;
  if( 17 == a ) {&lt;br /&gt;
    b = foo( c, d );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
=== Function and procedure heads ===&lt;br /&gt;
&lt;br /&gt;
Start every function or procedure with a comment block describing it. &lt;br /&gt;
The return type for functions may be on a separate line prior to the function name to make the function fit in a single line.&lt;br /&gt;
&lt;br /&gt;
  //-----------------------------------------------------------------------------&lt;br /&gt;
  //    Prints formated text in a box with x,y,w,h parameters.&lt;br /&gt;
  //-----------------------------------------------------------------------------&lt;br /&gt;
  uint32_t&lt;br /&gt;
  printInBox(char* text, char *format, int16_t x, int16_t y, int16_t w, int16_t z)&lt;br /&gt;
  {&lt;br /&gt;
      ...&lt;br /&gt;
  }&lt;/div&gt;</summary>
		<author><name>Janisg</name></author>
		
	</entry>
	<entry>
		<id>http://andromeda.df.lu.lv/wiki/index.php?title=MansOS_Coding_Standard&amp;diff=49</id>
		<title>MansOS Coding Standard</title>
		<link rel="alternate" type="text/html" href="http://andromeda.df.lu.lv/wiki/index.php?title=MansOS_Coding_Standard&amp;diff=49"/>
		<updated>2008-04-02T20:32:08Z</updated>

		<summary type="html">&lt;p&gt;Janisg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Be advised to use the following coding style when writing or editing &amp;#039;&amp;#039;&amp;#039;[[MansOS]]&amp;#039;&amp;#039;&amp;#039; source code.&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
* Write comments. Respect the reader!&lt;br /&gt;
&lt;br /&gt;
* Keep the line length under 78 to help the viewer and those that want to print your code. Break the line in several as necessary.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Code flow and indenting ==&lt;br /&gt;
&lt;br /&gt;
Indent new code blocks by 4 spaces&lt;br /&gt;
&lt;br /&gt;
Note that TAB character is always 8 spaces. &lt;br /&gt;
However, set your editor to use spaces instead of the TAB character to avoid confusion when loading text files that may contain tab characters and was written using a different editor.&lt;br /&gt;
&lt;br /&gt;
You may want to select TAB key to indent and Backspace key to un-indent in your text editor (SciTe, Emacs, ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Variable and function names ==&lt;br /&gt;
&lt;br /&gt;
Variable names and function names shall start in lowercase and be written in [http://en.wikipedia.org/wiki/Camelcase CamelCase] - writeByte, not write_byte, wrt_byte or WrItEbYtE.&lt;br /&gt;
&lt;br /&gt;
  int writeByte;&lt;br /&gt;
  void printByte(void *buf);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pointer variables ===&lt;br /&gt;
&lt;br /&gt;
Add trailing &amp;quot;_p&amp;quot; to show this is a pointer&lt;br /&gt;
&lt;br /&gt;
int writeByte;&lt;br /&gt;
int writeByte_p; &amp;lt;-- like this&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Constants and defines ===&lt;br /&gt;
&lt;br /&gt;
Use all-uppercase for &amp;lt;code&amp;gt;#define&amp;lt;/code&amp;gt; constants, with underscore between the words&lt;br /&gt;
&lt;br /&gt;
  #define MAX_LENGTH  15&lt;br /&gt;
  #define HEIGHT      7&lt;br /&gt;
&lt;br /&gt;
For constants use first letter in uppercase with the rest in camelcase&lt;br /&gt;
Add trailing _c to show this is a constant.&lt;br /&gt;
&lt;br /&gt;
  const MaxBufferSize_c = 64;&lt;br /&gt;
&lt;br /&gt;
When using &amp;lt;code&amp;gt;#ifdef&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;#if&amp;lt;/code&amp;gt; constructs, &lt;br /&gt;
you should always use comments for &amp;lt;code&amp;gt;#endif&amp;lt;/code&amp;gt;.&lt;br /&gt;
The comment for &amp;lt;code&amp;gt;#endif&amp;lt;/code&amp;gt; should match the expression used in the corresponding &lt;br /&gt;
&amp;lt;code&amp;gt;#if&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;#ifdef&amp;lt;/code&amp;gt;.  The comment for &amp;lt;code&amp;gt;#else&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;#elif&amp;lt;/code&amp;gt; should match the&lt;br /&gt;
inverse of the expression(s) used in the preceding &amp;lt;code&amp;gt;#if&amp;lt;/code&amp;gt; and/or &amp;lt;code&amp;gt;#elif&amp;lt;/code&amp;gt;&lt;br /&gt;
statements.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  #ifdef MSP430&lt;br /&gt;
   /* msp430 stuff here */&lt;br /&gt;
  #else /* !MSP430 */&lt;br /&gt;
   /* non msp430 stuff here */&lt;br /&gt;
  #endif /* MSP430 */&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Enums, structs and all other types === &lt;br /&gt;
&lt;br /&gt;
Use the first letter in uppercase, the rest is CamelCase.&lt;br /&gt;
Add trailing &amp;quot;_t&amp;quot; to show this is a type, or &amp;quot;_e&amp;quot; to show this is an enum&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  typedef struct&lt;br /&gt;
  {&lt;br /&gt;
    int a;&lt;br /&gt;
    int b;&lt;br /&gt;
    int c;&lt;br /&gt;
  } MyStruct_t;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enums example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  typedef enum &lt;br /&gt;
  {&lt;br /&gt;
    RECTANGLE, &lt;br /&gt;
    CIRCLE = 17,&lt;br /&gt;
    LAST              // Use &amp;quot;Last&amp;quot; as the last enum available, as needed&lt;br /&gt;
  } ShapeType_e;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enumeration values all should be written in uppercase.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
   typedef enum { WHITE, BLACK } color_e;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code control structures ==&lt;br /&gt;
&lt;br /&gt;
=== if, else, for, while, do ===&lt;br /&gt;
&lt;br /&gt;
Always use braces after &amp;lt;code&amp;gt;if(), else, for(), while(), do&amp;lt;/code&amp;gt;, even when there is only one statement in the block.&lt;br /&gt;
There might be a few exceptions when if and the statement is on the same line and unmistakeably has one simple statement such as an assignment.&lt;br /&gt;
&lt;br /&gt;
You may write the opening brace on the same or the next line. Use common sense. Generally to make a short if() with just one statement in the body I use it on the same line.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  if ( a == 17 ) b++;&lt;br /&gt;
&lt;br /&gt;
  if (...) {&lt;br /&gt;
      foo();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if (...)&lt;br /&gt;
  {&lt;br /&gt;
      foo();&lt;br /&gt;
      bar();&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Spacing in expressions ===&lt;br /&gt;
&lt;br /&gt;
Use space to separate tokens in expressions and braces everywhere in the code&lt;br /&gt;
However, you may use no space between unary operation and operand, for example, i++;&lt;br /&gt;
&lt;br /&gt;
  x = y + 16 - z++;&lt;br /&gt;
&lt;br /&gt;
  if( a == 17 ) {&lt;br /&gt;
    b = foo( c, d );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
=== Function and procedure heads ===&lt;br /&gt;
&lt;br /&gt;
Start every function or procedure with a comment block describing it. &lt;br /&gt;
The return type for functions may be on a separate line prior to the function name to make the function fit in a single line.&lt;br /&gt;
&lt;br /&gt;
  //-----------------------------------------------------------------------------&lt;br /&gt;
  //    Prints formated text in a box with x,y,w,h parameters.&lt;br /&gt;
  //-----------------------------------------------------------------------------&lt;br /&gt;
  uint32_t&lt;br /&gt;
  printInBox(char* text, char *format, int16_t x, int16_t y, int16_t w, int16_t z)&lt;br /&gt;
  {&lt;br /&gt;
      ...&lt;br /&gt;
  }&lt;/div&gt;</summary>
		<author><name>Janisg</name></author>
		
	</entry>
	<entry>
		<id>http://andromeda.df.lu.lv/wiki/index.php?title=MansOS_Coding_Standard&amp;diff=48</id>
		<title>MansOS Coding Standard</title>
		<link rel="alternate" type="text/html" href="http://andromeda.df.lu.lv/wiki/index.php?title=MansOS_Coding_Standard&amp;diff=48"/>
		<updated>2008-04-02T20:31:27Z</updated>

		<summary type="html">&lt;p&gt;Janisg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Be advised to use the following coding style when writing or editing &amp;#039;&amp;#039;&amp;#039;[[MansOS]]&amp;#039;&amp;#039;&amp;#039; source code.&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
* Write comments. Respect the reader!&lt;br /&gt;
&lt;br /&gt;
* Keep the line length under 78 to help the viewer and those that want to print your code. Break the line in several as necessary.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Code flow and indenting ==&lt;br /&gt;
&lt;br /&gt;
Indent new code blocks by 4 spaces&lt;br /&gt;
&lt;br /&gt;
Note that TAB character is always 8 spaces. &lt;br /&gt;
However, set your editor to use spaces instead of the TAB character to avoid confusion when loading text files that may contain tab characters and was written using a different editor.&lt;br /&gt;
&lt;br /&gt;
You may want to select TAB key to indent and Backspace key to un-indent in your text editor (SciTe, Emacs, ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Variable and function names ==&lt;br /&gt;
&lt;br /&gt;
Variable names and function names shall start in lowercase and be written in [http://en.wikipedia.org/wiki/Camelcase CamelCase] - writeByte, not write_byte, wrt_byte or WrItEbYtE.&lt;br /&gt;
&lt;br /&gt;
  int writeByte;&lt;br /&gt;
  void printByte(void *buf);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pointer variables ===&lt;br /&gt;
&lt;br /&gt;
Add trailing &amp;quot;_p&amp;quot; to show this is a pointer&lt;br /&gt;
&lt;br /&gt;
int writeByte;&lt;br /&gt;
int writeByte_p; &amp;lt;-- like this&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Constants and defines ===&lt;br /&gt;
&lt;br /&gt;
Use all-uppercase for &amp;lt;code&amp;gt;#define&amp;lt;/code&amp;gt; constants, with underscore between the words&lt;br /&gt;
&lt;br /&gt;
  #define MAX_LENGTH  15&lt;br /&gt;
  #define HEIGHT      7&lt;br /&gt;
&lt;br /&gt;
For constants use first letter in uppercase with the rest in camelcase&lt;br /&gt;
Add trailing _c to show this is a constant.&lt;br /&gt;
&lt;br /&gt;
  const MaxBufferSize_c = 64;&lt;br /&gt;
&lt;br /&gt;
When using &amp;lt;code&amp;gt;#ifdef&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;#if&amp;lt;/code&amp;gt; constructs, &lt;br /&gt;
you should always use comments for &amp;lt;code&amp;gt;#endif&amp;lt;/code&amp;gt;.&lt;br /&gt;
The comment for &amp;lt;code&amp;gt;#endif&amp;lt;/code&amp;gt; should match the expression used in the corresponding &lt;br /&gt;
&amp;lt;code&amp;gt;#if&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;#ifdef&amp;lt;/code&amp;gt;.  The comment for &amp;lt;code&amp;gt;#else&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;#elif&amp;lt;/code&amp;gt; should match the&lt;br /&gt;
inverse of the expression(s) used in the preceding &amp;lt;code&amp;gt;#if&amp;lt;/code&amp;gt; and/or &amp;lt;code&amp;gt;#elif&amp;lt;/code&amp;gt;&lt;br /&gt;
statements. (&amp;lt;c&amp;gt; KNF)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  #ifdef MSP430&lt;br /&gt;
   /* msp430 stuff here */&lt;br /&gt;
  #else /* !MSP430 */&lt;br /&gt;
   /* non msp430 stuff here */&lt;br /&gt;
  #endif /* MSP430 */&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Enums, structs and all other types === &lt;br /&gt;
&lt;br /&gt;
Use the first letter in uppercase, the rest is CamelCase.&lt;br /&gt;
Add trailing &amp;quot;_t&amp;quot; to show this is a type, or &amp;quot;_e&amp;quot; to show this is an enum&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  typedef struct&lt;br /&gt;
  {&lt;br /&gt;
    int a;&lt;br /&gt;
    int b;&lt;br /&gt;
    int c;&lt;br /&gt;
  } MyStruct_t;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enums example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  typedef enum &lt;br /&gt;
  {&lt;br /&gt;
    RECTANGLE, &lt;br /&gt;
    CIRCLE = 17,&lt;br /&gt;
    LAST              // Use &amp;quot;Last&amp;quot; as the last enum available, as needed&lt;br /&gt;
  } ShapeType_e;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enumeration values all should be written in uppercase.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
   typedef enum { WHITE, BLACK } color_e;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code control structures ==&lt;br /&gt;
&lt;br /&gt;
=== if, else, for, while, do ===&lt;br /&gt;
&lt;br /&gt;
Always use braces after &amp;lt;code&amp;gt;if(), else, for(), while(), do&amp;lt;/code&amp;gt;, even when there is only one statement in the block.&lt;br /&gt;
There might be a few exceptions when if and the statement is on the same line and unmistakeably has one simple statement such as an assignment.&lt;br /&gt;
&lt;br /&gt;
You may write the opening brace on the same or the next line. Use common sense. Generally to make a short if() with just one statement in the body I use it on the same line.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  if ( a == 17 ) b++;&lt;br /&gt;
&lt;br /&gt;
  if (...) {&lt;br /&gt;
      foo();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if (...)&lt;br /&gt;
  {&lt;br /&gt;
      foo();&lt;br /&gt;
      bar();&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Spacing in expressions ===&lt;br /&gt;
&lt;br /&gt;
Use space to separate tokens in expressions and braces everywhere in the code&lt;br /&gt;
However, you may use no space between unary operation and operand, for example, i++;&lt;br /&gt;
&lt;br /&gt;
  x = y + 16 - z++;&lt;br /&gt;
&lt;br /&gt;
  if( a == 17 ) {&lt;br /&gt;
    b = foo( c, d );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
=== Function and procedure heads ===&lt;br /&gt;
&lt;br /&gt;
Start every function or procedure with a comment block describing it. &lt;br /&gt;
The return type for functions may be on a separate line prior to the function name to make the function fit in a single line.&lt;br /&gt;
&lt;br /&gt;
  //-----------------------------------------------------------------------------&lt;br /&gt;
  //    Prints formated text in a box with x,y,w,h parameters.&lt;br /&gt;
  //-----------------------------------------------------------------------------&lt;br /&gt;
  uint32_t&lt;br /&gt;
  printInBox(char* text, char *format, int16_t x, int16_t y, int16_t w, int16_t z)&lt;br /&gt;
  {&lt;br /&gt;
      ...&lt;br /&gt;
  }&lt;/div&gt;</summary>
		<author><name>Janisg</name></author>
		
	</entry>
	<entry>
		<id>http://andromeda.df.lu.lv/wiki/index.php?title=Chips_msp430&amp;diff=17</id>
		<title>Chips msp430</title>
		<link rel="alternate" type="text/html" href="http://andromeda.df.lu.lv/wiki/index.php?title=Chips_msp430&amp;diff=17"/>
		<updated>2008-03-22T12:15:54Z</updated>

		<summary type="html">&lt;p&gt;Janisg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MSP430 MCU GCC toolchain can be found here http://mspgcc.sourceforge.net/. &lt;br /&gt;
&lt;br /&gt;
The documentation supplied with mspgcc is very comprehensive and describes the MCU in great detail. Can be found here http://mspgcc.sourceforge.net/manual/. This could be very good introductory material for this MCU.&lt;br /&gt;
&lt;br /&gt;
Tmote Sky sensor module is equipped with MSP430 F1611 MCU. According to mspgcc docs on how to decode MSP430 part numbers (http://mspgcc.sourceforge.net/manual/x675.html).&lt;br /&gt;
&lt;br /&gt;
F1611 - stands for:&lt;br /&gt;
* F    - Flash ROM,&lt;br /&gt;
* 16xx - Like 14x, but adding 2xDAC12, 3xDMA, brownout reset and I2C,&lt;br /&gt;
* xx11 - 48K ROM, 10K RAM&lt;br /&gt;
&lt;br /&gt;
Manufacturers page for this MCU - http://focus.ti.com/docs/prod/folders/print/msp430f1611.html.&lt;br /&gt;
&lt;br /&gt;
Key documents about this MCU: &lt;br /&gt;
* [http://www.ti.com/litv/pdf/slau049f MSP430F15x/16x/161x MSP430x1xx Family User&amp;#039;s Guide (Rev. F)]&lt;br /&gt;
* [http://www.ti.com/lit/gpn/msp430f1611 MSP430x15x, MSP430x16x, MSP430x161x Mixed Signal Microcontroller (Rev. E) (Datasheet)]&lt;br /&gt;
* [http://www.ti.com/litv/pdf/slaz018b MSP430F15x/16x/161x Device Erratasheet (Rev. B)]&lt;/div&gt;</summary>
		<author><name>Janisg</name></author>
		
	</entry>
	<entry>
		<id>http://andromeda.df.lu.lv/wiki/index.php?title=Chips_msp430&amp;diff=16</id>
		<title>Chips msp430</title>
		<link rel="alternate" type="text/html" href="http://andromeda.df.lu.lv/wiki/index.php?title=Chips_msp430&amp;diff=16"/>
		<updated>2008-03-22T12:13:50Z</updated>

		<summary type="html">&lt;p&gt;Janisg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MSP430 MCU GCC toolchain can be found here http://mspgcc.sourceforge.net/. &lt;br /&gt;
&lt;br /&gt;
The documentation supplied with mspgcc is very comprehensive and describes the MCU in great detail. Can be found here http://mspgcc.sourceforge.net/manual/. This could be very good introductory material for this MCU.&lt;br /&gt;
&lt;br /&gt;
Tmote Sky sensor module is equipped with MSP430 F1611 MCU. According to mspgcc docs on how to decode MSP430 part numbers (http://mspgcc.sourceforge.net/manual/x675.html).&lt;br /&gt;
&lt;br /&gt;
F1611 - stands for:&lt;br /&gt;
* F    - Flash ROM,&lt;br /&gt;
* 16xx - Like 14x, but adding 2xDAC12, 3xDMA, brownout reset and I2C,&lt;br /&gt;
* xx11 - 48K ROM, 10K RAM&lt;br /&gt;
&lt;br /&gt;
Manufacturers page for this MCU - http://focus.ti.com/docs/prod/folders/print/msp430f1611.html.&lt;br /&gt;
&lt;br /&gt;
Key documents about this MCU: &lt;br /&gt;
* [http://www.ti.com/litv/pdf/slau049f MSP430F15x/16x/161x MSP430x1xx Family User&amp;#039;s Guide (Rev. F)]&lt;br /&gt;
* [http://www.ti.com/litv/pdf/slaz018b MSP430x15x, MSP430x16x, MSP430x161x Mixed Signal Microcontroller (Rev. E)]&lt;br /&gt;
* [http://www.ti.com/lit/gpn/msp430f1611 Device Erratasheet (Rev. B)]&lt;/div&gt;</summary>
		<author><name>Janisg</name></author>
		
	</entry>
	<entry>
		<id>http://andromeda.df.lu.lv/wiki/index.php?title=Chips_msp430&amp;diff=15</id>
		<title>Chips msp430</title>
		<link rel="alternate" type="text/html" href="http://andromeda.df.lu.lv/wiki/index.php?title=Chips_msp430&amp;diff=15"/>
		<updated>2008-03-22T12:12:22Z</updated>

		<summary type="html">&lt;p&gt;Janisg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MSP430 MCU GCC toolchain can be found here http://mspgcc.sourceforge.net/. &lt;br /&gt;
&lt;br /&gt;
The documentation supplied with mspgcc is very comprehensive and describes the MCU in great detail. Can be found here http://mspgcc.sourceforge.net/manual/. This could be very good introductory material for this MCU.&lt;br /&gt;
&lt;br /&gt;
Tmote Sky sensor module is equipped with MSP430 F1611 MCU. According to mspgcc docs on how to decode MSP430 part numbers (http://mspgcc.sourceforge.net/manual/x675.html).&lt;br /&gt;
&lt;br /&gt;
F1611 - stands for:&lt;br /&gt;
* F    - Flash ROM,&lt;br /&gt;
* 16xx - Like 14x, but adding 2xDAC12, 3xDMA, brownout reset and I2C,&lt;br /&gt;
* xx11 - 48K ROM, 10K RAM&lt;br /&gt;
&lt;br /&gt;
Manufacturers page for this MCU - http://focus.ti.com/docs/prod/folders/print/msp430f1611.html.&lt;br /&gt;
&lt;br /&gt;
Key documents about this MCU: &lt;br /&gt;
* [http://www.ti.com/lit/gpn/msp430f1611 MSP430x1xx Family User&amp;#039;s Guide (Rev. F)]&lt;br /&gt;
* [http://www.ti.com/litv/pdf/slaz018b MSP430x15x, MSP430x16x, MSP430x161x Mixed Signal Microcontroller (Rev. E)]&lt;br /&gt;
* [http://www.ti.com/litv/pdf/slau049f MSP430F15x/16x/161x Device Erratasheet (Rev. B)]&lt;/div&gt;</summary>
		<author><name>Janisg</name></author>
		
	</entry>
	<entry>
		<id>http://andromeda.df.lu.lv/wiki/index.php?title=MansOS&amp;diff=14</id>
		<title>MansOS</title>
		<link rel="alternate" type="text/html" href="http://andromeda.df.lu.lv/wiki/index.php?title=MansOS&amp;diff=14"/>
		<updated>2008-03-22T11:04:09Z</updated>

		<summary type="html">&lt;p&gt;Janisg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MansOS is an operating system for wireless sensor networks. It can be considered a branch of LiteOS operating system because it shares several defining characteristics. MansOS like LiteOS is designed to be easily adopted by system designers by avoiding the steep learning curve, because it is based on the concepts that are familiar to the majority of IT community. &lt;br /&gt;
&lt;br /&gt;
Key concepts common with LiteOS:&lt;br /&gt;
* MansOS is adopting programming in C and (eventually) C++, known to many people&lt;br /&gt;
* MansOS is treating a sensor network using Unix-like command tools and resources&lt;br /&gt;
* MansOS enables thread-like programming environment&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Additional key aspects specific to MansOS:&lt;br /&gt;
* MansOS is designed to be easily portable to new platforms&lt;br /&gt;
* MansOS enforces the structured HPL-HAL-HIL architecture at a mote level, ensuring clear interface for portability&lt;br /&gt;
* The focus during the development should be the whole system - a collection of mote entities rather than a single mote&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
&lt;br /&gt;
* [[MansOS_Philosophy | Philosophy]]&lt;br /&gt;
* [[MansOS_Architecture | Architecture]]&lt;br /&gt;
* [[MansOS_Directory_Structure | Directory structure]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Internals ===&lt;br /&gt;
&lt;br /&gt;
* [[MansOS_Kernel | Kernel]]&lt;br /&gt;
* [[MansOS_File_System | File system]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Development tools and techniques ===&lt;br /&gt;
&lt;br /&gt;
* [[MansOS_Apps_examples | Application examples]]&lt;br /&gt;
* [[MansOS_Eclipse | Eclipse setup]]&lt;br /&gt;
* [[MansOS_Testing | Debugging and testing]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware notes ===&lt;br /&gt;
&lt;br /&gt;
Chips&lt;br /&gt;
* [[Chips_msp430 | MCU: MSP430]]&lt;br /&gt;
* [[Chips_cc2420 | Radio: CC2420]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Platforms&lt;br /&gt;
* [[Platforms_telosb | telosb: Tmote Sky, Mini, etc.]]&lt;/div&gt;</summary>
		<author><name>Janisg</name></author>
		
	</entry>
	<entry>
		<id>http://andromeda.df.lu.lv/wiki/index.php?title=Chips_msp430&amp;diff=13</id>
		<title>Chips msp430</title>
		<link rel="alternate" type="text/html" href="http://andromeda.df.lu.lv/wiki/index.php?title=Chips_msp430&amp;diff=13"/>
		<updated>2008-03-22T11:03:34Z</updated>

		<summary type="html">&lt;p&gt;Janisg: New page: MSP430 MCU GCC toolchain can be found here http://mspgcc.sourceforge.net/.   The documentation supplied with mspgcc is very comprehensive and describes the MCU in great detail. Can be foun...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MSP430 MCU GCC toolchain can be found here http://mspgcc.sourceforge.net/. &lt;br /&gt;
&lt;br /&gt;
The documentation supplied with mspgcc is very comprehensive and describes the MCU in great detail. Can be found here http://mspgcc.sourceforge.net/manual/. This could be very good introductory material for this MCU.&lt;/div&gt;</summary>
		<author><name>Janisg</name></author>
		
	</entry>
</feed>