summaryrefslogtreecommitdiff
path: root/boards/ek-lm4f120xl/uart_echo/startup_sourcerygxx.S
blob: b72083937ae4c31fa64e26e04fb0de63d2406145 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
//*****************************************************************************
//
// startup_sourcerygxx.S - Startup code for Sourcery CodeBench.
//
// Copyright (c) 2012 Texas Instruments Incorporated.  All rights reserved.
// Software License Agreement
// 
// Texas Instruments (TI) is supplying this software for use solely and
// exclusively on TI's microcontroller products. The software is owned by
// TI and/or its suppliers, and is protected under applicable copyright
// laws. You may not combine this software with "viral" open-source
// software in order to form a larger program.
// 
// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS.
// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT
// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY
// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
// DAMAGES, FOR ANY REASON WHATSOEVER.
// 
// This is part of revision 9453 of the EK-LM4F120XL Firmware Package.
//
//*****************************************************************************

    .syntax unified
    .thumb

//*****************************************************************************
//
// Place this code into the .cs3.reset section so that it can be executed prior
// to the startup code in Sourcery CodeBench.
//
//*****************************************************************************
    .section .cs3.reset,"x"

//*****************************************************************************
//
// The reset handler, which overrides the one provided by CS3.
//
//*****************************************************************************
    .globl __cs3_reset
    .thumb_func
__cs3_reset:
    //
    // Enable the floating-point unit.  This must be done here to handle the
    // case where main() uses floating-point and the function prologue saves
    // floating-point registers (which will fault if floating-point is not
    // enabled).  Any configuration of the floating-point unit using DriverLib
    // APIs must be done here prior to the floating-point unit being enabled.
    //
    // Note that this does not use DriverLib since it might not be included in
    // this project.
    //
    movw    r0, #0xed88
    movt    r0, #0xe000
    ldr     r1, [r0]
    orr     r1, #0x00f00000
    str     r1, [r0]

    //
    // Branch to the normal CS3 startup code.
    //
    .extern __cs3_reset_ekc_lm4f232
    ldr     r0, =__cs3_reset_ekc_lm4f232
    bx      r0

    //
    // Place the literal pool here.
    //
    .ltorg

    //
    // The end of the file.
    //
    .end