<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]>
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]