forked from coocox/cox
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME
195 lines (148 loc) · 7.73 KB
/
README
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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
CoX - CoX Peripheral Interface, by CooCox(http://www.coocox.org)
http://www.coocox.org/cox.html
https://github.com/coocox/cox
General Information
-------------------------------------------------------------------------------
CoX Peripheral Library is the definition of a group of interface functions.
It defines the functional access functions of MCU's common peripherals, such
as IIC, SPI, UART, etc. CoX makes full functions, drivers based on CoX can be
ported to other MCU easily.
CoX Peripheral Library can be divided into four parts:
- Common mandatory type interface.
- Common type of non-mandatory interface.
- MCU-specific interface.
- MCU register interface.
Features
-------------------------------------------------------------------------------
- Free and open source under BSD license
- Peripherals library with a unified standard interface, can be ported to
other MCUs easily
- Full functions of the peripheral, CoX still provides a set of APIs for
special MCU features
- Support interrupt, CoX extracts a set of interrupt events
- A lot of reused drivers
- Extensive documentation generated using doxygen standard
- Standard definition of the API reference for almost all the Cortex-M0/M3
MCU manuals
- Add a new innovative element, such as the short pin (PA2) in GPIO module
- Strict coding standard and does not affect code size and speed, through
rigorous testing and verification
- Configurable
- Provide blank template to make port more easily
Why do we use CoX
-------------------------------------------------------------------------------
- CoX Peripheral is not only a common interface for drivers, but also a full
peripheral library
- CoX function interface unify the definition of the access functions of MCU's
common peripherals, which makes you port programs among different MCUs more
conveniently.
- CoX has a set of specific realization for each MCU, and its code size and
speed are nearly the same as the library that the suppliers provided.
When should we use CoX
-------------------------------------------------------------------------------
- If users may change MCU in the future and do not want to do too much
unnecessary port work.
- If users plan to use the existing drivers based on CoX interface.
Interface Definition & Roadmap
-------------------------------------------------------------------------------
+----------+---------------------------------------------+--------+-----------+
|Interface |Description |States |Date |
|----------|---------------------------------------------|--------|-----------|
|Startup |CoX startup code | Y |09/2011 |
|LowLayer |CoX lowlayer support, such as type define, | Y |09/2011 |
| |register define, debug assert and so on | | |
|CORE |Cortex-M0/M3 Core Peripheral Interface | Y |09/2011 |
|SysCtl |System Control(CG & PMC) Peripheral Interface| Y |09/2011 |
|DMA |DMA Peripheral Interface | Y |09/2011 |
|GPIO |GPIO & AFIO Peripheral Interface | Y |09/2011 |
|UART |UART Peripheral Interface | Y |09/2011 |
|SPI |SPI(SSI) Peripheral Interface | Y |09/2011 |
|I2C |I2C Peripheral Interface | Y |09/2011 |
|TIMER |Timer Peripheral Interface | Y |09/2011 |
|PWM |PWM Peripheral Interface | Y |09/2011 |
|RTC |RTC Peripheral Interface | Y |09/2011 |
|WDT |Watchdog Timer Peripheral Interface | Y |09/2011 |
|ADC |ADC Peripheral Interface | Y |09/2011 |
|ACMP |Analog Comparator Peripheral Interface | Y |09/2011 |
|I2S |Inter-Integrated Circuit Sound(I2S) | + |12/2011 |
| |Peripheral Interface | | |
|CAN |CAN Bus Peripheral Interface | + |12/2011 |
|USB |USB Device/Host/OTG Peripheral Interface | + |12/2011 |
|EBI |EBI bus Peripheral Interface | + |12/2011 |
+----------+---------------------------------------------+--------+-----------+
Supported MCU Platform & Roadmap
-------------------------------------------------------------------------------
+-----------------+-------------------+--------+-----------+
|Manufacturer |Series |States |Date |
|-----------------|-------------------|--------|-----------|
|CooCox |CoX Port Template | Y |09/2011 |
|-----------------|-------------------|--------|-----------|
|Nuvoton |NUC1xx | Y |09/2011 |
| |NUC122 | + |11/2011 |
| |M051 | + |12/2011 |
|-----------------|-------------------|--------|-----------|
|NXP |LPC11c1x | + |2012 |
| |LPC11xx | + |12/2011 |
| |LPC12xx | + |2012 |
| |LPC13xx | + |2012 |
| |LPC17xx | + |2012 |
|-----------------|-------------------|--------|-----------|
|ST |STM32F10x | + |12/2011 |
|-----------------|-------------------|--------|-----------|
|TI |Stellaris | + |12/2011 |
+-----------------+-------------------+--------+-----------+
Repository Information
-------------------------------------------------------------------------------
The contents of the repository can be divided into four parts:
- CoX interface and library code that ported to various MCU platforms
- Drivers based on CoX, such as temperature sensors LCD1602 and so on
- Protocol Stack based on CoX, such as USB stack and so on
- The code ported from all manufacturers library to CooCox CoIDE component
platform
Contribution
-------------------------------------------------------------------------------
Wish to be a contributor of CoX? You can:
1. Port Cox to a new MCU
2. Improve CoX
3. Develop drivers based on CoX
Please see the guide in the /Document/.
Repository Layout
-------------------------------------------------------------------------------
/CoX/
CoX peripheral librarys for diffrent MCU platform and drivers or
middleware that based on the CoX peripheral interface.
CoX_Peripheral/
CoX peripheral librarys for diffrent MCU platform.
CoX_Peripheral_Manual/
Source for generate CoX peripheral manual.
CoX_Peripheral_NUC1xx/
CoX peripheral library for Nuvoton NUC1xx.
CoX_Peripheral_Template/
CoX peripheral library port template.
...
publish/
Publish CoX peripheral library script.
Driver/
Drivers that based on the CoX peripheral interface.
resource/
testframe/
Driver test frame.
Sensor_Temp_ADI/
Drivers for ADI temperature sensor. The directory name like this:
Cate_SubCate_Manufacturer.
Sensor_Temp_Microchip/
Drivers for Microchip temperature sensor.
...
/Document/
Some document.
/LICENSE
Licensing and copyright information.
/Nuvoton/
Peripheral library compatible with CMSIS provided by Nuvoton.
NUC1xx/
NUC1xx peripheral library provided by Nuvoton.
...
/README
This file.
/Resource/
Some useful tools.