29-06-2016, 9:33
(29-06-2016, 8:09)SQ6DGT napisał(a): Zdecydowanie odradzam zejście do asemblera :-) chyba, że celem jest właśnie programowanie w asemblerze lub nostalgiczne zacięcie :-)
Ogólna znajomość assemblera wykorzystywanego procesora jest bardzo przydatna z zupełnie innego powodu niż nostalgia czy chęć pokazania że się da w tym pisać.
Przed powstaniem softu musimy wybrać środowisko, kompilator, zestaw bibliotek. Jak ocenić efektywność pracy kompilatora czy użytej funkcji bibliotecznej kiedy nie mamy pojęcia jakie instrukcje wykona procesor ? Proponuję pooglądać pliki *.asm lub *.elf. Narzuty w rozbudowanych funkcjach typu DSP są pomijalne. Niestety proste funkcje biblioteczne mają kilka razy więcej kodu niż trzeba. Część wynika ze standardu języka C a część z filozofii danej biblioteki np. HAL-a. Tam gdzie nie zależy nam zbytnio na czasie może tak zostać. W miejscach gdzie wymagania czasowe są większe trzeba zadbać o bardziej optymalny kod, okroić funkcję biblioteczną, napisać własną lub wstawić "łatę a asm".
Możemy pisać oprogramowanie w oderwaniu od sprzętu tylko trzeba mieć świadomość jakim kosztem obciążenia procesora.
Konkluzja: dbałość o jakoś kodu ma zapobiec sytuacji kiedy mamy: język C + lib-y, 32 bity, 168Mhz a efekt jak dla procesora 8-bitowego.
73 Adam

