profile
viewpoint
Jorge Aparicio japaric @ferrous-systems Berlin, Germany https://blog.japaric.io/ @ferrous-systems engineer. @rust-embedded WG core member. He/they

bheisler/criterion.rs 1345

Statistics-driven benchmarking library for Rust

japaric/cargo-call-stack 304

Whole program static stack analysis

japaric/f3 83

Board Support Crate for the STM32F3DISCOVERY

japaric/cast.rs 54

Machine scalar casting that meets your expectations

japaric/embedded-in-rust 48

A blog about Rust and embedded stuff

iqlusioninc/usbarmory.rs 44

Bare metal Rust support for USB armory MkII devices

japaric/embedded2020 31

A fresh look at embedded Rust development

japaric/cty 17

Type aliases to C types like c_int for use with bindgen

japaric/enc28j60 13

A platform agnostic driver to interface with the ENC28J60 (Ethernet controller)

japaric/cortex-m-funnel 12

[Experiment] A lock-free, wait-free, block-free logger for the ARM Cortex-M architecture

push eventrust-embedded/discovery

Travis CI User

commit sha 3bddb7346452164834347bd6f468511356875852

Update documentation

view details

push time in 4 days

push eventrust-embedded/showcase

Travis CI User

commit sha 86d97bb2cdc67094aaf1618edf3d39312b68f3ed

Update documentation

view details

push time in 4 days

push eventrust-embedded/docs

Travis CI User

commit sha 262cec902429d6e06612b18670af275fe6554bb3

Update documentation

view details

push time in 4 days

push eventjaparic/heapless

Travis CI User

commit sha e8b6a2f8eed522889af72f4cb7640ac2ce4712a0

Update documentation

view details

push time in 4 days

pull request commentjaparic/heapless

Buffer methods for Vec and as_mut_vec for String

bors r+

samlich

comment created time in 4 days

push eventrust-embedded/embedonomicon

Travis CI User

commit sha f86a2e8072702dba1b699c89a283c936943e433e

Update documentation

view details

push time in 4 days

push eventrust-embedded/embedonomicon

Travis CI User

commit sha aba455ee1326583735c0252e31d76002475a8ae2

Update documentation

view details

push time in 4 days

push eventrust-embedded/book

Travis CI User

commit sha f0ac6550ba9d2f73a53a738140e3a6049cfd85af

Update documentation

view details

push time in 4 days

push eventrust-embedded/debugonomicon

Travis CI User

commit sha b3bae2fc38fa1d043a63e053f2f588ae55c591ac

Update documentation

view details

push time in 4 days

created tagjaparic/aligned

tagv0.3.4

A newtype with alignment of at least `A` bytes

created time in 4 days

push eventjaparic/aligned

Jorge Aparicio

commit sha db3ab4f225e72801bd91347bb01d58d1d2d508fa

v0.3.4

view details

push time in 4 days

push eventjaparic/aligned

Chris Beck

commit sha 22317560d3f47b54ac1c4a01ed207f757fe6356f

Aligned implements Eq, Ord, Hash if available The motivations are mainly to allow this to be used easily in types that live in sets and maps. Implementing `PartialEq` also allows to make tests that `assert_eq!` that `Aligned` values are equal.

view details

Jorge Aparicio

commit sha f914e77c39c944b8dfefbfa81c47e891d9fc5198

Merge pull request #11 from garbageslam/add_eq_ord_hash Aligned implements Eq, Ord, Hash if available

view details

push time in 4 days

PR merged japaric/aligned

Aligned implements Eq, Ord, Hash if available

The motivations are to allow Aligned to be used easily in types that are stored in sets and maps. Implementing PartialEq also allows to make tests that assert_eq! that Aligned values are equal.


Thanks for merging https://github.com/japaric/aligned/pull/9 ! This is the last PR like this that I foresee.

+47 -2

1 comment

1 changed file

garbageslam

pr closed time in 4 days

pull request commentjaparic/aligned

Aligned implements Eq, Ord, Hash if available

Thanks!

garbageslam

comment created time in 4 days

push eventrust-embedded/discovery

Travis CI User

commit sha 829463faeb6bc9393fe4aa50ee035336c5d677c2

Update documentation

view details

push time in 5 days

push eventrust-embedded/showcase

Travis CI User

commit sha 3d66c1d727e8de1bc7f7d6a8581a5dd338ed596f

Update documentation

view details

push time in 5 days

push eventrust-embedded/docs

Travis CI User

commit sha 8727070750b6e62e55fce792de1673629b6e0366

Update documentation

view details

push time in 5 days

push eventrust-embedded/embedonomicon

Travis CI User

commit sha c2fabf5ae22b44d6b4a47af89c0a5fdce2c8c061

Update documentation

view details

push time in 5 days

push eventrust-embedded/embedonomicon

Travis CI User

commit sha 88e6dc192717a4021cf71e44fe892931ecfbec92

Update documentation

view details

push time in 5 days

push eventrust-embedded/book

Travis CI User

commit sha 0e868a67db7c7767b84b0e493d0b6b2a806d1a71

Update documentation

view details

push time in 5 days

push eventrust-embedded/debugonomicon

Travis CI User

commit sha bb8cc5790f298e95466eb0a175eb7430ca90c1b5

Update documentation

view details

push time in 5 days

push eventrust-embedded/discovery

Travis CI User

commit sha f8944d1527f89da166e393026104674bc38468c0

Update documentation

view details

push time in 6 days

push eventrust-embedded/showcase

Travis CI User

commit sha a91fdce7c05daeca5587e3f387fabd86c365507f

Update documentation

view details

push time in 6 days

push eventrust-embedded/docs

Travis CI User

commit sha 8e94db10139451e1b4977b78ad100ae35afc9db9

Update documentation

view details

push time in 6 days

push eventrust-embedded/embedonomicon

Travis CI User

commit sha 8aa41c719ef6d61434fb50c255d0374688a68729

Update documentation

view details

push time in 6 days

push eventrust-embedded/embedonomicon

Travis CI User

commit sha 2f3871de08c14424d0c0e162e09a4bc7d3f37e66

Update documentation

view details

push time in 6 days

push eventrust-embedded/book

Travis CI User

commit sha 69af0c2262ebda5d71db2d4d8ff430656c86ca7a

Update documentation

view details

push time in 6 days

push eventrust-embedded/debugonomicon

Travis CI User

commit sha 0f79f0c9c636f1a1d4b76d18a569da51d937ef51

Update documentation

view details

push time in 6 days

push eventrust-embedded/discovery

Travis CI User

commit sha ca97e5336822404719f40362220b91bf55df8bd2

Update documentation

view details

push time in 7 days

push eventrust-embedded/showcase

Travis CI User

commit sha e00605219c05c41b154bbe383ab971a176753bd6

Update documentation

view details

push time in 7 days

push eventrust-embedded/docs

Travis CI User

commit sha b0e4f735813a4734abf289b927d7d4404e338878

Update documentation

view details

push time in 7 days

pull request commentjaparic/heapless

ByteBuf: Vec<u8, N> with efficient serde (+ some Vec methods)

Do you have comments on this @japaric ?

I must say I'm not super thrilled about adding a newtype that could well live in a separate crate (there are no orphan rules issues around this), specially given that (a) serde is an opt-in (optional) feature of this crate and (b) this works around the lack of specialization on stable.

I would personally prefer if this code lived in a separate crate, like serde_bytes does, to not increase the maintenance burden (+1.2K line diff) of this crate.

nicolas-solokeys

comment created time in 7 days

push eventjaparic/aligned

Jorge Aparicio

commit sha 247f406e87568b5a999bce5abf4c1981b06bc493

add repr(C) closes #10

view details

Jorge Aparicio

commit sha 6519c121bf1077e2d1e1fcd150c26b9ae4ed6aef

v0.3.3

view details

push time in 7 days

issue closedjaparic/aligned

Mark `aligned` as `repr(C)`?

In my understanding, if I want to pass pointers to aligned objects to C through ffi, or to inline assembly blocks, the Aligned structure itself should be repr(C). Maybe it doesnt matter when Aligned itself basically a singleton? But if it doesn't hurt anything it seems like a valid change?

closed time in 7 days

garbageslam

push eventjaparic/aligned

Chris Beck

commit sha c24c8d7237adc03fee9e07e41b3affd3b088c0e9

Make `Aligned` automatically implement Debug, Display, Clone if possible

view details

Chris Beck

commit sha 141d195eac6ac68b0ab1a093f899d7a6cd7e730d

Add Default trait as well for good measure

view details

Jorge Aparicio

commit sha f442e47b02aa0ff57207846842f3feeba31ff458

Merge pull request #9 from garbageslam/add_debug_display_clone Make `Aligned` automatically implement Debug, Display, Clone if possible

view details

push time in 7 days

PR merged japaric/aligned

Make `Aligned` automatically implement Debug, Display, Clone if possible

Thanks for this crate! I find myself wanting to add these to make it easier to use in generic code. Let me know if you think this is alright.

+47 -0

1 comment

1 changed file

garbageslam

pr closed time in 7 days

issue commentjaparic/syscall.rs

make this crate work on stable

This can now be implemented by moving to the recently stabilized asm! macro.

Happy to take a PR that does this when the feature gate has been removed in a beta release. Please do not open a PR before then.

japaric

comment created time in 7 days

Pull request review commentjaparic/heapless

Buffer methods for Vec and as_mut_vec for String

 where         unsafe { str::from_utf8_unchecked_mut(self.0.vec.as_mut_slice()) }     } +    /// Returns a mutable reference to the contents of this `String`.+    ///+    /// # Safety+    ///+    /// This function is unsafe because it does not check that the bytes passed+    /// to it are valid UTF-8. If this constraint is violated, it may cause+    /// memory unsafety issues with future users of the `String`, as the rest of+    /// the library assumes that `String`s are valid UTF-8.+    ///+    /// # Examples+    ///+    /// Basic usage:+    ///+    /// ```+    /// let mut s = String::from("hello");+    ///+    /// unsafe {+    ///     let vec = s.as_mut_vec();+    ///     assert_eq!(&[104, 101, 108, 108, 111][..], &vec[..]);+    ///+    ///     vec.reverse();+    /// }+    /// assert_eq!(s, "olleh");+    /// ```+    pub unsafe fn as_mut_vec(&mut self) -> &mut Vec<u8, N> {+        core::mem::transmute::<&mut crate::i::Vec<GenericArray<u8, N>>, &mut Vec<u8, N>>(

Please change this to a raw pointer cast followed by dereference like this:

unsafe { &mut *(self.0.vec as *mut SourceType as *mut TargetType) }
samlich

comment created time in 7 days

PR merged japaric/syscall.rs

Replace asm with llvm_asm

See https://github.com/rust-lang/rust/pull/68404

+91 -89

1 comment

13 changed files

AgustinCB

pr closed time in 7 days

push eventjaparic/syscall.rs

Agustin Chiappe Berrini

commit sha bf46a068329c21764090cc5f043530af25433c3d

Replace asm with llvm_asm See https://github.com/rust-lang/rust/pull/68404

view details

Agustin Chiappe Berrini

commit sha 7ff94a68cdf2b5aa56cfe9267349dafdb82aaefa

Fix syscall for macos

view details

Agustin Chiappe Berrini

commit sha 44546775beac0e16872d4aaf26e300ee907df837

remove unnecessary feature

view details

Jorge Aparicio

commit sha 6fa3d748b01c019c8d15c609b02d27d37430792f

Merge pull request #26 from AgustinCB/master Replace asm with llvm_asm

view details

push time in 7 days

pull request commentjaparic/syscall.rs

Replace asm with llvm_asm

Thanks!

AgustinCB

comment created time in 7 days

push eventrust-embedded/embedonomicon

Travis CI User

commit sha fb3b7b550d361467ede2a8d73552925f4b381b09

Update documentation

view details

push time in 7 days

push eventrust-embedded/embedonomicon

Travis CI User

commit sha 2b1f2f4ef6152a17d8e9a4119847cdb091bb7c95

Update documentation

view details

push time in 7 days

push eventrust-embedded/debugonomicon

Travis CI User

commit sha 990fd9a10eef308b13d1d6405b624967c027af82

Update documentation

view details

push time in 7 days

push eventrust-embedded/book

Travis CI User

commit sha 3d9e75237f8a5a6daac4241c8c804eab16def083

Update documentation

view details

push time in 7 days

push eventrust-embedded/showcase

Travis CI User

commit sha 3683d5157cc233ea50941e61e1090b27a42b1e6a

Update documentation

view details

push time in 8 days

push eventrust-embedded/docs

Travis CI User

commit sha 97019c66e0dfb50482a3ee0da45a53307a56ab79

Update documentation

view details

push time in 8 days

push eventrust-embedded/discovery

Travis CI User

commit sha b6c7f7b714aae00f827290cdaeeb2cf7692320ed

Update documentation

view details

push time in 9 days

push eventrust-embedded/showcase

Travis CI User

commit sha eceeed259da0f829dc0f28cfe42fd3c5dbd7242c

Update documentation

view details

push time in 9 days

push eventrust-embedded/docs

Travis CI User

commit sha 26b2ca9eec62094607a925ed59ead76dd4d5a87e

Update documentation

view details

push time in 9 days

push eventrust-embedded/embedonomicon

Travis CI User

commit sha bb1189bb255c3c1e19b8eab8fe9e4c21a4bc2136

Update documentation

view details

push time in 9 days

push eventrust-embedded/embedonomicon

Travis CI User

commit sha af3b9b82e2729ecff1e75f3e2f0b8838951e3e9f

Update documentation

view details

push time in 9 days

push eventrust-embedded/book

Travis CI User

commit sha c1d418b561c4e3307f495b1214a627f2f098d715

Update documentation

view details

push time in 9 days

push eventrust-embedded/debugonomicon

Travis CI User

commit sha d4ba50a4ae2ed04075d786dadbce7910579deaf5

Update documentation

view details

push time in 9 days

push eventrust-embedded/discovery

Travis CI User

commit sha 1c4ee8a7d37f97c2674b8e3eae6ace017482637e

Update documentation

view details

push time in 10 days

push eventrust-embedded/showcase

Travis CI User

commit sha 2824273885649880c0dc61715f1a237773e411f7

Update documentation

view details

push time in 10 days

push eventrust-embedded/docs

Travis CI User

commit sha 18b1360c0ea8e648b2f4c75b64d6ac1e75965afa

Update documentation

view details

push time in 10 days

push eventrust-embedded/embedonomicon

Travis CI User

commit sha bbcfe3d76d78698f98100b27bf46a265e4fe1020

Update documentation

view details

push time in 10 days

push eventrust-embedded/embedonomicon

Travis CI User

commit sha ce3f905c3495f922eaf4fcbd65b1e1ea4e5bc76a

Update documentation

view details

push time in 10 days

push eventrust-embedded/debugonomicon

Travis CI User

commit sha 4135ef30f36c5e544927c0ddf1c1c855a7e8778a

Update documentation

view details

push time in 10 days

push eventrust-embedded/discovery

Travis CI User

commit sha 1cb571ce34cd81834af525a87eb07219910f7b21

Update documentation

view details

push time in 11 days

push eventrust-embedded/showcase

Travis CI User

commit sha 9661cf24a4fbaadbba3215543988f408dded8457

Update documentation

view details

push time in 11 days

push eventrust-embedded/book

Travis CI User

commit sha d8ef596a6e9935097b9bb8bd07a4dc86740c9143

Update documentation

view details

push time in 11 days

push eventrust-embedded/docs

Travis CI User

commit sha 13dae6fd315518748a2cccf1beb8789030ef704f

Update documentation

view details

push time in 11 days

push eventrust-embedded/embedonomicon

Travis CI User

commit sha f285ad1c5e2f026afdd351827d2c01b888ac3707

Update documentation

view details

push time in 11 days

push eventrust-embedded/embedonomicon

Travis CI User

commit sha 7b43f9d01cd56254e9e51a1a018218024796525f

Update documentation

view details

push time in 11 days

push eventrust-embedded/book

Travis CI User

commit sha c5356eea4269bbda5563d4fb46ce59fcad2f0971

Update documentation

view details

push time in 11 days

push eventrust-embedded/debugonomicon

Travis CI User

commit sha d8fd3e70082fff2a9ccb2b18a16003a21fa48032

Update documentation

view details

push time in 11 days

push eventferrous-systems/embedded-trainings-2020

Lotte Steenbrink

commit sha 087dd328759ae65ae1e39976f153e8a2dbdd04ad

hardware.md: fix position descriptpon of SW10

view details

Lotte Steenbrink

commit sha d9351bf4d336b0c2c8fb52b14e4598f55783c088

hardware.md: driveby: add note on how to orient the board

view details

Lotte Steenbrink

commit sha f415ea66ba5499b3dcd78341cf657222fa5dd1f4

hardware.md: move kapton tape to SW7

view details

Jorge Aparicio

commit sha 8ada5dc5d8a0befdc4169088b0a0868c1536a56e

Merge pull request #90 from ferrous-systems/sw10_position fix SW10 position description

view details

push time in 12 days

PR merged ferrous-systems/embedded-trainings-2020

Reviewers
fix SW10 position description

as noted in the workshop channel by @jounathaen

+4 -4

1 comment

1 changed file

Lotterleben

pr closed time in 12 days

pull request commentferrous-systems/embedded-trainings-2020

fix SW10 position description

Thanks!

Lotterleben

comment created time in 12 days

Pull request review commentferrous-systems/embedded-trainings-2020

fix SW10 position description

 $ ls /dev/tty.usbmodem* /dev/tty.usbmodem0006834208031 ``` -The board has several switches to configure its behavior. The out of the box configuration is the one we want. If the above instructions didn't work for you, check the position of the on-board switches:+The board has several switches to configure its behavior. The out of the box configuration is the one we want. If the above instructions didn't work for you, position the board so that the Button descriptions are horizontal and check the position of the on-board switches:  - Switch SW6, on the top edge right corner, is set to the DEFAULT position; this is the right position of the two possible positions (nRF = DEFAULT). Note that this switch is protected by Kapton tape.

ah, yes. The Kapton tape note should be on SW7. My bad, off-by-one error

Lotterleben

comment created time in 12 days

push eventrust-embedded/discovery

Travis CI User

commit sha 08b6d717c58b50eeff7f521afe5b9ae8d40ac5d4

Update documentation

view details

push time in 12 days

push eventrust-embedded/showcase

Travis CI User

commit sha 3abd30a11c01fd558a7bc62b18cb3b4a8c37ce13

Update documentation

view details

push time in 12 days

push eventrust-embedded/docs

Travis CI User

commit sha 15c73b0887b526b62f29349a0dcf7080d91722bf

Update documentation

view details

push time in 12 days

push eventrust-embedded/embedonomicon

Travis CI User

commit sha 64c5b88fa37c63900af740cac04f5c7295aaff38

Update documentation

view details

push time in 12 days

push eventrust-embedded/embedonomicon

Travis CI User

commit sha 4b5414e5f2fe6c57101e974edacd4b0bc9116cce

Update documentation

view details

push time in 12 days

push eventrust-embedded/debugonomicon

Travis CI User

commit sha badaf04046dc0d696b428b40e184e89d4a48cad1

Update documentation

view details

push time in 12 days

push eventrust-embedded/book

Travis CI User

commit sha e341c63f5d02226e700871119725382cb952f9bc

Update documentation

view details

push time in 12 days

push eventferrous-systems/embedded-trainings-2020

Ana Hobden

commit sha a1078ccaaa943f4ef147fd53d28f409bbf675a0c

(Windows) Note about Dongle and Zadig Signed-off-by: Ana Hobden <operator@hoverbear.org>

view details

Jorge Aparicio

commit sha 94c27344eeeafea4989c1774d2364dd7f488fbe3

Merge pull request #89 from Hoverbear-Consulting/windows-dongle-note (Windows) Note Dongle needs nothing

view details

push time in 12 days

issue closedferrous-systems/embedded-trainings-2020

(Windows) Zadig Dongle instructions

While reading the Windows instructions for setup I noticed the details only cover the DK.

/installation.html#windows-only-zadig-jlink-driver image

Students of this workshop are expected to use a dongle as well. Reading the Linux instructions it seems that the ID is 1915 521f.

/installation.html#linux-only-usb image

Here it is in Zadig based on that:

image

It's unclear if this should be done for the Dongle based on the lack of instruction here.

closed time in 12 days

Hoverbear

issue commentferrous-systems/embedded-trainings-2020

(Windows) Zadig Dongle instructions

(Hello Ana :wave:)

Yes, on Windows the Zadig operation needs to be done only for the DK. We should add a note to that extent.

The reason is that we are doing different things on each OS: changing permissions on Linux and changing drivers on Windows.

On Linux, permissions may not let us use the device but the drivers associated to the USB devices by the host work OK with our tools (dk-run, serial-term) and external tools (nrfutil, carge-flash). On Windows, permissions are not an issue but the default drivers do not work with probe-rs based tools like dk-run and cargo-flash (all use the USB bulk interface/driver); they do work with Nordic's nrfutil and serial-term (both use the "virtual COM" USB interface/driver). We only use the probe-rs tools with the DK -- the Dongle does not have a probe on board.

Hoverbear

comment created time in 13 days

push eventrust-embedded/discovery

Travis CI User

commit sha 895448bf7b7c42642ecf237813075496f22c2b4e

Update documentation

view details

push time in 13 days

push eventrust-embedded/showcase

Travis CI User

commit sha ba171bb42956c15084dbd32ef5d678f43cf20dcb

Update documentation

view details

push time in 13 days

push eventrust-embedded/docs

Travis CI User

commit sha 09aa8469a641b1d5d697ba91f4af99f6ab026286

Update documentation

view details

push time in 13 days

push eventrust-embedded/discovery

Travis CI User

commit sha efe2c331ca348b94afa8d22c94d7bf05e0b7aecd

Update documentation

view details

push time in 14 days

push eventrust-embedded/showcase

Travis CI User

commit sha 7f44e034bbc54b2c13d29f53c70e3f7d73fe6890

Update documentation

view details

push time in 14 days

push eventrust-embedded/docs

Travis CI User

commit sha 60cce62dbf80cab24a57e065b83af9e809252dfd

Update documentation

view details

push time in 14 days

push eventrust-embedded/embedonomicon

Travis CI User

commit sha 9aa0009a99c6b6a4224f9eb320823f95a0d9667a

Update documentation

view details

push time in 14 days

push eventrust-embedded/embedonomicon

Travis CI User

commit sha 730aec86647dc6cc0d644c6ffda23c9069c127b7

Update documentation

view details

push time in 14 days

push eventrust-embedded/book

Travis CI User

commit sha c1a2bd0d7d73ebf43e0f0001d67dd6ec473fac83

Update documentation

view details

push time in 14 days

push eventrust-embedded/debugonomicon

Travis CI User

commit sha 76ea6054448957410d95b93769bb81e7de3ab843

Update documentation

view details

push time in 14 days

push eventrust-embedded/showcase

Travis CI User

commit sha 7e52beb3a4c9021ce5f724d7d153343c3c530b92

Update documentation

view details

push time in 15 days

push eventrust-embedded/docs

Travis CI User

commit sha b17b03ed21a961179dce695e36c41a11c5d9d4e0

Update documentation

view details

push time in 15 days

push eventrust-embedded/embedonomicon

Travis CI User

commit sha 43c0f2d851a8a332643223a0b4c676dd056ca9c8

Update documentation

view details

push time in 15 days

push eventrust-embedded/embedonomicon

Travis CI User

commit sha 17d22aecb9ed0935489f5e6914a2bc62a47c137e

Update documentation

view details

push time in 15 days

push eventrust-embedded/book

Travis CI User

commit sha 286366379ebe5a44595ed8b6a27f9180537e163a

Update documentation

view details

push time in 15 days

push eventrust-embedded/debugonomicon

Travis CI User

commit sha 32079c8f14c2b7d4986bab02d6b61c5e67bcca9f

Update documentation

view details

push time in 15 days

more