11 Apr 2021 |
valff | And a GDB fork from sifive. | 11:47:19 |
12 Apr 2021 |
| jimsy joined the room. | 01:05:02 |
jimsy | Hi folks. I'm trying the hello world example with a BMP and 1Bitsy, so I did: drone new --device stm32f405 --flash-size 1024K --ram-size 192K hello-world | 01:06:49 |
jimsy | Redacted or Malformed Event | 01:08:23 |
jimsy | When doing just flash it builds and flashes fine, but alas I get nothing from just log. I see some comments above about drone being broken with nightly - is that what I'm running into? | 01:08:45 |
jimsy | * When doing just flash it builds and flashes fine, but alas I get nothing from just log . I see some comments above about drone being broken with nightly - is that what I'm running into? | 01:09:00 |
valff | Which version of Drone do you run? Have you already tried updating to 0.14? | 05:46:53 |
valff | * Which version of Drone you're running? Have you already tried updating to 0.14? | 14:54:38 |
14 Apr 2021 |
jimsy | @va | 23:32:46 |
jimsy | * @valff yes, using drone 0.14. | 23:32:56 |
jimsy | Something that isn't clear to me from the book is whether we use TRACESWO for logging or a UART? | 23:35:29 |
17 Apr 2021 |
alvinhochun | Oh nice, Drone for GD32VF! Now I can try running it on the Pinecil | 08:39:59 |
valff | jimsy: The original BMP uses software implementation for TRACESWO pin. It showed as not reliable in our tests, so we prefer UART for logging with BMP. | 09:14:47 |
valff | alvinhochun: Cool device! Didn't know GD32VF is already used in the wild. | 09:18:27 |
alvinhochun | I had tried a bit of Rust on the Pinecil before, using the PAC and HAL crates. I also looked at Drone OS, but it seemed quite complicated | 12:16:00 |
alvinhochun | At the moment I am messing around with IronOS, which is the soldering iron firmware written in C and C++ | 12:16:41 |
valff | Drone OS might be more complicated than PAC and HAL crates, but it's more powerful. | 12:25:31 |
alvinhochun | Why doesn't Drone OS build on top of the PAC crate? | 13:06:42 |
valff | Because Drone OS has a more powerful interface for accessing memory-mapped registers. | 13:10:44 |
valff | It leverages Rust type system to provide more compile-time guarantees, like registers ownership and synchronization between threads, up to field-level granularity. | 13:13:27 |
18 Apr 2021 |
jimsy | In reply to @valff:matrix.org jimsy: The original BMP uses software implementation for TRACESWO pin. It showed as not reliable in our tests, so we prefer UART for logging with BMP. Thanks for that. Looking at my STM32F415 board I think that means that it'd be on USART1 TX on PB6 does that sound right? | 20:26:19 |
19 Apr 2021 |
valff | Sounds right. | 15:54:30 |
22 Apr 2021 |
| robbym joined the room. | 00:40:05 |
robbym | Hello, is there any documentation for adding a new chip? Or a list of hardware requirements to be supported? I know some RTOS require an MPU, for example.
Secondly, are there any high level libraries that utilize DroneOS? And if so, is there a list of these libraries? Specifically, I am looking for a SD library that utilizes the SDIO capabilities of the STM32L4+ (and friends) line of chips. | 00:46:54 |
valff | robbym There is a section in the Drone book: https://book.drone-os.com/extensibility.html Main requirement is having hardware support for atomics, especially the compare and swap instruction. MPU is optional. | 19:45:58 |
valff | I'm collecting open-source drivers for my personal project here: https://github.com/smartoris There is not much of them as of now, but there will be more. | 19:48:46 |
robbym | 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. | 22:44:56 |
23 Apr 2021 |
valff | robbym We were thinking about that, and haven't found enough reasons to support older architectures. Making so would create additional maintenance burden. Because such targets don't have either atomics in Rust stdlib at all, or don't have compare_exchange family of methods. We would need to create a wrapper for rust atomics in drone-core, to be able to reimplement some methods. Additionally we are discouraging usage of critical sections, so if we implement atomics through this, there will be inconsistency. On the other hand, newer ARMv7 chips are already pretty affordable. | 19:54:09 |
grawp | robbym I was very surprised when I learned that RP2040 has Cortex M0+ because it is really inferior to M3 and M4 and you can get MCUs and even whole boards with them for around 12€ or maybe even less. | 20:13:33 |
grawp | I scratch my head thinking about what is the reason for RP2040's existence. | 20:15:24 |