How fast does the pico boot up? #1303
-
Hello i was wondering how long does the pico reach the setup () portion of the code? I have some time sensitive application that need to get running as fast as possible. I need my pico to to output immediately output a specific PWM signal within 100ms upon receiving power. Is it achievable ? if not is there a way to achieve it that still uses this core? I would prefer to still remain in the arduino platform :) I have not timed my pico bootup yet, I will still need to borrow equipment for that . If you have tried timing a pico boot up please share me your results . |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 2 replies
-
Sorry, no idea really. If this is safety critical I really recommend you go bare metal SDK so you can be assured of exactly what is running on the core. Here, the ROM will boot, then call the OTA stub, which will then call the main Arduino app where the core's own |
Beta Was this translation helpful? Give feedback.
-
I've been tackling this issue too, and I've got it down to 23ms on a real PicoW. First, I patched boot2 for this specific flash chip to change the ROSC to go faster: raspberrypi/pico-sdk#2281 (comment) Then I moved the Arduino OTA stuff from here below .text in the linker script (it initialises XOSC with a 64ms delay). Yeah, I don't use OTA, and a recompile wasn't working for me for some reason, so I just shifted it out of the way to test. Then I recompiled the libpico stuff from here (which does work for me) with a 6ms XOSC delay (like the SDK does, which is a recent increase, for their choice of crystal). I do feel like we are being punished with the generic 64ms startup delay, to make this core work with everything. But I've got a huge list of changes needed for my project "to work" already, so one more makes no real difference. I just tell people who try to follow my path: tough, it is what it is, use the firmware files I post. Sad. |
Beta Was this translation helpful? Give feedback.
Sorry, no idea really. If this is safety critical I really recommend you go bare metal SDK so you can be assured of exactly what is running on the core. Here, the ROM will boot, then call the OTA stub, which will then call the main Arduino app where the core's own
main
will do a bunch of setup (USB, etc.) before calling any of your own code.