Skip to content

Commit

Permalink
Update README with features and links to platform-specific components
Browse files Browse the repository at this point in the history
  • Loading branch information
pavel-kirienko committed Mar 9, 2020
1 parent a2f3364 commit e776368
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 1 deletion.
1 change: 1 addition & 0 deletions .idea/dictionaries/pavel.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

23 changes: 23 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,29 @@ Contribute: [`CONTRIBUTING.md`](/CONTRIBUTING.md)

Ask questions: [forum.uavcan.org](https://forum.uavcan.org)

## Features

- Full test coverage and static analysis.
- Partial compliance with automatically enforceable MISRA C rules (compliance report not available).
- Detailed time complexity and memory requirement models for the benefit of real-time high-integrity applications.
- Purely reactive API without the need for background servicing.
- Support for the Classic CAN and CAN FD.
- Support for redundant transports.
- Compatibility with 8/16/32/64-bit platforms.
- Compatibility with extremely resource-constrained baremetal environments starting from ca. 32K ROM, 4..8K RAM.
- Implemented in less than 1500 logical lines of code.

## Platforms

The library is designed to be usable without modification with any conventional 8/16/32/64-bit platform,
including deeply embedded baremetal platforms, as long as there is a standard-compliant C11 compiler available.
The platform-specific media IO layer (driver) is supposed to be provided by the application.

The UAVCAN Development Team maintains a collection of various platform-specific components in a separate repository
at <https://github.com/UAVCAN/platform_specific_components>.
Users are encouraged to search through that repository for drivers, examples, and other pieces that may be
reused in the target application to speed up the design of the media IO layer (driver) for the application.

## Example

The example augments the documentation but does not replace it.
Expand Down
2 changes: 1 addition & 1 deletion libcanard/canard.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
/// It is designed for use in robust deterministic embedded systems equipped with at least 32K ROM and 4..8K RAM.
/// The codebase follows the MISRA C rules, has 100% test coverage, and is validated by at least two static analyzers.
/// The library is designed to be compatible with any target platform and instruction set architecture, from 8 to 64
/// bit, little- and big-endian, RTOS-based or bare metal, etc., as long as there is a standards-compliant C11 compiler.
/// bit, little- and big-endian, RTOS-based or baremetal, etc., as long as there is a standards-compliant C11 compiler.
///
/// INTEGRATION
///
Expand Down

0 comments on commit e776368

Please sign in to comment.