-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathfool_cat.fc_embed.pdsc
More file actions
309 lines (277 loc) · 14 KB
/
fool_cat.fc_embed.pdsc
File metadata and controls
309 lines (277 loc) · 14 KB
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
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
<?xml version="1.0" encoding="UTF-8"?>
<package schemaVersion="1.7.7" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
xs:noNamespaceSchemaLocation="https://raw.githubusercontent.com/Open-CMSIS-Pack/Open-CMSIS-Pack-Spec/v1.7.7/schema/PACK.xsd">
<vendor>fool_cat</vendor>
<name>fc_embed</name>
<description>fool_cat Embedded Library - lightweight core utilities and device-side helpers for embedded systems</description>
<url>https://github.com/fool-cat/fc_embed/releases/download/</url>
<supportContact>https://github.com/fool-cat/fc_embed</supportContact>
<license>LICENSE</license>
<releases>
<release version="1.0.0" date="2025-12-06">
Production release with layered CMSIS-Pack metadata fixes
Components Overview:
- Core layer: auto_init, fifo, pool, port, trans, stdio, log
- Device layer: type, sig, sig_filter, stp_base, stp_curve
Dependency Chain:
core:fifo -> core:port -> core:trans
core:pool + core:stdio -> core:log
device:type -> device:sig -> device:sig_filter
device:stp_base -> device:stp_curve
Fixes:
- Added explicit core/device layering with Cgroup and Csub
- Added tracked device modules to the CMSIS-Pack component model
- Restored the tracked core fifo module to the component list
- Restricted pack contents to tracked core/device files during generation
- Fixed the workflow trigger path for committing regenerated pack files
</release>
<release version="0.9.0" date="2025-12-02">
Initial development release with core functionality
</release>
</releases>
<keywords>
<keyword>Embedded</keyword>
<keyword>RTOS</keyword>
<keyword>Utilities</keyword>
<keyword>Logger</keyword>
<keyword>Memory Pool</keyword>
<keyword>FIFO</keyword>
</keywords>
<conditions>
<condition id="Cortex-M">
<description>Cortex-M based device</description>
<accept Dcore="Cortex-M0" />
<accept Dcore="Cortex-M0+" />
<accept Dcore="Cortex-M3" />
<accept Dcore="Cortex-M4" />
<accept Dcore="Cortex-M7" />
<accept Dcore="Cortex-M23" />
<accept Dcore="Cortex-M33" />
<accept Dcore="Cortex-M35P" />
<accept Dcore="Cortex-M55" />
<accept Dcore="Cortex-M85" />
</condition>
<condition id="fc_embed_core_auto_init">
<description>fc_embed core:auto_init</description>
<require condition="Cortex-M" />
</condition>
<condition id="fc_embed_core_fifo">
<description>fc_embed core:fifo</description>
<require condition="Cortex-M" />
</condition>
<condition id="fc_embed_core_pool">
<description>fc_embed core:pool</description>
<require condition="Cortex-M" />
</condition>
<condition id="fc_embed_core_port">
<description>fc_embed core:port (requires fifo and stdio)</description>
<require condition="Cortex-M" />
<require Cclass="fc_embed" Cgroup="core" Csub="fifo" />
<require Cclass="fc_embed" Cgroup="core" Csub="stdio" />
</condition>
<condition id="fc_embed_core_trans">
<description>fc_embed core:trans (requires port)</description>
<require Cclass="fc_embed" Cgroup="core" Csub="port" />
</condition>
<condition id="fc_embed_core_stdio">
<description>fc_embed core:stdio</description>
<require condition="Cortex-M" />
</condition>
<condition id="fc_embed_core_log">
<description>fc_embed core:log (requires pool and stdio)</description>
<require Cclass="fc_embed" Cgroup="core" Csub="pool" />
<require Cclass="fc_embed" Cgroup="core" Csub="stdio" />
</condition>
<condition id="fc_embed_device_type">
<description>fc_embed device:type</description>
<require condition="Cortex-M" />
</condition>
<condition id="fc_embed_device_sig">
<description>fc_embed device:sig (requires type)</description>
<require condition="Cortex-M" />
<require Cclass="fc_embed" Cgroup="device" Csub="type" />
</condition>
<condition id="fc_embed_device_sig_filter">
<description>fc_embed device:sig_filter (requires sig)</description>
<require Cclass="fc_embed" Cgroup="device" Csub="sig" />
</condition>
<condition id="fc_embed_device_stp_base">
<description>fc_embed device:stp_base</description>
<require condition="Cortex-M" />
</condition>
<condition id="fc_embed_device_stp_curve">
<description>fc_embed device:stp_curve (requires stp_base)</description>
<require Cclass="fc_embed" Cgroup="device" Csub="stp_base" />
</condition>
</conditions>
<components>
<!-- fc_embed core:auto_init -->
<component Cclass="fc_embed" Cgroup="core" Csub="auto_init" Cversion="1.0.0" condition="fc_embed_core_auto_init">
<description>Optional auto-initialization framework with staged ENV/CLOCK/DEVICE/APP execution and priority ordering.</description>
<RTE_Components_h>
#define RTE_FC_EMBED_CORE_AUTO_INIT /* fc_embed core:auto_init */
</RTE_Components_h>
<files>
<file category="header" attr="config" version="1.0.0" name="core/fc_config_template.h"
select="Config Template" />
<file category="source" name="core/fc_auto_init.c" />
<file category="header" attr="template" select="Auto Init Header" name="core/fc_auto_init.h" />
<file category="include" name="core/" />
</files>
</component>
<!-- fc_embed core:fifo -->
<component Cclass="fc_embed" Cgroup="core" Csub="fifo" Cversion="1.0.0" condition="fc_embed_core_fifo">
<description>Header-only power-of-two byte ring buffer based on Linux kfifo style APIs.</description>
<RTE_Components_h>
#define RTE_FC_EMBED_CORE_FIFO /* fc_embed core:fifo */
</RTE_Components_h>
<files>
<file category="header" attr="config" version="1.0.0" name="core/fc_config_template.h"
select="Config Template" />
<file category="header" attr="template" select="FIFO Header" name="core/fc_fifo.h" />
<file category="header" select="FIFO C++ Header" name="core/fc_fifo.hpp" />
<file category="include" name="core/" />
</files>
</component>
<!-- fc_embed core:pool -->
<component Cclass="fc_embed" Cgroup="core" Csub="pool" Cversion="1.0.0" condition="fc_embed_core_pool">
<description>Fixed-size memory pool with linked-chain support for non-contiguous blocks and optional dynamic allocation fallback.</description>
<RTE_Components_h>
#define RTE_FC_EMBED_CORE_POOL /* fc_embed core:pool */
</RTE_Components_h>
<files>
<file category="header" attr="config" version="1.0.0" name="core/fc_config_template.h"
select="Config Template" />
<file category="header" attr="config" select="Architecture Header" name="core/fc_arch.h" />
<file category="source" name="core/fc_pool.c" />
<file category="header" attr="template" select="Memory Pool Header" name="core/fc_pool.h" />
<file category="include" name="core/" />
</files>
</component>
<!-- fc_embed core:port -->
<component Cclass="fc_embed" Cgroup="core" Csub="port" Cversion="1.0.0" condition="fc_embed_core_port">
<description>Port abstraction layer with multi-buffer ring buffers, RTT-like I/O, and standard input/output redirection helpers.</description>
<RTE_Components_h>
#define RTE_FC_EMBED_CORE_PORT /* fc_embed core:port */
</RTE_Components_h>
<files>
<file category="header" attr="config" version="1.0.0" name="core/fc_config_template.h"
select="Config Template" />
<file category="source" name="core/fc_port.c" />
<file category="header" attr="template" select="Port Header" name="core/fc_port.h" />
<file category="include" name="core/" />
</files>
</component>
<!-- fc_embed core:trans -->
<component Cclass="fc_embed" Cgroup="core" Csub="trans" Cversion="1.0.0" condition="fc_embed_core_trans">
<description>Transport layer for multiplexed channel transmission over one physical channel using ANSI escape sequence page markers.</description>
<RTE_Components_h>
#define RTE_FC_EMBED_CORE_TRANS /* fc_embed core:trans */
</RTE_Components_h>
<files>
<file category="header" attr="config" version="1.0.0" name="core/fc_config_template.h"
select="Config Template" />
<file category="source" name="core/fc_trans.c" />
<file category="header" attr="template" select="Transport Header" name="core/fc_trans.h" />
<file category="include" name="core/" />
</files>
</component>
<!-- fc_embed core:stdio -->
<component Cclass="fc_embed" Cgroup="core" Csub="stdio" Cversion="1.0.0" condition="fc_embed_core_stdio">
<description>Lightweight printf-style formatting core built around FC_FILE and aggregated from core/utils via fc_stdio.c.</description>
<RTE_Components_h>
#define RTE_FC_EMBED_CORE_STDIO /* fc_embed core:stdio */
</RTE_Components_h>
<files>
<file category="header" attr="config" version="1.0.0" name="core/fc_config_template.h"
select="Config Template" />
<file category="source" name="core/fc_stdio.c" />
<file category="header" attr="template" select="StdIO Header" name="core/fc_stdio.h" />
<file category="include" name="core/" />
</files>
</component>
<!-- fc_embed core:log -->
<component Cclass="fc_embed" Cgroup="core" Csub="log" Cversion="1.0.0" condition="fc_embed_core_log">
<description>Buffered multi-level logger with ANSI color support, memory-pool-backed output, and stdio-based serialization.</description>
<RTE_Components_h>
#define RTE_FC_EMBED_CORE_LOG /* fc_embed core:log */
</RTE_Components_h>
<files>
<file category="header" attr="config" version="1.0.0" name="core/fc_config_template.h"
select="Config Template" />
<file category="header" attr="config" select="Architecture Header" name="core/fc_arch.h" />
<file category="source" name="core/fc_log.c" />
<file category="header" attr="template" select="Logger Header" name="core/fc_log.h" />
<file category="include" name="core/" />
</files>
</component>
<!-- fc_embed device:type -->
<component Cclass="fc_embed" Cgroup="device" Csub="type" Cversion="1.0.0" condition="fc_embed_device_type">
<description>Shared device-side type, time, and assertion abstraction used by signal and stepper helpers.</description>
<RTE_Components_h>
#define RTE_FC_EMBED_DEVICE_TYPE /* fc_embed device:type */
</RTE_Components_h>
<files>
<file category="header" attr="config" version="1.0.0" name="core/fc_config_template.h"
select="Config Template" />
<file category="header" attr="template" select="Device Type Header" name="device/fc_type.h" />
<file category="include" name="device/" />
</files>
</component>
<!-- fc_embed device:sig -->
<component Cclass="fc_embed" Cgroup="device" Csub="sig" Cversion="1.0.0" condition="fc_embed_device_sig">
<description>Binary signal abstraction that combines platform sampling, steady-state tracking, and edge-trigger callbacks.</description>
<RTE_Components_h>
#define RTE_FC_EMBED_DEVICE_SIG /* fc_embed device:sig */
</RTE_Components_h>
<files>
<file category="source" name="device/fc_sig.c" />
<file category="header" attr="template" select="Signal Header" name="device/fc_sig.h" />
<file category="include" name="device/" />
</files>
</component>
<!-- fc_embed device:sig_filter -->
<component Cclass="fc_embed" Cgroup="device" Csub="sig_filter" Cversion="1.0.0" condition="fc_embed_device_sig_filter">
<description>Signal filter strategy collection including repeat, asymmetric repeat, integrator, scale, and window-based filters.</description>
<RTE_Components_h>
#define RTE_FC_EMBED_DEVICE_SIG_FILTER /* fc_embed device:sig_filter */
</RTE_Components_h>
<files>
<file category="source" name="device/fc_sig_filter.c" />
<file category="header" attr="template" select="Signal Filter Header" name="device/fc_sig_filter.h" />
<file category="include" name="device/" />
</files>
</component>
<!-- fc_embed device:stp_base -->
<component Cclass="fc_embed" Cgroup="device" Csub="stp_base" Cversion="1.0.0" condition="fc_embed_device_stp_base">
<description>Stepper execution base with step/dir/ioctl hooks, pulse scheduling, position tracking, and motion heartbeats.</description>
<RTE_Components_h>
#define RTE_FC_EMBED_DEVICE_STP_BASE /* fc_embed device:stp_base */
</RTE_Components_h>
<files>
<file category="header" attr="config" version="1.0.0" name="core/fc_config_template.h"
select="Config Template" />
<file category="source" name="device/fc_stp_base.c" />
<file category="header" attr="template" select="Stepper Base Header" name="device/fc_stp_base.h" />
<file category="include" name="device/" />
<file category="include" name="core/" />
</files>
</component>
<!-- fc_embed device:stp_curve -->
<component Cclass="fc_embed" Cgroup="device" Csub="stp_curve" Cversion="1.0.0" condition="fc_embed_device_stp_curve">
<description>Stepper curve library providing ladder, trapezoid, smooth S-curve, and triangular-acceleration S-curve planners.</description>
<RTE_Components_h>
#define RTE_FC_EMBED_DEVICE_STP_CURVE /* fc_embed device:stp_curve */
</RTE_Components_h>
<files>
<file category="source" name="device/fc_stp_curve.c" />
<file category="header" attr="template" select="Stepper Curve Header" name="device/fc_stp_curve.h" />
<file category="include" name="device/" />
<file category="include" name="core/" />
</files>
</component>
</components>
<taxonomy>
<description Cclass="fc_embed">Fool Cat Embedded Library - Lightweight embedded system utilities</description>
</taxonomy>
</package>