commit | 434bf6178b3aa338c3d88d8c7376b377d5efeddc | [log] [tgz] |
---|---|---|
author | Paulo Neves <paulo.neves@nokia.com> | Thu Oct 18 15:47:20 2018 +0200 |
committer | Mike Leach <mike.leach@linaro.org> | Fri Nov 16 15:30:20 2018 +0000 |
tree | 6f850ca0996871378d96a21e1df32e77418e61ee | |
parent | 532b85df5b630c59b99b2e95179b295d69c1f8f4 [diff] |
build: Map dependencies correctly. Previously the dependencies were incorectly marked on phony targets instead of the targets. For example libraries did not have dependencies on objects, only the phony target had, so Make was free to build the objects and the library archiving at the same time. This wrong as the archiving actually depends on object files being available This leads to race conditions and failures to build when OpenCSD build in parallel. It may lead to more nasty errors like old object files mixed with newly generated ones leading to obvious defects.
This library provides an API suitable for the decode of ARM(r) CoreSight(tm) trace streams.
The library will decode formatted trace in three stages:
The library is implemented in C++ with an optional "C" API.
From version 0.4, library versioning will use a semantic versioning format (per http://semver.org) of the form Major.minor.patch (M.m.p).
Internal library version calls, documentation and git repository will use this format moving forwards. Where a patch version is not quoted, or quoted as .x then comments will apply to the entire release.
Releases will be at M.m.0, with patch version incremented for bugfixes or documentation updates.
Releases will appear on the master branch in the git repository with an appropriate version tag.
Current Version 0.10.0
ETMv4 (v4.1) instruction trace - packet processing and packet decode.
PTM (v1.1) instruction trace - packet processing and packet decode.
ETMv3 (v3.5) instruction trace - packet processing and packet decode.
ETMv3 (v3.5) data trace - packet processing.
STM (v1.1) software trace - packet processing and packet decode.
External Decoders - support for addition of external / custom decoders into the library.
Note: for ITM and STM, packet decode is combining Master+Channel+Marker+Payload packets into a single generic output packet.
This git repository for OpenCSD contains only source for the OpenCSD decoder library. From version 0.4, releases appear as versioned tags on the master branch.
From version 0.7.4, the required updates to CoreSight drivers and perf, that are not currently upstream in the linux kernel tree, are now contained in a separate repository to be found at:
https://github.com/Linaro/perf-opencsd
API Documentation is provided inline in the source header files, which use the doxygen standard mark-up. Run doxygen
on the ./doxygen_config.dox
file located in the ./docs
directory..
doxygen ./doxygen_config.dox
This will produce the documentation in the ./docs/html
directory. The doxygen configuration also includes the *.md
files as part of the documentation.
See the [programmers guide](@ref prog_guide) for details on usage of the library in custom applications. (./docs/prog_guide/prog_guide_main.md
).
See [build_libs.md](@ref build_lib) in the ./docs
directory for build details.
The linux build makefile now contains options to install the library for a linux environment.
perf
The library and additional infrastructure for programming CoreSight components has been integrated with the standard linux perfomance analysis tool perf
.
See [HOWTO.md](@ref howto_perf) for details.
Capturing trace using perf and decoding using the library can generate profiles for AutoFDO.
See [autofdo.md](@ref AutoFDO) for details and scripts.
(./tests/auto-fdo/autofdo.md
).
perf
tools integration - BKK16, 8th March 2016This library is licensed under the BSD three clause licence.
A copy of this license is in the LICENCE
file included with the source code.
Using the github site: https://github.com/Linaro/OpenCSD
Mailing list: coresight@lists.linaro.org