24 Apr 2021 |
@llamp:matrix.org | In reply to @robbym:matrix.org valff: Cool. Although it is not ideal, will fake atomic support (via interrupt disabling) still work? I wanted to add support for the RP2040 for fun, but it is an ARM Cortex-M0+, which doesn't seem to have atomics. RP2040 is a dual core Cortex-M0, disabling interrupts do not give atomicity guarantees, so you would need to stop in some way the other core during the atomic operation. I believe (unable to refute) disabling interrupts in a single core system could be used for implementing atomic operations. | 21:44:20 |
@llamp:matrix.org | I think Cortex M0+ is interesting in ultra low power contexts, and note there are chips with big-little cores using M0 for low power. Additionally, note that in a product-development context a few bucks less is the difference between success or failure. | 21:49:11 |
25 Apr 2021 |
@moerk:matrix.org | Valff have you had any though about firmware update? | 13:15:13 |
valff | moerk: I will be experimenting with bootloaders soon. Will let you know the result. | 16:10:53 |
26 Apr 2021 |
robbym | I like Nordic's bootloader. They have one that has signing and it wasn't too difficult to add AES encryption utilizing their hardware support. They let you update the application, SoftDevice (their wireless stack), and even the bootloader itself. They have a UART and BLE example in their SDK. | 01:41:54 |
@moerk:matrix.org | Hi robbym, have you got it to work with drone? | 08:38:57 |
@moerk:matrix.org | There is also mcuboot | 08:41:36 |
robbym | moerk: Haven't tried. I only mentioned it as it was one of the better bootloaders that I've interacted with. I don't have much experience with Drone yet and the development board and BMP I ordered for my first Drone project just arrived (NUCLEO-L4R5ZI-P). MCUboot looks interesting, I'll have to try that out. | 23:10:42 |
27 Apr 2021 |
| singularpoint joined the room. | 23:01:55 |
28 Apr 2021 |
| Kanishkar J joined the room. | 18:30:22 |
1 May 2021 |
| @johniac52:matrix.org joined the room. | 17:15:41 |
4 May 2021 |
valff | After looking more closely at RP2040, I started liking it. It turned out that ARMv6-M is not an outdated architecture, it was actually created after ARMv7-M. ARMv6-M is a simplified subset of ARMv7-M, with much less transistors (12k according to some sources.) I just ordered a pair of Picos and will try to experiment with them. | 15:31:07 |
valff | I listened this podcast with Raspberry Pi guys: https://theamphour.com/529-embedded-hardware-with-the-raspberry-pi-team/ And they promise to sell the bare RP2040 chips at "much lower than $4", which sounds very interesting. | 15:35:07 |
valff | The absence of atomics will increase interrupt latency (jitter if more precisely). But it is compensated with increased frequency. My current MCU of choice STM32F401 is 84 MHz, while RP2040 is 133 MHz. | 15:38:43 |
valff | And for inter-core communication there are a few hardware spinlocks and FIFOs. | 15:40:29 |
5 May 2021 |
rmja | moerk: valff: It won't be that long before I get back to some drone app dev. :) Before I paused I was already doing some bootloader programming. I will let you know how that proceeds when it is time:) | 06:08:30 |
6 May 2021 |
| @johniac52:matrix.org left the room. | 19:42:17 |
| @yet-another-tim:matrix.org left the room. | 21:45:19 |
10 May 2021 |
| foundation_ken joined the room. | 16:47:58 |
11 May 2021 |
| david joined the room. | 03:59:46 |
19 May 2021 |
| alvinhochun set a profile picture. | 15:01:13 |
22 May 2021 |
| @jschievink:matrix.org left the room. | 10:58:27 |
| joined the room. | 20:48:38 |
28 May 2021 |
| maxchill joined the room. | 06:46:51 |
29 May 2021 |
| fynzh joined the room. | 22:14:00 |
3 Jun 2021 |
rmja | valff: I am now finally getting into rust/drone again, and I am aligning my drone sandbox projects with the updated drone source and rust toolchain. | 10:14:23 |
rmja | So expect this forum to be busy again:) | 10:14:52 |
rmja | I already have a question. It seems that something has happened in the bitfield definition so that the member cannot be public anymore. Before I had: | 10:17:46 |
rmja | #[derive(Clone, Copy, Bitfield)]
#[bitfield(
reserved(r, 0, 4),
state_bits(r, 4, 3, "Indicates the current main state machine mode."),
chip_rdy(r, 7, 1, "Stays high until power and crystal have stabilized. Should always be low when using the SPI interface."),
)]
pub struct StatusByte(pub u8);
| 10:18:06 |
rmja | But this cannot compile anymore. It will only compile if I replace line 7 with pub struct StatusByte(u8); , but I do want the member to be public. | 10:18:54 |