Jan Niehusmann

Results 281 comments of Jan Niehusmann

I think it's possible to implement the initialization with a `__pre_init` function in `global_asm!`: https://github.com/jannic/rp2040-project-template/blob/b969a326fd1151fb3ad8db1930beddf282a0cc84/src/main.rs#L23-L58 (And I spent far too much time fighting with inexplicable linker errors until I noticed...

> My solution was to add a section to `memory.x`: > > ``` > .ram_code ORIGIN(RAM) : > { > KEEP(*(.ram_code)); > } > RAM > ``` > > And...

> I just put my functions in the ".data" section. That's a good point: There is no additional support needed to place functions/statics in RAM, so the title of this...

The "extra space" is not really optimized in any way. It's just two separate RAM banks. But, depending on what the firmware is doing, that might be a significant advantage:...

There is code doing the copying from global_asm called from pre_init linked from one of my comments above. As far as I know that should do it without UB. But...

For the examples, that's exactly what I did in https://github.com/jannic/rp-hal/commit/3d17af0852fe944fa8ba3a16e4d457f8ed759800 (I will send a PR once the PAC update is released) However it doesn't help users who write their own...

I had the following idea, which unfortunately didn't work: - always reserve Spinlock31 for critical-section-impl, independent of the feature flag - if the feature flag isn't set, instead of calling...

There have been questions regarding this code when it was introduced, https://github.com/rp-rs/rp-hal/pull/204/files/e9694bbb91c66e67df7150fa900a82d9fad928ff#r756965837 It seems like the current solution was chosen because the C API works the same way. Which might...

I may have found one issue: `write_blocking` is used when launching core1, and in that case the other side of the FIFO is controlled by the bootrom, not by our...

> Is it possible you can link to the source code in the RP2040 rom? Perhaps ask a contributor why there's a distinction? Sure: https://github.com/raspberrypi/pico-bootrom/blob/ef22cd8ede5bc007f81d7f2416b48db90f313434/bootrom/bootrom_rt0.S#LL329C4-L329C4 And the C SDK code...