Is it possible to switch BMODE switch (SW1) by code?


I am using ADSP-SC589 and I was wondering if it is possible to go from BMODE 7 to BMODE 1 in my code.

If yes, how can I do that?


  • 0
    •  Analog Employees 
    on Feb 3, 2020 1:09 PM 9 months ago


    This largely depends on your hardware and if your hardware supports software programmable switches. I'm going to go with the assumption that this is not the case.

    What is possible is that you can set the boot mode to any supported boot mode and then add provisions in the loaded software to then boot via an alternate boot mode by leveraging the boot API.

    If you were booting from flash for example, you could write a small second stage bootloader that polls on a incoming pin. If the pin is high then you can trigger a load of a  boot stream via the UART, for example, to load your custom software, whatever that may be. If cleared the second stage bootloader may choose to load in a default application located in flash at a given flash address.

    The boot API is documented in the ADSP-SC58x Hardware Reference Manual. Chapter "Boot ROM and Booting the Processor", refer to the API reference section.

    In the API, the last argument is referred to as the "command". For details of the command parameter for each boot mode, please refer to the documentation for each specific boot mode. The command describes which boot mode to boot from, the peripheral enumeration and can provide boot mode specific configuration elements unique to each boot mode.

    EE-384 may provide a useful resource also for you, it comes with some code examples also.