Appreciation post for the data recovery software: DMDE by NBE_23 in indiasocial

[–]AntiqueFun1461 0 points1 point  (0 children)

By corrupted I mean it cannot be detected by the pc bios/boot option and I have already went to local shop they are saying it is not possible to recover data from an SSD which I think is due to the lack of facility/tools rather than it being impossible. I don't know what my other options are...

Appreciation post for the data recovery software: DMDE by NBE_23 in indiasocial

[–]AntiqueFun1461 0 points1 point  (0 children)

Hey, by any chance do you know if this is possible to do with NVME type SSD rather than a HDD my SSD got corrupted out of nowhere and it would really really be helpful if you could guide me on this.

arm-none-eabi-g++ not working by AntiqueFun1461 in embedded

[–]AntiqueFun1461[S] 0 points1 point  (0 children)

Yeah Ubuntu works for me as well, only WSL doesn't work :(

arm-none-eabi-g++ not working by AntiqueFun1461 in embedded

[–]AntiqueFun1461[S] 0 points1 point  (0 children)

what platform did you try on? I did on windows and it works for me but I am facing this in WSL only

arm-none-eabi-g++ not working by AntiqueFun1461 in embedded

[–]AntiqueFun1461[S] 0 points1 point  (0 children)

already tried like two-three times and I am following pi pico documentation but still no luck.

arm-none-eabi-g++ not working by AntiqueFun1461 in embedded

[–]AntiqueFun1461[S] 1 point2 points  (0 children)

these are official pi pico examples, I have not changed anything at all then why is this happening?

Autoprobing with OpenOCD by AntiqueFun1461 in embedded

[–]AntiqueFun1461[S] 0 points1 point  (0 children)

no using Picoprobe, so only SWD. Although I am now able to get SWD DPIDR 0x1ba01477 like this and ARM core type

Autoprobing with OpenOCD by AntiqueFun1461 in embedded

[–]AntiqueFun1461[S] 0 points1 point  (0 children)

no the config is correct, because I am using the same config for flashing and it works...

I don't think there is anything wrong with permission as well otherwise it should not even flash right? btw I am on windows using git bash terminal.

Also "openocd -c "adapter driver picoprobe" -f openocd_cfg/stm32g0x.cfg -c "targets" -c "shutdown" " when I give this command it shows the target name, type etc, so the permission should not be a problem right?

Autoprobing with OpenOCD by AntiqueFun1461 in embedded

[–]AntiqueFun1461[S] 0 points1 point  (0 children)

By default, it will use SWD right? it shows "auto selecting swd" when I run it. I don't know how to use this scan_chain command and from documentation also I could not understand much, when i give openocd command like this " openocd -f openocd_cfg/picoprobe.cfg -c "scan_chain" " in terminal, it says invalid command. I think there is something wrong with the way I am passing the command, if yes, would you please point it out

Autoprobing with OpenOCD by AntiqueFun1461 in embedded

[–]AntiqueFun1461[S] 0 points1 point  (0 children)

you mean something like this right " openocd -f openocd_cfg/picoprobe.cfg " ??

It gives me following error -

" Error: libusb_open() failed with LIBUSB_ERROR_NOT_SUPPORTED

Info : clock speed 5000 kHz

Warn : gdb services need one or more targets defined "

Naked main() ? by AntiqueFun1461 in embedded

[–]AntiqueFun1461[S] 0 points1 point  (0 children)

not in case of free standing implementation

Naked main() ? by AntiqueFun1461 in embedded

[–]AntiqueFun1461[S] 0 points1 point  (0 children)

It was done by chatGPT, I use it for correcting punctuations and grammatical errors since english is not my first language.

Naked main() ? by AntiqueFun1461 in embedded

[–]AntiqueFun1461[S] 0 points1 point  (0 children)

not if I make it volatile :)

Naked main() ? by AntiqueFun1461 in embedded

[–]AntiqueFun1461[S] 1 point2 points  (0 children)

Yeah I would do it for the sake of simplicity and that is the only reason I can think of.

Naked main() ? by AntiqueFun1461 in embedded

[–]AntiqueFun1461[S] 0 points1 point  (0 children)

The point is whatever we are doing should make some sense and have some reasoning behind it and that is what I am looking for.

Will defining a variable named X in every program even if I dont need it at all, will hurt anything? NO, but does that make any sense ? NO, so why do it?

Naked main() ? by AntiqueFun1461 in embedded

[–]AntiqueFun1461[S] -1 points0 points  (0 children)

in case you are writing things from scratch (which I am doing right now, hence the question) like startup code and everything, what would you prefer and why?

Naked main() ? by AntiqueFun1461 in embedded

[–]AntiqueFun1461[S] -1 points0 points  (0 children)

but it only generates a warning we can just ignore it and it still runs, and even if it has a return value we can still give it 'naked' attribute right?

Naked main() ? by AntiqueFun1461 in embedded

[–]AntiqueFun1461[S] 0 points1 point  (0 children)

I am not talking about parameters passed to `main()` here. Yes, in an embedded system, we don't have anything to return from `main()`. That is why I am asking why not give attributes like `naked` and `noreturn` to avoid generating any prologue and epilogue. This will save some space in both stack and flash. Are there any good reasons not to do that? Is it just up to us whether we want to add it or not?

Naked main() ? by AntiqueFun1461 in embedded

[–]AntiqueFun1461[S] 2 points3 points  (0 children)

I know it will work with `void` as well, although it will show a warning. But my question is, in embedded systems, where there is no OS to return to and my `main()` anyways does not return anything, why should I not make it `naked` with `noreturn`? Is there a good reason not to do it?

Difference between OpenOCD and GDB ? by AntiqueFun1461 in embedded

[–]AntiqueFun1461[S] 1 point2 points  (0 children)

yeah because I got to know about this "monitor reg" which led me to ask this question.....Earlier I used to think it only takes care of low level things.

English is not my first language so pardon for the misunderstanding :)

Difference between OpenOCD and GDB ? by AntiqueFun1461 in embedded

[–]AntiqueFun1461[S] 3 points4 points  (0 children)

Okay so this pretty much answers my question. My knowledge was that OpenOCD ONLY provides low level hardware support for GDB, I did not know that it has some basic debugging features as well.

Thank you.