Witam,
Mam proste pytanie. Zastanawia mnie, w jaki sposób obsługiwane są przez kompilator i następnie w procesorze, zmienne, którym podczas pisania programu przypisuje się konkretną wartość. Istnieje spory zasób informacji o procedurach czytania wartości z obszaru pamięci programu, jednakże przecież przy zwykłym
program również działa tak, jak trzeba.
Pytam, ponieważ mam sytuację taką, że w
mam zapisane dane przedstawiające znaki ASCII. Początkowo zmienna ta miała być ładowana wartościami zapisanymi w pamięci EEPROM, jednakże bez wątpienia powoduje to pochłonięcie sporej części pamięci SRAM. Czytanie jej z kolei na bieżąco z pamięci FLASH stałoby się słabym punktem programu, powodując spowolnienie procesu poszukiwania, dekodowania i wysyłania znaku. Wnioskując z powyższego faktu - zmienna z predefiniowanymi wartościami spełnia swoją rolę bez wymuszania użycia pamięci FLASH/EEPROM - wartości te muszą być jakoś przekazywane, czyli kompilator przetwarza je na rzeczywistą część umieszczoną w programie. I właśnie - w jaki sposób jest to potem odtwarzane? Również mamy do czynienia z "pochłonięciem" pamięci SRAM? Czy może wszystko jest na sztywno zapisane w kodzie maszynowym?
Z góry dziękuję za odpowiedź.
Pozdrawiam.
Mam proste pytanie. Zastanawia mnie, w jaki sposób obsługiwane są przez kompilator i następnie w procesorze, zmienne, którym podczas pisania programu przypisuje się konkretną wartość. Istnieje spory zasób informacji o procedurach czytania wartości z obszaru pamięci programu, jednakże przecież przy zwykłym
Kod: C / C++
program również działa tak, jak trzeba.
Pytam, ponieważ mam sytuację taką, że w
Kod: C / C++
mam zapisane dane przedstawiające znaki ASCII. Początkowo zmienna ta miała być ładowana wartościami zapisanymi w pamięci EEPROM, jednakże bez wątpienia powoduje to pochłonięcie sporej części pamięci SRAM. Czytanie jej z kolei na bieżąco z pamięci FLASH stałoby się słabym punktem programu, powodując spowolnienie procesu poszukiwania, dekodowania i wysyłania znaku. Wnioskując z powyższego faktu - zmienna z predefiniowanymi wartościami spełnia swoją rolę bez wymuszania użycia pamięci FLASH/EEPROM - wartości te muszą być jakoś przekazywane, czyli kompilator przetwarza je na rzeczywistą część umieszczoną w programie. I właśnie - w jaki sposób jest to potem odtwarzane? Również mamy do czynienia z "pochłonięciem" pamięci SRAM? Czy może wszystko jest na sztywno zapisane w kodzie maszynowym?
Z góry dziękuję za odpowiedź.
Pozdrawiam.
