main.txt 3.62 KB
Newer Older
David Brownell's avatar
David Brownell committed
1
/** @mainpage OpenOCD Developer's Guide
2

David Brownell's avatar
David Brownell committed
3
Welcome to the OpenOCD Developer's Guide -- the developer's resource for
4
learning about the internal architecture of the OpenOCD project. @par
5
6

In addition, this document contains the tactical and strategic plans
7
and processes that have been developed by and for the OpenOCD community.
8
9
10
11
12
13
14
15
16
17
18
19
20

Developers that want to contribute to OpenOCD should read the following
sections before starting work:

- The List of @subpage thelist enumerates opportunities for improving or
extending the OpenOCD platform.  If your ideas are on The List, you might
check the mailing list archives to find the status of your feature (or bug).
- The @subpage styleguide provides rules that developers should
  follow when writing new code for OpenOCD.
- The @subpage patchguide provides policies that developers should
  follow when submitting patches to the project.
- The @subpage bugs page contains the content of the BUGS file, which
  provides instructions for submitting bug reports to the maintainers.
21
- The @subpage releases page describes the project's release process.
22
23
24
25
26
27
28
29

@ref primer provide introductory materials for new developers on various
specific topics.

Finally, the @ref oocd pages explain how the code has been organized
into layers of APIs, providing an overview of how they fit together.
These pages attempt to give developers a high-level perspective of the
various code modules provided by OpenOCD.
30

31
32
 */

33
/** @page primer OpenOCD Technical Primers
34

35
This pages lists Technical Primers available for OpenOCD Developers.
36
37
38
They seek to provide information to pull novices up the learning curves
associated with the fundamental technologies used by OpenOCD.

39
- @subpage primerpatches
40
41
- @subpage primerdocs
- @subpage primerautotools
42
- @subpage primertcl
43
44
- @subpage primerjtag

45
The above documents should bridge any "ancillary" gaps in contributor
46
47
48
49
knowledge, without having to learn the complete languages or technology.
They should provide enough information for experienced developers to
learn how to make "correct" changes when creating patches.

50
51
52
53
54
55
Beyond the fundamentals, the following primers provide introductory
tutorials for OpenOCD's sub-systems.  These complement the @ref oocd
pages that provide more high-level perspective on related topics.

- @subpage primercommand

56
57
58
59
60
61
In all cases, these Primers should use idiomatic conventions that the
community has agreed are the "right way of doing things".  In this
respect, these documents typically assume some familiarity with the
information contained in one or more @ref styleguide, or they will
directly refer to specific style guides as supplemental reading.

62
63
64
65
Contributions or suggestions for new Technical Primers are welcome.

 */

66
67
68
69
70
71
72
73
74
75
76
77
/** @page oocd OpenOCD Architecture

The OpenOCD library consists of several APIs that build together to
provide the support functionality.  The following list shows how these
modules are stacked in the current implementation (from bottom to top):

- @subpage helperdocs
  - @ref helperporting
  - @ref helperjim
  - @ref helpercommand
  - @ref helperlogging
- @subpage jtagdocs
78
  - @ref jtagcore
79
  - @ref jtagtcl
80
81
  - @ref jtagcmd
  - @ref jtagiface
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
  - @ref jtagdriver
- @subpage targetdocs
  - @ref targetarm
  - @ref targetnotarm
  - @ref targetregister
  - @ref targetimage
  - @ref targettrace
- @subpage flashdocs
  - @ref flashcfi
  - @ref flashnand
  - @ref flashtarget
- @subpage serverdocs
  - @ref servergdb
  - @ref servertelnet
  - @ref serverhttp
- @subpage appdocs

Obviously, there are some nuances to the stack that are not shown by
this linear list of layers.

102
103
104
The List of @ref thelist enumerates opportunities for improving or
extending the OpenOCD platform.

105
 */