[Final Submission]: enhancement of embedded Rust libraries (testing) #1918
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Assignment Proposal
Title
Contributing to Rust Embedded ecosystem to improve developers experience. Submission on proposal #1587.
Names and KTH ID
Deadline
Task 1
Category
Contribution to open-source
Description
As anyone would say, Rust is hot 😉. The Rust Embedded ecosystem is also blooming to provide support to embedded platforms. For example The Knurling project is an open source project to automate Rust Embedded development by providing Rust-native level of support.
In Knurling
probe-run
is a custom runner to use Rust on embedded devices.defmt
provides an effective logger for testingflip-link
offers stack protection. When sensitive memory regions are reached, compilation fails instead of undefined behaviour.flip-link
needs some enhancements to improve developper experience:rust-lld
is a linker for GNU files.flip-link
should accept the same files asrust-lld
. Currently, some memory.x files (describing the memory) are not accepted byflip-link
while being accepted byrust-lld
. Meaning that developers must updates files by hand if they are incorrect.This OSS contribution fits in CI/Testing as it automates necessary work that was precedently done manually (i.e. a human needed to check if files were formatted correctly to avoid failure), and support for testing programs.
We added in total 7 tests to manage input that is currently accepted by
rust lld
, to makeflip-link
more resilient.Target PR
Fixed a bug about arithmetic operations handled incorrectly:
Issue #65 Easy bug
Self-assessment
* Added documentation on the components.
** It is quite a hefty code base that we needed to dive in.
The change we got merged was not a difficult piece of engineering, more code reformatting. But understand and rewrite a parser is more challenging.