saimhe wrote: >> sekmingai tai padaro pats is auksto lygio C kodo (ko beje apie Atmega >> nepasakyciau). Vat kaip atrodo STM32 pinu inicializavimas: >> GPIO_InitStruct->GPIO_Pin = GPIO_Pin_All; >> GPIO_InitStruct->GPIO_Speed = GPIO_Speed_2MHz; >> GPIO_InitStruct->GPIO_Mode = GPIO_Mode_IN_FLOATING; > > Ir ką čia sugeneruoja kompiliatorius? (gcc -S ...) > > Labai seniai, nesant sourcų po ranka, dizasembliavau IAR 8051 rantaimą. > Ot egzotiškai vietomis padaryta. Pavyzdžiui, pointeriai 3 baitų (nors > adresų erdvė 16 bitų), pirmasis baitas rodo atminties tipą (mov @Ri, movx, > movc) -- vienas malonumas memory-mapped periferiją emuliuoti :) > Gale sukompiliuoja elementaru mov'a. Taigi cia nera kazko magisko - daug typedef'u ir strukturu. Visa procesoriaus inicializavimas - link 50 eiluciu galiausiai susiveda i kelis baitus - PLL'ai ir clockinimas (64 bitus - 2 registrus nustatyti), GPIO konfiguracija - panasiai link naudojami_portai * 64 bitai (2x32b)