AnsweredAssumed Answered

BF526 bfrom_MemBoot() halting CPU rather than booting next program

Question asked by dZiems on Jun 4, 2013
Latest reply on Jul 16, 2013 by SachinV
Branched from an earlier discussion

Alright, I've played with this some more, and am still somewhat stuck. When I use the bfrom_MemBoot() command with an ADSP-BF526 connected to a JTAG ICE-100B, the CPU halts after executing the bfrom_MemBoot() command.

 

Right now, I have the program set-up so that it will infinite loop, constantly booting and re-booting the BOOTLOADER program. The BOOTLOADER is stored in flash at offset 0x0000, so location 0x2000000 in the BF526 memory map.

Here is some pseudocode representing what I have so far.

#include <vector>

#include <stdlib.h>

#include <bfrom.h>

#include "Flash.h"

int main( void ) {

  InitializeDeviceManager();

  InitializeFlashStorage();

  ReadFlashFlag();

  if(flag == true) {

    // Do nothing

  }

  else {

    bfrom_MemBoot((void*)0x20000000,

                  0,

                  0,

                  NULL);

  }

  return 0;

}

 

 

Edit:

A bit more information.

  1. When the CPU executes "CALL(P1)" to run function 0xEF000008 (bfrom_memboot), R0 = 0x20000000, R1 = 0, R2 = 0.
  2. When the CPU halts, it is at instruction 0xEF000748 (IDLE instruction).
  3. If I continue attempting to step, the CPU stops at instruction 0xEF00074E (IF CC JUMP 0), with value 0x0001025 in register ASTAT.

Outcomes