You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: README.md
+15-12
Original file line number
Diff line number
Diff line change
@@ -267,31 +267,34 @@ All measurement and calibration code instrumentation is non blocking and the tri
267
267
There are no heap allocation during runtime, except for the lazy registrations of and for A2L generation.
268
268
269
269
build.rs automatically builds a minimum static C library from individially preconfigured core XCPlite sources.
270
-
On C level, there is a synchronisation mutex for the mpsc transmit queue.
270
+
On C level, there is a synchronisation mutex or spinlock for the mpsc transmit queue.
271
271
The C code has the option to start the server with 2 normal threads for rx and tx socket handling.
272
272
273
-
The generated A2L file is finalized on XCP connect and provided for upload via XCP.
274
-
This is achieved with a simple A2L writer which uses a template for the A2L.
273
+
The generated A2L file is finalized on XCP connect and provided for upload via XCP.
275
274
276
-
The proc macro for more convinient A2L generation is still in an experimantal state.
275
+
The proc macro for more convinient A2L generation is still in an experimental state.
277
276
278
-
Measurement of local variables is done with a macro which either copies to a static transfer buffer or directly accesses the value on stack.
277
+
Measurement of local variables is done with a macro which either copies to a static transfer buffer in the event or directly accesses the value on stack.
279
278
This involves a lazy initialization of the structures to build the A2l file describing the local variables.
280
279
281
-
The low word of a calibration parameter (CHARACTERISTIC) memory address in the A2L file is a relative offset in the calibration page struct. The high word is the index of the calibration segment in alphabetic order.
282
-
The memory addresses of local variables are relative addresses in their event capture buffer or to the stack location of the variable holding the event.
283
-
This concept is currently not supported by the A2L update tools, though A2L generation at runtime is the only option.
280
+
There are 3 different addressing shemes, indicated by address extension (called _ABS, _DYN and _APP in the code).
281
+
In mode APP, the low word of a calibration parameters memory address in the A2L file is a relative offset in the calibration page struct.
282
+
The high word (& 0x7FFF) is the index of the calibration segment in a alphabetic ordered list.
283
+
The memory addresses of local measurement variables are relative addresses (mode DYN) in their event capture buffer on stack or to the stack location of the variable holding the event.
284
+
Mode ABS is the usual absolute addressing mode, relative to the module load address, which is only usefull for static cells.
285
+
These concepts are currently not supported by the A2L update tools, though A2L generation at runtime is the only option for now.
286
+
287
+
The EPK version string in the A2L file can be set by the application. It resides a seperate, hardcoded const memory segment.
284
288
285
-
The EPK version string in the A2L file can be set by the application. It resides a seperate const memory segment.
286
289
287
290
## Future improvements
288
291
289
-
- Create a zero lock MPSC event queue, increase queue efficiency (optimize mutex contention) for many daq lists and events
290
-
- The A2L file should not be loaded to memory to provide it for upload
292
+
- Create a minimal lock MPSC event queue, increase queue efficiency (optimize mutex contention) for many daq lists and events
291
293
- Support more types of calibration parameters, including types for curves and maps with axis
292
294
- Avoid the mutex lock in CalSeg::Sync when there is no pending parameter modification
293
295
- Improve the meta data annotations of the A2L serializer
294
-
- Reduce the number of heap allocations and strings in the proc-macros and in A2L generation, reduce the overall memory footprint
296
+
- Reduce the number of heap allocations and strings, reduce the overall memory footprint
297
+
- Add sub groups of measurements for event instances
295
298
- Add support to decribe the application clock domain in rust
296
299
- Provide a no-std version and create a embassy example
0 commit comments