Releases: DanielT/a2ltool
Releases · DanielT/a2ltool
Version v3.2.1
- Fix: repeatedly resolve type references until an actual type is found. This fixed nested type references in PDB debug info (by Louis Caron)
- Fix new clippy warnings
- update to a2lfile 3.3.2
- Fix: Allow fallback parser to skip comments in unknown IF_DATA blocks (Akhil T Thomas)
- Fix: Non-strict parsing should not fail if a string was expected, but comment + identifier was found. Previously the comment prevented the error recovery, where an identifier is accepted in place of a string. (Louis Caron)
Version v3.2.0
- Fix: creating new
TYPEDEF_CHARACTERISTICs from the command line was broken - Fix: Handle of the offset value in
SYMBOL_LINKs correctly. - DWARF type reader: get names from
DebugLineStrReftoo - estimate sizes for structures created using
--from-source
Version v3.1.0
- Add the
--old-arraysoption. It allows the use of old array notation (e.g. "._3_") to be forced,
even if the file version is 1.7.0 or 1.7.1 where new array notation (e.g. [2]) is possible. - Add the
--insert-a2mloption. When this option is set, a2ltool's built-in A2ML defintion is inserted into the a2l file if it doesn't contain an one already. - Bugfix: In some cases, depending on the debug info generated by the compiler, integer types were treated as bitfields
- Bugfix: The upper limit of bitfield values is no longer off by one
- Bugfix: prevent infinite recursion in the DWARF debug data reader if the element type of an array is the array itself
- Workaround: Some compilers claim that an enum is unsigned even if it contains enumerators with negative values. In this case the datatype is switched to a signed type.
- ignore case in parameters of command line options. For example
--update ADDRESSEScan also be written as--update addressesnow. - Correctly support the combination of
--enable-structureswith--from-source - Stop with an error message if there are problems while processing definitions in source files
Version v3.0.0
- Implement compatibility with Vector's ASAP2 Creator and allow creation of a2l elements using the same special comment syntax
- Implement additional modes for file merges.
The standard so far was to keep both conflicting elements. Now the--merge-preferenceoption can be used to always use the existing version or the new version instead. - Add a manual for a2ltool.
- Support non-standard
SYMBOL-LINKnotation, where the compile unit name is used as a prefix of the real symbol name - Implement the ability to update
VAR_ADDRESSinfo ofVAR_CHARACTERISTIC - Handle negative bit-offsets in DWARF2 debug info correctly instead of panicing
- Increase the size of the containing type for bitfields that extend past the end of their nominal containig type.
- Add more plausibility checks to
--check
Version v2.7.0
- support C++ references in the DWARF debug data reader
- update to a2lfile 3.0.0
- Comments are now preserved in some cases. Specifically, any comment that occurs in a position where a block is permitted
can be can be represented in the data, and is written to the output file. Sorting a2l files erases comments. - The values of BIT_MASK and error mask are u64 instead of u32, and parsing no longer fails for values that don't fit in u32.
- Allow multiple CALIBRATION_HANDLEs inside of CALIBRATION_METHOD (by Rainer Zaiser)
- Comments are now preserved in some cases. Specifically, any comment that occurs in a position where a block is permitted
Version v2.6.0
- handle offset values other than zero in SYMBOL_LINK
Offset values are still restricted to only point to the beginning of values, and cannot refer to e.g. the second byte of a 32-bit value. - update to a2lfile 2.5.0, which brings some bug fixes:
- improvements for the merge function:
- TYPEDEF_CHARACTERISTIC may reference a MEASUREMENT, but this reference was not updated during merges
- USER_RIGHTS can no longer get duplicate user entries as a result of the merge
- all items are merged in the order in which they appear in the merge file. Previously they were merged in reverse order
- During checking, accept referneces from an AXIS_PRS_REF or CURVE_AXIS_REF of a TYPEDEF_CHARACTERISTIC
to a structure component of the containing structure using the notation THIS.component_name.
- improvements for the merge function:
Version 2.5.0
- Support program information in PDB format
The new option--pdbfilecan be used instead of--elffilein order to read address and data type information from a PDB file. This supports the "virtual ECU" use case, where some parts of a microcontroller application are built on Windows and run inside a simulation environment. - Improve the limit adjustment logic
If an object with a 64-bit float data type had a compu-method, the limit calculation could produce +-INF.
This has been prevented. - Update to a2lfile 2.4.0, which brings the following improvements:
- The handling of /include normlizes the path separators, so that Windows paths work on Linux (by @AkhilTThomas)
- a2l checker improvements:
- The RECORD_LAYOUT used by a CHARACTERISTIC must contain FNC_VALUES
- A RECORD_LAYOUT must contain an AXIS_PTS_X/Y/Z for each internal axis
- There should be a specific number of AXIS_DESCR depending on the type of RECORD_LAYOUT
- The lower and upper limits of CHARACTERISTICs, MEASUREMENTs and AXIS_PTS
are checked for plausibility based on the data type of the item and its COMPU_METHOD.
- Bugfix: in some cases IF_DATA of newly merged files was not updated
- Bugfix: For both DWARF and PDB input the signedness of enums is now read and used.
Previously all enums were treated as unsigned. - Expanded and improved unit tests
- a new relase workflow automatically builds binaries for Windows and Linux
Version 2.4.0
- Document and validate the ability to use exe/DWARF2+ files, which are produced by MinGW gcc.
In practice support for these files has always existed because theobjectcrate transparently supports getting sections from exe files. - Allow greater control over the a2l update process
- The option
--updatecan now take an argumentFULLorADDRESSES(if the argument is not provided it defaults toFULL)
ModeFULLupdates addresses, datatypes, upper and lower limits, etc. It is a comprehensive update of all information in the a2l file.
The modeADDRESSESonly updates the addresses, leaving everything else untouched. - The option
--upate-preservehas been removed. Instead there is not--update-mode, which works in combination with--update
Update modeSTRICTverifies all information in the al2 file. If anything other than the addresses would be modified, then a2lfile reports an error.
Update modePRESERVEPRESERVE behaves like --update-preserve, and keeps unknown objects.
Update modeDEFAULT(or omitting the option entirely) allows incorrect information, and discards invalid blocks.
- The option
- Upgrade to a2lfile 2.3.2
- Bugfix: Escape codes \r, \n and \t in quoted strings were not handled correctly while writing files
- Bugfix: support the case where a compiler omits type information after the volatile tag for "volatile void*"
Version 2.3.0
- Bugfix: Handle the case of incomplete DWARF type info
C allows incomplete type declarations. For example "struct foo;" without a definition only tells the compiler that his type exists, and results in a stub type entry with the attribute DW_AT_declaration in the DWARF data. - upgrade to a2lfile 2.3.1
- change the behavior of merge for GROUPS and FUNCTION
Previously, if two GROUPS in a merge had the same name, then the incoming group was renamed with the suffix ".MERGE".
Now the content for GROUPs/FUNCTIONs with the same name is combined. - a2l checker improvements: fix several bugs, and handle some additional cases
- change the behavior of merge for GROUPS and FUNCTION
- In strict mode, any problems detected by
--checknow cause a2ltool to exit with an error code.
Outside of strict mode,--checkremains informational.
Version 2.2.0
- upgrade to a2lfile 2.2.0
- Bugfix: during merges, some items might be renamed to prevent name collisions, but not all references to renamed items were updated inside of TYPEDEF_*
- Successfully parse non-standard a2l files which contain hex-encoded integers where the parser expects a float value. (by @louiscaron)
- Add the ability to remove items by regex. This will remove any CHARACTERISTIC, MEASUREMENT or INSTANCE whose name matches.
Removal happens before insertion, if both are done in the same run. - Change the behavior of insertion by regex: the regex must match the whole variable name, instead of any substring inside it.
This makes insertion more precise, but some regexes that worked previously will need to be extended with .*