summaryrefslogtreecommitdiff
path: root/nuttx/include/nuttx/arch.h
diff options
context:
space:
mode:
Diffstat (limited to 'nuttx/include/nuttx/arch.h')
-rw-r--r--nuttx/include/nuttx/arch.h57
1 files changed, 56 insertions, 1 deletions
diff --git a/nuttx/include/nuttx/arch.h b/nuttx/include/nuttx/arch.h
index 8a9047e80..13336ae8b 100644
--- a/nuttx/include/nuttx/arch.h
+++ b/nuttx/include/nuttx/arch.h
@@ -1,7 +1,7 @@
/****************************************************************************
* include/nuttx/arch.h
*
- * Copyright (C) 2007-2013 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2007-2014 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
@@ -36,6 +36,61 @@
#ifndef __INCLUDE_NUTTX_ARCH_H
#define __INCLUDE_NUTTX_ARCH_H
+/* This header file contains function prototypes for the interfaces between
+ * (1) the nuttx core-code, (2) the microprocessor specific logic that
+ * resides under the arch/ sub-directory, and (3) the board-specific logic
+ * that resides under configs/
+ *
+ * Naming conventions:
+ *
+ * 1. Common Microprocessor Interfaces.
+ *
+ * Any interface that is common across all microprocessors should be
+ * prefixed with up_ and prototyped in this header file. These
+ * definitions provide the common interface between NuttX and the
+ * architecture-specific implementation in arch/
+ *
+ * NOTE: up_ is supposed to stand for microprocessor; the u is like the
+ * Greek letter micron: µ. So it would be µP which is a common shortening
+ * of the word microprocessor.
+ *
+ * 2. Microprocessor-Specific Interfaces.
+ *
+ * An interface which is unique to a certain microprocessor should be
+ * prefixed with the name of the microprocessor, for example stm32_,
+ * and be prototyped in some header file in the arch/ directories.
+ *
+ * There is also a arch/<architecture>/include/<chip>/chip.h header file
+ * that can be used to communicate other microprocessor-specific
+ * information between the board logic and even application logic.
+ * Application logic may, for example, need to know specific capabilities
+ * of the chip. Prototypes in that chip.h header file should follow the
+ * microprocessor specific naming convention.
+ *
+ * 3. Common Board Interfaces.
+ *
+ * Any interface that is common across all boards should be prefixed
+ * with board_ and should be prototyped in this header file. These
+ * board_ definitions provide the interface between the board-level
+ * logic and the architecture-specific logic.
+ *
+ * There is also a configs/<board>/include/board.h header file that
+ * can be used to communicate other board-specific information between
+ * the architecture logic and even application logic. Any definitions
+ * which are common between a single architecture and several boards
+ * should go in this board.h header file; this file is reserved for
+ * board-related definitions common to all architectures.
+ *
+ * 4. Board-Specific Interfaces.
+ *
+ * Any interface which is unique to a board should be prefixed with
+ * the board name, for example stm32f4discovery_. Sometimes the board
+ * name is too long so stm32_ would be okay too. These should be
+ * prototyped in configs/<board>/src/<board>.h and should not be used
+ * outside of that board directory since board-specific definitions
+ * have no meaning outside of the board directory.
+ */
+
/****************************************************************************
* Included Files
****************************************************************************/