ChanServ changed the topic of #rust-embedded to: Welcome to the Rust Embedded IRC channel! Bridged to #rust-embedded:matrix.org and logged at https://libera.irclog.whitequark.org/rust-embedded, code of conduct at https://www.rust-lang.org/conduct.html
sroemer has quit [Ping timeout: 272 seconds]
emerent has quit [Ping timeout: 260 seconds]
emerent has joined #rust-embedded
embassy-learner[ has joined #rust-embedded
<embassy-learner[> Hi guys, dropping an hacker question on Softdevice, i am trying to fit my application with S113 ( 112KB of flash) on a small nrf520805. I need a bunch of bytes and i started tweaking hex file of SD113 because I noticed... (full message at
<JamesMunns[m]> The vector table has some alignment requirements, and your program will start with the vector table
<JamesMunns[m]> But even at the most conservative it's 1024-byte (0x400) alignment
<JamesMunns[m]> and 0x1b800 is aligned
<JamesMunns[m]> So maybe it's just doing some integrity check? Notsure.
<JamesMunns[m]> s/Notsure/Not sure/
<embassy-learner[> <JamesMunns[m]> "The vector table has some..." <- Thanks James! Yep could be some checks, but sd code is not available so what I can see is just the flash address with the jump address...could be some internal check in sd indeed
<embassy-learner[> Will try to play a bit printing some infos to understand better where it freezes...but the fact that with 0x1D000 seems working lead me to your identical idea James, some internal checks in SD code.
<GeorgesP[m]> <embassy-learner[> "Will try to play a bit printing..." <- Well, let's find where the checksum is stored and how it is computed, then patch it too !
<embassy-learner[> <GeorgesP[m]> "Well, let's find where the..." <- Hi Georges
<embassy-learner[> :)
<GeorgesP[m]> <GeorgesP[m]> "Hello, I was wondering, is there..." <- Thanks a lot for your discussion about my initial question. Let me rephrase it in a more specific way : "I would like to avoid any linux/freertos/zephyr base system (dep upd maintenance for vulnerability...), love the embassy way of running a single purpose, pure rust, app on a MCU (boot time, dep management by cargo, etc), and I have a project that requires more RAM than the
<GeorgesP[m]> max 128MB a STM32H7 could have (let's say around 1GB min) and more compute power than the most powerfull embassy supported MCU have (let's say around 1GHz min)... So now I have in mind to do an embassy HAL for let's say the RPi CM5 (with specific peripherals drivers)... Would this be crazy ?
<M9names[m]> yes
<JamesMunns[m]> I mean, not totally crazy. I don't think embassy would necessarily be the right tool for it, and it would be a lot of work.
<JamesMunns[m]> I'm doing something similar in Mnemos, which is aiming to be an OS between "bare metal" and "linux" (but is 100% not ready for anyone to actually use)
<JamesMunns[m]> but bringing up drivers on an application class processor is a LOT more work than an MCU
<JamesMunns[m]> and with that much CPU and RAM, you definitely want an allocator and other nice things for spawning non-statically allocated tasks (so not embassy)
<JamesMunns[m]> and for a CM5, that's multicore too, which is a lot MORE complexity
<M9names[m]> i think you and i have very different definitions of what constitutes a reasonable amount of work to take on
<JamesMunns[m]> yeah, very fair: it's an unreasonable amount of work for a hobby project
<JamesMunns[m]> like, IF you were a company and willing to spend developer-years on it: it's very feasible.
<JamesMunns[m]> but it's VERY far from "lol I'll just do it real quick"
<JamesMunns[m]> And tbh I think in most cases (today), you are much better off just using Linux.
<M9names[m]> if you were to do this, picking an SOC that is well documented would also be a good idea.
<M9names[m]> like my first pick for this would be an stm32mp1, because the peripherals are mostly just borrowed from the microcontrollers.
<M9names[m]> and they actually support doing bare metal dev for it
<thejpster[m]> Depends on the peripherals you need and the Raspberry Pi you pick. If you only need a UART and can live with a Pi 3 it’s relatively easy as the blob sets most things up for you.
<thejpster[m]> A Pi 5 or CM5 requires PCI-Express to talk to the RP1 and you do not want to set that up by hand.
<thejpster[m]> STM32MPx is a good shout though.
<thejpster[m]> Even drawing pixels on a pi 3 is easy. You just post messages to the VPU.
sourcebox[m] has joined #rust-embedded
<sourcebox[m]> I have already a project using an STM32MP1, it's a liitle bit on hold though atm.
JamesSizeland[m] has quit [Quit: Idle timeout reached: 172800s]
Kaspar[m] has quit [Quit: Idle timeout reached: 172800s]
petekubiak[m] has quit [Quit: Idle timeout reached: 172800s]
DarkoYovanoski[m has joined #rust-embedded
<DarkoYovanoski[m> Can anyone tell me if the IEEE802154 ( PHY Layer/ Mac Layer) per protocol are implemented for NordicSemi for example nrf5340 as is not clear as i can see the RADIO but is it raw data received/send or the whole stack from IEEE802154 is implemented.
cinemaSundays has joined #rust-embedded
sroemer has joined #rust-embedded
sroemer has quit [Changing host]
sroemer has joined #rust-embedded
cinemaSundays has quit [Quit: Connection closed for inactivity]
cinemaSundays has joined #rust-embedded
diondokter[m] has quit [Quit: Idle timeout reached: 172800s]
<embassy-learner[> Hi guys! Dumb question...is possible use use probe-rs run without that it erases flash?
<M9names[m]> Not a dumb question. probe-rs attach
<embassy-learner[> can I use it also with an hex file?
<embassy-learner[> so I can attach to a running target right?
<igiona[m]> probe-rs attach
<igiona[m]> &
<igiona[m]> probe-rs download
<igiona[m]> are probably the commands you're looking for
<embassy-learner[> download seems erasing the memory.x flash space, am I right?
<M9names[m]> It will only erase the space that the program uses, not everything listed in memory.x
<M9names[m]> You want to use --restore-unwritten if you want anything that overlaps the erase area to be preserved
<embassy-learner[> Going in the details...maybe i am wrong but I have a piece of code flashed up to 0x1b400, then I run another piece ( the application ) from 0x1b800 and it freeze...
<embassy-learner[> it seems that the erase cancel all the four 4kB block from 0x1b000 so some code of previous piece of code is miissing...just looking to clear my mind
<embassy-learner[> thanks for the ideas
<embassy-learner[> <M9names[m]> "You want to use --restore-..." <- I owe you a pint of beer buddy! Made my day!
cinemaSundays has quit [Quit: Connection closed for inactivity]
projectgus[m] has quit [Quit: Idle timeout reached: 172800s]
Sophie[m] has joined #rust-embedded
<Sophie[m]> hello (:
<Sophie[m]> Why is this method non-async (can confirm when using the library that it's not) but in the source, it's defined as async?
<JamesMunns[m]> tricky proc macros, it seems