Zastanawiam się czy w wygenerowanym pliku hex (kompilator avr-gcc) w programie bez sekcji boot ciągłość adresów jest zachowana?
Przykładowy hex wygląda tak:
:100000000C9493040C94B4040C94B4040C94B404B1
:100010000C94B4040C94B4040C94B4040C94B40480
:100020000C94B4040C94B4040C94B4040C94B40470
:100030000C94B4040C94B4040C94B4040C94B40460
Gdzie adresy pamięci zaznaczyłem pogrubieniem.
W hex'ie występują czasem "dziwne" wcięcia:
:1031F000C9F7620F731F841F951FA01D0895AA1B96
:10320000BB1B51E107C0AA1FBB1FA617B70710F0D1
:10321000A61BB70B881F991F5A95A9F78095909503
:0A322000BC01CD010895F894FFCF22
:10322A00756E6C6F636B006C6F636B004154480082
:10323A0041542B5153434C4B3D31004154204530AE
Najczęściej pod koniec pliku (i jest tylko jedno, ale np w STMach jest ich więcej).
Mimo tego wcięcia ciągłość adresów jest zachowana.
Pytanie czy możliwa jest sytuacja w której adres zmieni się nagle np z pozycji 1000 na 2000, tworząc dziurę w pamięci.
Przykładowy hex który generowałem powstał z programu który posiada przerwania, zmienne, stałe i odwołania do pamięci flash (stałe tekstowe). EEpromu nie używam.
Piszę właśnie bootloader i muszę wiedzieć czy moge sobie z takiego hexa wyciąć tylko pola zawierające dane (czyli odrzucić kontrolę adresu).
Przykładowy hex wygląda tak:
:100000000C9493040C94B4040C94B4040C94B404B1
:100010000C94B4040C94B4040C94B4040C94B40480
:100020000C94B4040C94B4040C94B4040C94B40470
:100030000C94B4040C94B4040C94B4040C94B40460
Gdzie adresy pamięci zaznaczyłem pogrubieniem.
W hex'ie występują czasem "dziwne" wcięcia:
:1031F000C9F7620F731F841F951FA01D0895AA1B96
:10320000BB1B51E107C0AA1FBB1FA617B70710F0D1
:10321000A61BB70B881F991F5A95A9F78095909503
:0A322000BC01CD010895F894FFCF22
:10322A00756E6C6F636B006C6F636B004154480082
:10323A0041542B5153434C4B3D31004154204530AE
Najczęściej pod koniec pliku (i jest tylko jedno, ale np w STMach jest ich więcej).
Mimo tego wcięcia ciągłość adresów jest zachowana.
Pytanie czy możliwa jest sytuacja w której adres zmieni się nagle np z pozycji 1000 na 2000, tworząc dziurę w pamięci.
Przykładowy hex który generowałem powstał z programu który posiada przerwania, zmienne, stałe i odwołania do pamięci flash (stałe tekstowe). EEpromu nie używam.
Piszę właśnie bootloader i muszę wiedzieć czy moge sobie z takiego hexa wyciąć tylko pola zawierające dane (czyli odrzucić kontrolę adresu).
