Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 9 kwi 2026, o 12:30


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 14 wrz 2014, o 12:06 
Offline
Użytkownik

Dołączył(a): 01 mar 2014
Posty: 117
Lokalizacja: Kraków
Zbananowany użytkownik

Pomógł: 1

Mam problem z zadeklarowaniem tablicy:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


W ATmega1284 zostało jeszcze 75% wolnego flashu.

W konsoli otrzymuję komunikat:
Cytuj:
error: size of array 'lcd_scr_upper' is too large


Wczoraj na czacie doszliśmy do wniosku, że liczba elementów 1-bajtowych ograniczona jest do 2^15-1, czego potwierdzenie znalazłem w sieci.

Znalazłem też podpowiedź (http://en.wikipedia.org/wiki/C_dynamic_ ... allocation), że z użyciem wskaźników i funkcji malloc i calloc można rozwiązać ten problem tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Czy ktoś mógłby się do tego odnieść?

A gdyby podzielić tą dużą tablicę na dwie i wymusić, żeby zostały zapisane w pamięci dokładnie jedna po drugiej, a potem wskaźnikiem odwoływać się jak to jednej dużej?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 wrz 2014, o 13:56 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1988
Lokalizacja: Lipsko
Pomógł: 125

Po mojemu to wydaje mi się, że chcesz zadeklarować ponad 38kB... Trochę sporo.

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 wrz 2014, o 20:09 
Offline
Użytkownik

Dołączył(a): 01 mar 2014
Posty: 117
Lokalizacja: Kraków
Zbananowany użytkownik

Pomógł: 1

SylwekK napisał(a):
Po mojemu to wydaje mi się, że chcesz zadeklarować ponad 38kB... Trochę sporo.

Zgadza się, ale, jak już wspominałem, deklaruję we fleszu i sporo jeszcze zostaje. Nie ma problemu 32767 elementami, ale 32768 już nie wchodzi. Granica jest charakterystyczna.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 wrz 2014, o 20:32 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1988
Lokalizacja: Lipsko
Pomógł: 125

Prawdopodobnie chodzi o stronicowanie pamięci i może być niemożliwe aby w jednym kawałku zrobić tak długą rezerwację.

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 wrz 2014, o 18:53 
Offline
Użytkownik

Dołączył(a): 22 gru 2013
Posty: 296
Lokalizacja: Szczecin
Pomógł: 47

Tu masz wyjaśnienia:
http://www.avrfreaks.net/forum/compile-error-size-array-too-large
i nawet próbowali obejść ten problem za pomocą dwóch tablic (konkluzja=asambler).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 7 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO