Changeset dd309b1 in rtems


Ignore:
Timestamp:
12/01/14 03:55:23 (9 years ago)
Author:
Chris Johns <chrisj@…>
Branches:
4.11, 5, master
Children:
80d99aa
Parents:
e37e8504
Message:

m68k/mcf5235: GCC 4.9.2 generates invalid code for Init5235.

Move the vector table copy out of the Init5235 source to avoid
stipping the GCC bug.

Fixes #2204.

Location:
c/src/lib/libbsp/m68k/mcf5235
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • c/src/lib/libbsp/m68k/mcf5235/Makefile.am

    re37e8504 rdd309b1  
    3333    ../../shared/bspgetworkarea.c startup/init5235.c startup/bspstart.c \
    3434    ../../shared/bootcard.c ../../shared/sbrk.c ../../shared/setvec.c \
    35     ../../shared/gnatinstallhandler.c ../../shared/bspinit.c
     35    ../../shared/gnatinstallhandler.c ../../shared/bspinit.c \
     36    startup/copyvectors.c
    3637# clock
    3738libbsp_a_SOURCES += clock/clock.c ../../../shared/clockdrv_shell.h
  • c/src/lib/libbsp/m68k/mcf5235/startup/init5235.c

    re37e8504 rdd309b1  
    1010#include <rtems.h>
    1111#include <bsp.h>
    12 #define m68k_set_cacr(_cacr) __asm__ volatile ("movec %0,%%cacr" : : "d" (_cacr))
    13 #define m68k_set_acr0(_acr0) __asm__ volatile ("movec %0,%%acr0" : : "d" (_acr0))
    14 #define m68k_set_acr1(_acr1) __asm__ volatile ("movec %0,%%acr1" : : "d" (_acr1))
     12
    1513#define MM_SDRAM_BASE           (0x00000000)
    1614
     
    2624extern void CopyDataClearBSSAndStart (void);
    2725extern void INTERRUPT_VECTOR(void);
     26
     27extern void CopyVectors(const uint32_t* old, uint32_t* new);
    2828
    2929void Init5235 (void)
     
    7878
    7979    /* Copy the interrupt vector table to address 0x0 in SDRAM */
    80     {
    81         uint32_t *inttab = (uint32_t *)&INTERRUPT_VECTOR;
    82         uint32_t *intvec = (uint32_t *)0x0;
    83         register int i;
    84         for (i = 0; i < 256; i++)
    85         {
    86             *(intvec++) = *(inttab++);
    87         }
    88     }
     80    CopyVectors((const uint32_t *)&INTERRUPT_VECTOR, (uint32_t*)0);
    8981
    9082    m68k_set_vbr(0);
     
    9486     */
    9587    CopyDataClearBSSAndStart ();
     88
    9689}
Note: See TracChangeset for help on using the changeset viewer.