summaryrefslogtreecommitdiff
path: root/nuttx/Documentation/NuttxPortingGuide.html
blob: 1065d009778b29a24c6ac5fe37c3901986c4ec9d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<html>

<head>
<title>NuttX Porting Manual</title>
<meta name="author" content="Gregory Nutt">
</head>

<body background="backgd.gif">
<hr>
<center><h1><i>Under Construction</i></h1></center>
<hr>
<center>
  <big><b>
    <p>Nuttx Operating System</p>
    <p>Porting Guide</p>
  </b></big>
  <p><small>by</small></p>
  <p>Gregory Nutt</p>
  <p><small>Last Update: February 8, 2007</small></p>
</center>

<center><h1>Table of Contents</h1></center>
<li>1.0 <a href="#Introduction">1.0 Introduction</a></li>
<li>2.0 <a href="#DirectoryStructure">Directory Structure</a></li>
<ul>
  <li>2.1 <a href="#DirStructDocumentation">Documentation</a></li>
  <l1>2.2 <a href="#DirStructArch">arch</a></li>
  <li>2.3 <a href="#DirStructDrivers">drivers</a></li>
  <li>2.4 <a href="#DirStructExamples">examples</a></li>
  <li>2.5 <a href="#DirStructFs">fs</a></li>
  <li>2.6 <a href="#DirStructInclude">include</a></li>
  <li>2.7 <a href="#DirStructLib">lib</a></li>
  <li>2.8 <a href="#DirStructMm">mm</a></li>
  <li>2.9 <a href="#DirStructSched">sched</a></li>
  <li>2.10 <a href="#DirStructDrivers">tools</a></li>
</ul>
<li>3.0 <a href="#DirectoryConfiAndBuild">Configuring and Building</a></li>

<hr>
<h1>1.0 <a name="Introduction">Introduction</a></h1>

<p><b>Overview</b>
  This document provides and overview of the Nuttx build and configuration
  logic and provides hints for the incorporation of new processor/board archectures
  into the build.
</p>
<p>
  See also arch/README.txt.
</p>

<p><b>General Philosophy</b>.

<hr>
<h1>2.0 <a name="DirectoryStructure">Directory Structure</a></h1>

<p>The general directly layout for Nuttx is very similar to the directory structure
of the Linux kernel -- at least at the most superficial layers.
At the top level is the main makefile and a series of sub-directories identified
below and discussed in the following paragraphs:</p>
 
<ul><pre>
.
|-- Makefile
|-- <a href="#DirStructDocumentation">Documentation</a>
|   `-- <i>(documentation files)</i>
|-- <a href="#DirStructArch">arch</a>
|   |-- <i>(architecture)</i>
|   |   |-- Make.defs
|   |   |-- defconfig
|   |   |-- include
|   |   |-- setenv.sh
|   |   `-- src
|   `-- <i>(other architectures)</i>
|-- <a href="#DirStructDrivers">drivers</a>
|   |-- Makefile
|   `-- <i>(driver source files)</i>
|-- <a href="#DirStructExamples">examples</a>
|   `-- <i>(example)</i>
|       |-- Makefile
|       `-- <i>(example source files)</i>
|-- <a href="#DirStructFs">fs</a>
|   |-- Makefile
|   `-- <i>(fs source files)</i>
|-- <a href="#DirStructInclude">include</a>
|   |-- <i>(standard header files)</i>
|   |-- nuttx
|   |   `-- <i>(nuttx specific header files)</i>
|   `- sys
|   |   `-- <i>(more standard header files)</i>
|-- <a href="#DirStructLib">lib</a>
|   |-- Makefile
|   `-- <i>(lib source files)</i>
|-- <a href="#DirStructMm">mm</a>
|   |-- Makefile
|   `-- <i>(mm source files)</i>
|-- <a href="#DirStructSched">sched</a>
|   |-- Makefile
|   `-- <i>(sched source files)</i>
`-- <a href="#DirStructDrivers">tools</a>
    |-- Makefile.mkconfig
    |-- configure.sh
    |-- mkconfig.c
    |-- mkdeps.sh
    `-- zipme
</pre></ul>

<h2>2.1 <a name="DirStructDocumentation">Documentation</a></h2>
<h2>2.2 <a name="DirStructArch">arch</a></h2>
<h2>2.3 <a name="DirStructDrivers">drivers</a></h2>
<h2>2.4 <a name="DirStructExamples">examples</a></h2>
<h2>2.5 <a name="DirStructFs">fs</a></h2>
<h2>2.6 <a name="DirStructInclude">include</a></h2>
<h2>2.7 <a name="DirStructLib">lib</a></h2>
<h2>2.8 <a name="DirStructMm">mm</a></h2>
<h2>2.9 <a name="DirStructSched">sched</a></h2>
<h2>2.10 <a name="DirStructDrivers">tools</a></h2>

<hr>
<h1>3.0 <a name="DirectoryConfiAndBuild">Configuring and Building</a></h1>

</body>
</html>