Suštinski, po meni, nema nikakve razlike nekad i sad. Tehnološki napredak normalno, komplikuje stvari ali niko ti ne brani da i dalje tučeš po registrima i optimizuješ kod do besvesti. Arhitektura jeste složenija ali na kraju sve su to samo neki registri i bitovi u njima :)
Evo, kod koji je Bogdan dao:
Code:
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* Configure the system clock */
SystemClock_Config();
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_DMA_Init();
MX_CAN_Init();
MX_SPI2_Init();
MX_USART1_UART_Init();
MX_USART2_UART_Init();
MX_TIM2_Init();
/* Init and start scheduler */
osKernelInitialize();
MX_FREERTOS_Init();
osKernelStart();
Sve ovo dao je na gotovo CubeMX code generator za neki STM32 ARM. Ako mi se u nekom trenutku, kojim slučajem, nešto ne svidi ili imam nameru da baš znam šta to radi po registrima, uzmem pa pogledam po source kodu, jer je dostupan za svaku od ovih funkcija. To sam uglavnom i radio na početku. E sad, ovo su samo inicijalizacije i to nije teško da napišem sam ali ako mi treba USB stek npr. onda nema nikakvog smisla da ga pišem sam, nego uzmem gotov, proveren čiji je source kod opet tu. Logično, kad god mogu koristim HAL jer ja bolje od toga, za neko normalno vreme, ne mogu da uradim!
Patio sam se i ja sa Omnivision kamerama, doduše mnogo skromnijim od Mikijeve. Dokumentacija je očaj. Upucam u registar nešto što stoji u datasheet-u i ništa se ne desi.
Kad me drmne nostalgija uzmem 8-bitni Microchip sa Core Independent Peripherals pa se zezam.
Umalo da zaboravim. Hoću i ja u penziju!
gorankg