matthewelse / microbit-bootloader

Work on the Nordic bootloader for the micro:bit
3 stars 1 forks source link

Known working build? #1

Open finneyj opened 7 years ago

finneyj commented 7 years ago

Hi @matthewelse!

Thanks for looking into this - most appreciated. I know it's sticky stuff in here!

I've just been playing with this a bit, but don't seem to be able to get a working build. I can compile up fine, and made a patched HEX that updates the UICR bootloader address as you described in your README, but when I merge it in with a microbit-dal build and flash a micro:bit via USB, I don't get a working micro:bit image (just seems to hang on boot).

Haven't debugged thoroughly yet, but wondered if you had got further than this, or if this is as far as you got to?

Thanks! Joe

matthewelse commented 7 years ago

HI Joe,

It's been a couple of weeks since I've properly looked at this (uni work 👎). I'm pretty sure that last time I tried it, it was successfully booting into the application, but I'll have a look at it in more detail tomorrow.

finneyj commented 7 years ago

Thanks @matthewelse, that'd be great. It's probably just something in my build then... hmmm.....

finneyj commented 7 years ago

Hi @matthewelse @jaustin

I've spent a few hour slooking at this today, and am now pretty convinced there must be something wrong with my build/link here. I really can't get this bootloader to twitch (either the local build I've created from source, or this one, as supplied by Jonny: https://dl.dropboxusercontent.com/u/15449666/nrf51422_xxac-withapp.hex

Both just lock up the micro:bit on boot when used for me, when "linked" with a simple app against microbit-dal master, the same build linked against the current bootloader works fine. Can I recruit you guys a little to help identify what could be going wrong here?

What I know:

Based on an inspection of a generated HEX file

If, on a new build, I splat the UICR bootloader address with an unused world (0xFFFFFFFF), then the app comes up fine. This leads me to believe that SoftDevice is trying pretty call the bootloader at power on time, but the thread of execution never comes back. To reinforce, I also did a build of the bootloader that should display something on the LEDs on init(), but this never happens either. So I'm starting to suspect the flow of execution never actually reaches the bootloader's main()...

Before I try to get gdb or something working on this t get more info, Can I ask if:

a) You guys ever saw anything like this before? b) You can try an independent build against microbit-dal master and confirm you see the same thing? I'm just trying to narrow down possibilities here...

matthewelse commented 7 years ago

@finneyj just so you know I've seen this, I should have time to have a look at this later today 😊

finneyj commented 7 years ago

@matthewelse Awesome. :-)

finneyj commented 7 years ago

p.s. noticed you're building against nrf51422 rather than nrf51822.... any particular reason for that?

matthewelse commented 7 years ago

@finneyj I'm probably not going to have time to look at this today (sorry) - I'll see if I can have a look at it later tonight, or tomorrow

finneyj commented 7 years ago

@matthewelse no worries - thanks!