Bootstrap grid pull/push rows

I have a responsive bootstrap grid which I want to be shown in a different order depending on the device width.

sm or lower:

--------------
|      1     |
--------------
|      2     |
--------------
|      3     |
--------------
|      4     |
--------------
|      5     |
--------------
|      6     |
--------------
|      7     |
--------------

md or higher:

-------------
| 2 | 4 | 6 |
-------------
|     1     |
-------------
| 3 | 5 | 7 |
-------------

My problem is that col-pull and col-push only moves the column to the sides, not up and down.

This is what I have so far:

  <div class="row">
    <div class="col-md-12">1</div>
    <div class="col-md-4">2</div>
    <div class="col-md-4 col-md-push-4">3</div>
    <div class="col-md-4 col-md-pull-4">4</div>
    <div class="col-md-4 col-md-push-4">5</div>
    <div class="col-md-4 col-md-pull-4">6</div>
    <div class="col-md-4">7</div>
  </div>

read more

What’s wrong with the linker script

I tried to generate an image where there is a small portion of code that initializes the board (Raspberry Pi 2B), copies the rest of the stuff in upper memory and starts running the rest of the code there.

The idea is that the whole image is first loaded at 0x8000 from where the “functonality” is copied to the upper memory and started, and the stuff in 0x8000 is then abandoned.

It doesn’t work. I get errors from ld:

... /bin/ld: address 0x124ac of loader.elf section `.text2' is not within region `EXEC' ... /bin/ld: address 0x1ff18 of loader.elf section `.bss' is not within region `EXEC' ... /bin/ld: address 0x124ac of loader.elf section `.text2' is not within region `EXEC' ... /bin/ld: address 0x1ff18 of loader.elf section `.bss' is not within region `EXEC' ... /bin/ld: address 0x124ac of loader.elf section `.text2' is not within region `EXEC' ... /bin/ld: address 0x1ff18 of loader.elf section `.bss' is not within region `EXEC' ... /bin/ld: region `EXEC' overflowed by -520487144 bytes collect2: error: ld returned 1 exit status make: *** [loader.elf] Error 1 make: Target `all' not remade because of errors.

My linker script:

ENTRY(_start)

MEMORY
{
    LOAD (rwx) : ORIGIN = 0x00008000, LENGTH = 512k /* initial */
    EXEC (rwx) : ORIGIN = 0x1f000000, LENGTH = 512k /* runtime */
}

SECTIONS
{   
    /* Starts at LOADER_ADDR. */
    . = 0x8000;
    __text_start = .;
    .text :
    {
        *(.init)
        *start1.o(.text)
        *start1.o(.data)
        *start1.o(.bss)
        *(.text.startup)
    } >LOAD

    .text2 ALIGN(0x1000):
    {
         __code_begin = .;
        *loader.o(.text)
        *rpi2.o(.text)
        *serial.o(.text)
        *util.o(EXCLUDE_FILE(*instr_util.o).text)
        *gdb.o(.text)
        *(.text)
    } >EXEC AT>LOAD
    __text_end = .;


    __data_start = .;
    .data :
    {
        *(.data)
    } >EXEC AT>LOAD
    __data_end = .;


    __bss_start = .;
    .bss ALIGN(0x8):
    {
        bss = .;
        *(.bss)
        stacks = .;
        . = . + 512;    /* fiq stack size */
        __fiq_stack = .;
        . = . + 1024;   /* usr & sys stack size (common) */
        __usrsys_stack = .;
        . = . + 16384;  /* svc stack size (start-up) */
        __svc_stack = .;
        . = . + 4096;   /* irq stack size (serial) */
        __irq_stack = .;
        . = . + 512;    /* mon stack size */
        __mon_stack = .;
        . = . + 512;    /* hyp stack size */
        __hyp_stack = .;
        . = . + 512;    /* und stack size */
        __und_stack = .;
        . = . + 16384;  /* abrt stack size (gdb-stub) */
        __abrt_stack = .;
    } >EXEC AT>LOAD
    __bss_end = .;

    __new_org = 0x1f000000;


    /* gcc-generated crap */
    .note :
    {
        *(.note.*)
    } >LOAD

    .debug :
    {
        *(.debug*)
    } >LOAD

    __end = .;
}

read more

What’s wrong with the linker script

I tried to generate an image where there is a small portion of code that initializes the board (Raspberry Pi 2B), copies the rest of the stuff in upper memory and starts running the rest of the code there.

The idea is that the whole image is first loaded at 0x8000 from where the “functonality” is copied to the upper memory and started, and the stuff in 0x8000 is then abandoned.

It doesn’t work. I get errors from ld:

... /bin/ld: address 0x124ac of loader.elf section `.text2' is not within region `EXEC' ... /bin/ld: address 0x1ff18 of loader.elf section `.bss' is not within region `EXEC' ... /bin/ld: address 0x124ac of loader.elf section `.text2' is not within region `EXEC' ... /bin/ld: address 0x1ff18 of loader.elf section `.bss' is not within region `EXEC' ... /bin/ld: address 0x124ac of loader.elf section `.text2' is not within region `EXEC' ... /bin/ld: address 0x1ff18 of loader.elf section `.bss' is not within region `EXEC' ... /bin/ld: region `EXEC' overflowed by -520487144 bytes collect2: error: ld returned 1 exit status make: *** [loader.elf] Error 1 make: Target `all' not remade because of errors.

My linker script:

ENTRY(_start)

MEMORY
{
    LOAD (rwx) : ORIGIN = 0x00008000, LENGTH = 512k /* initial */
    EXEC (rwx) : ORIGIN = 0x1f000000, LENGTH = 512k /* runtime */
}

SECTIONS
{   
    /* Starts at LOADER_ADDR. */
    . = 0x8000;
    __text_start = .;
    .text :
    {
        *(.init)
        *start1.o(.text)
        *start1.o(.data)
        *start1.o(.bss)
        *(.text.startup)
    } >LOAD

    .text2 ALIGN(0x1000):
    {
         __code_begin = .;
        *loader.o(.text)
        *rpi2.o(.text)
        *serial.o(.text)
        *util.o(EXCLUDE_FILE(*instr_util.o).text)
        *gdb.o(.text)
        *(.text)
    } >EXEC AT>LOAD
    __text_end = .;


    __data_start = .;
    .data :
    {
        *(.data)
    } >EXEC AT>LOAD
    __data_end = .;


    __bss_start = .;
    .bss ALIGN(0x8):
    {
        bss = .;
        *(.bss)
        stacks = .;
        . = . + 512;    /* fiq stack size */
        __fiq_stack = .;
        . = . + 1024;   /* usr & sys stack size (common) */
        __usrsys_stack = .;
        . = . + 16384;  /* svc stack size (start-up) */
        __svc_stack = .;
        . = . + 4096;   /* irq stack size (serial) */
        __irq_stack = .;
        . = . + 512;    /* mon stack size */
        __mon_stack = .;
        . = . + 512;    /* hyp stack size */
        __hyp_stack = .;
        . = . + 512;    /* und stack size */
        __und_stack = .;
        . = . + 16384;  /* abrt stack size (gdb-stub) */
        __abrt_stack = .;
    } >EXEC AT>LOAD
    __bss_end = .;

    __new_org = 0x1f000000;


    /* gcc-generated crap */
    .note :
    {
        *(.note.*)
    } >LOAD

    .debug :
    {
        *(.debug*)
    } >LOAD

    __end = .;
}

read more