[elektro] AVR (re)boot
Arnold Fuzesi
arnold.fuzesi.lista at gmail.com
Thu Oct 18 11:19:30 CEST 2012
Igazabol kulon kodban illik forditani.
Az van sztem h a fordito tudja hogy a kodot 0x0000-nal kell kezdeni. (ez az alap, amig a linkert meg nem eroszakolja az ember) Inicializalja a stack/ram-ot, atadja a vezerlest a main()-nek.
Ezert nem indul el a boot fuggvenyed.
Elotte van egy jmp sztem az init reszre.
Init resz meg a main-t inditja.
Ird kulon projektben, akkor a 0x7e00-nal kezdi rendesen az eletet, oda teszi a RAM / stack initet es mindent ami kell a C kod futasahoz.
Szvsz, aztan lehet nem. :)
Arnold
Sent from my iPhone
On 2012.10.18., at 0:38, Szima Gábor <sygma at tesla.hu> wrote:
>
> On Thu, 18 Oct 2012, Arnold Fuzesi wrote:
>
>> IT vektort pakolaszni kell ha hasznalsz IT-t boot reszen, de megy flottul a lenti alapjan.
>
> Boot részen nem IT-zek.
>
> Ahol elakadtam: HFUSE: 0xde, azaz BOOTRST + BOOTSZ11 (0x7E00)
>
> A kód:
>
> void Boot (void) __attribute__ ((section (".bootloader")));
>
> int main (void) {
>
> led_villogtatas ();
> }
>
> void Boot (void) {
>
> while (1);
> }
>
>
> linker param: -Wl,--section-start=.bootloader=0x7E00
>
> map file alapján:
>
> 0x0000009c main
> 0x00007e00 Boot
>
>
> Elvileg a Boot () -ra kellene ugrania, de main fut le (villog a LED).
>
>
> -Sygma
>
> -----------------------------------------
> elektro[-flame|-etc]
More information about the Elektro
mailing list