[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