Create firmware compatible with the SplashBase BootLoader

For those that want to write their own code

Create firmware compatible with the SplashBase BootLoader

Postby Carl-SolderSplash » Tue Mar 19, 2013 1:23 pm

The SplashBase Board uses the standard TI bootloader included in the Stellarisware package. With the configuration set to look for the Boot button before jumping to the application code. It uses address 0 - 0xFFF so your linker command file should start your application from 0x1000.

Be aware that Code Composer's debugger doesn't like it when the application starts from 0x1000. So you may need to switch to 0 while debugging ( Wiping out the bootloader ) before putting it back to 0x1000 for bootloading on to other splashbase boards.

User parameters are saved to the end of flash, the linker command file avoids this area.

LM3S6432.cmd file :
Code: Select all
/******************************************************************************
 *
 * Default Linker Command file for the Texas Instruments LM3S6432
 *
 * This is part of revision 9385 of the Stellaris Peripheral Driver Library.
 *
 *****************************************************************************/

--retain=g_pfnVectors

// Use when creating bootable code
#define APP_BASE 0x00001000

// Use when debuging with a JTAG, will overwrite the bootloader
//#define APP_BASE 0x00000000

MEMORY
{
    //FLASH (RX) : origin = 0x00000000, length = 0x00018000
    // 2048 (0x800) has been assigned to the config params
    FLASH (RX) : origin = APP_BASE, length = 0x00017800
    SRAM (RWX) : origin = 0x20000000, length = 0x00008000
}

/* The following command line options are set as part of the CCS project.    */
/* If you are building using the command line, or for some reason want to    */
/* define them here, you can uncomment and modify these lines as needed.     */
/* If you are using CCS for building, it is probably better to make any such */
/* modifications in your CCS project and leave this file alone.              */
/*                                                                           */
/* --heap_size=0                                                             */
/* --stack_size=256                                                          */
/* --library=rtsv7M3_T_le_eabi.lib                                           */

/* Section allocation in memory */

SECTIONS
{
    .intvecs:   > APP_BASE
    .text   :   > FLASH
    .const  :   > FLASH
    .cinit  :   > FLASH
    .pinit  :   > FLASH

    .vtable :   > 0x20000000
    .data   :   > SRAM
    .bss    :   > SRAM
    .sysmem :   > SRAM
    .stack  :   > SRAM
}

__STACK_TOP = __stack + 2048;
User avatar
Carl-SolderSplash
Site Admin
 
Posts: 223
Joined: Sun Mar 17, 2013 11:15 pm

Re: Create firmware compatible with the SplashBase BootLoade

Postby Carl-SolderSplash » Sun Mar 24, 2013 1:11 pm

If you wipe out the SplashBase boot loader and would like to re-instate it using a JTAG here is the .out or .bin file you will need.

SplashBaseBootloaderV1.zip
SplashBase BootLoader V1 - Binary
(23.04 KiB) Downloaded 343 times

You can do this using an ICDI Jtag with LM FLash, XDS100v2/SplashTag CCS 5 or CooCox CoFlash
User avatar
Carl-SolderSplash
Site Admin
 
Posts: 223
Joined: Sun Mar 17, 2013 11:15 pm


Return to User created custom firmware

Who is online

Users browsing this forum: No registered users and 1 guest

cron