eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaAVR32 - jak ruszyc z tym prockiemRe: AVR32 - jak ruszyc z tym prockiem
  • Data: 2009-11-08 07:13:13
    Temat: Re: AVR32 - jak ruszyc z tym prockiem
    Od: SM <b...@k...com.pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    ...walczę dalej

    wyczytałem że BatchISP:
    - kasuje flash pomijając bootloader
    - programuje flash nadpisując bootloader
    więc trzeba go dołączyć do swojego programu.

    zgrałem go więc (flash od adresu 0x80000000 do 0x80001FFF) dołączyłem
    jak BIN do swojego źródła - nie działa:

    .equ GPIO_BASE, 0xFFFF1000
    .equ GPIO_GPERS, 0x04
    .equ GPIO_ODERS, 0x44
    .equ GPIO_OVRS, 0x54

    .macro mov.w rd, imm
    mov \rd, LO(\imm)
    orh \rd, HI(\imm)
    .endm

    .text

    .global _start

    _start:
    .incbin "isp.bin" // 8192bytes (saved flash from 0x0000 to 0x1FFF)

    program_start:
    mov.w R0, GPIO_BASE

    mov.w R1, (1 << 3)
    st.w R0[GPIO_GPERS], R1

    mov.w R1, (1 << 3)
    st.w R0[GPIO_ODERS], R1

    mov.w R1, (0 << 3)
    st.w R0[GPIO_OVRS], R1

    always:
    rjmp always

    _stop:

    zgrałem jeszcze raz pomijając dwa pierwsze bajty i wstawiając tam
    "trampoline" - nie działa:

    .equ GPIO_BASE, 0xFFFF1000
    .equ GPIO_GPERS, 0x04
    .equ GPIO_ODERS, 0x44
    .equ GPIO_OVRS, 0x54

    .macro mov.w rd, imm
    mov \rd, LO(\imm)
    orh \rd, HI(\imm)
    .endm

    .text

    .global _start

    _start:
    rjmp program_start

    .incbin "isp.bin" // 8190bytes (saved flash from 0x0002 to 0x1FFF)

    program_start:
    mov.w R0, GPIO_BASE

    mov.w R1, (1 << 3)
    st.w R0[GPIO_GPERS], R1

    mov.w R1, (1 << 3)
    st.w R0[GPIO_ODERS], R1

    mov.w R1, (0 << 3)
    st.w R0[GPIO_OVRS], R1

    always:
    rjmp always

    _stop:

    asemblacja:
    avr32-as.exe -R -march=ucr1 -o main.out main.s

    linkowanie:
    avr32-ld.exe --oformat ihex -m avr32elf_uc3b0256 -Ttext 0x80000000 -Tbss
    0x00000000 -o main.hex main.out

    programowanie:
    batchisp -device at32uc3b0256 -hardware usb -operation erase f memory
    flash blankcheck loadbuffer main.hex program verify start reset 0

    BatchISP pisze że programuje, weryfikuje, wszystko OK, a i tak
    pin PA3 nie chce przyjąć poziomu niskiego. (Pomijam już to, że
    flash jest od 80000000 a BatchISP wszystko pokazuje od 0).
    Generuje plik HEX od 80002000, BatchISP i tak ładuje od 0.
    No i teraz nie wiem co właściwie to zero oznacza. Ale gówno.

    No to zabrałem się za prosty przykład z AVR Studio - sterowanie wyjście.
    Załadowałem. Działa. Chciałem podejrzeć co gdzie sie ładuje.
    Przerabiam ELF na HEX poprzez ObjCopy - wywala błąd!


    Ale syf. Powoli wymiękam. Robiłem już na chyba 8 różnych rodzinach
    procków (od 8bit do ARMów) ale takiego problemu z uruchomieniem
    to jeszcze nie miałem!

    SM

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: