Difference between revisions of "Coding Standards"

From Wiki
Jump to: navigation, search
(Blanked the page)
 
Line 1: Line 1:
−
= ARM Coding Standards =
 
  
−
== Formatting ==
 
−
dd
 
−
 
−
== Example ==
 
−
=== Header File ===
 
−
 
−
=== Source File ===
 
−
 
−
= 8051 Coding Standards =
 
−
 
−
== Formatting ==
 
−
 
−
 
−
== Example ==
 
−
=== Header File ===
 
−
 
−
<syntaxhighlight lang=c>
 
−
#ifndef _C_CODING_STANDARDS_H_
 
−
#define _C_CODING_STANDARDS_H_
 
−
 
−
//------------------------------------------------------------------------------------
 
−
// Global CONSTANTS
 
−
//------------------------------------------------------------------------------------
 
−
#define TRUE 1
 
−
#define FALSE 0
 
−
 
−
//#define SOME_DEFINE
 
−
#define SOME_OTHER_DEFINE
 
−
 
−
//------------------------------------------------------------------------------------
 
−
// Macros
 
−
//------------------------------------------------------------------------------------
 
−
#define LED_INVERT() LED_IO = !LED_IO //Macros should be made with '()' so that they look like regular functions (the last line does not need to be followed by a semicolon)
 
−
 
−
//------------------------------------------------------------------------------------
 
−
// Structures
 
−
//------------------------------------------------------------------------------------
 
−
struct struct_name
 
−
{
 
−
unsigned char character;
 
−
unsigned int integer;
 
−
};
 
−
 
−
union random_union
 
−
{
 
−
struct struct_name name;
 
−
unsigned char bytes[sizeof(struct_name)];
 
−
};
 
−
 
−
//------------------------------------------------------------------------------------
 
−
// Function Prototypes
 
−
//------------------------------------------------------------------------------------
 
−
void function_name(unsigned char parameters);
 
−
 
−
//------------------------------------------------------------------------------------
 
−
// Externs
 
−
//------------------------------------------------------------------------------------
 
−
extern bit variable_name;
 
−
unsigned char fixed_data_loaction;
 
−
unsigned char idata fixed_idata_location;
 
−
 
−
unsigned char bdata bitaddressable_char;
 
−
extern bit bitaddressable_char_bit0;
 
−
extern bit bitaddressable_char_bit1;
 
−
extern bit any_random_name;
 
−
 
−
#endif //_C_CODING_STANDARDS_H_
 
−
 
−
</syntaxhighlight>
 
−
 
−
=== Code File ===
 
−
<syntaxhighlight lang=c>
 
−
#pragma userclass (code = CODING_STANDARDS)
 
−
#pragma userclass (const = CODING_STANDARDS)
 
−
 
−
//------------------------------------------------------------------------------------
 
−
// Includes
 
−
//------------------------------------------------------------------------------------
 
−
#include "file.h"
 
−
 
−
#ifdef SOME_DEFINE
 
−
#include "other_file.h"
 
−
#endif
 
−
 
−
//------------------------------------------------------------------------------------
 
−
// Global Variables
 
−
//------------------------------------------------------------------------------------
 
−
// All variables are completely lower-case and delimited with underscores
 
−
bit variable_name;
 
−
unsigned char other_variable_name;
 
−
unsigned long big_ol_variable;
 
−
unsigned char fixed_data_location _at_ 0x32; //Cleared automatically on reboots
 
−
unsigned char idata fixed_idata_location _at_ 0x80; //Not cleared on warm reboots
 
−
 
−
unsigned char bdata bitaddressable_char;
 
−
sbit bitaddressable_char_bit0 = bitaddressable_char^0;
 
−
sbit bitaddressable_char_bit1 = bitaddressable_char^1;
 
−
sbit any_random_name = bitaddressable_char^7;
 
−
 
−
unsigned char code code_array[2] = {0x00, 0xFF};
 
−
unsigned char code big_code_array[6] =
 
−
{
 
−
0x01,
 
−
0x00,
 
−
0x01,
 
−
0x00,
 
−
0x02,
 
−
0x00
 
−
};
 
−
 
−
//------------------------------------------------------------------------------------
 
−
// Function Name - Optional But Recommended Description
 
−
//------------------------------------------------------------------------------------
 
−
void function_name(unsigned char parameters) using 2 //All function names are completely lower-case and delimited with underscores
 
−
{
 
−
unsigned char i;
 
−
 
−
// A line comment is formatted like this
 
−
if(variable_name && !other_variable_name)
 
−
variable_name = FALSE;
 
−
 
−
if(!variable_name || (other_variable_name > 8))
 
−
{
 
−
variable_name = TRUE;
 
−
fixed_idata_location = 0x0F; //TODO correct a random bug or add a certain feature
 
−
}
 
−
 
−
#ifdef SOME_DEFINE
 
−
do
 
−
{
 
−
other_variable_name--; //Code comment
 
−
}while(other_variable_name < 5);
 
−
 
−
#ifndef SOME_OTHER_DEFINE
 
−
for(i = 8; i; i--)
 
−
{
 
−
other_variable_name++;
 
−
fixed_idata_location = ((other_variable_name&0x01) ? 0xFF : 0x80);
 
−
}
 
−
#endif //!SOME_OTHER_DEFINE
 
−
#endif //SOME_DEFINE
 
−
 
−
#if defined SOME_DEFINE && !defined SOME_OTHER_DEFINE
 
−
while(fixed_idata_location&0x07) //< 8
 
−
{
 
−
fixed_idata_location += 0x02;
 
−
LED_INVERT(); //TODO DEBUG Don't forget to remove this before releasing to the public
 
−
}
 
−
#elif
 
−
 
−
#endif //SOME_DEFINE && !SOME_OTHER_DEFINE
 
−
 
−
switch(other_variable_name)
 
−
{
 
−
case 0:
 
−
case 1:
 
−
other_variable_name += 0x80;
 
−
break;
 
−
default:
 
−
other_variable_name = 0x00;
 
−
}
 
−
}
 
−
 
−
</syntaxhighlight>
 

Latest revision as of 13:53, 22 May 2018