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



Teraz jest 22 gru 2024, o 21:17


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 17 paź 2014, o 16:29 
Offline
Użytkownik

Dołączył(a): 26 mar 2014
Posty: 25
Pomógł: 0

Witam,
Natknąłem się na ten wątek: posting.php?mode=reply&f=23&t=3419 , szukając informacji na temat tablicowania ( a są one mi potrzebne na "gwałt"). Programuje mikrokontrolery STM32. Dodałem następujące linie:

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


Po czym skompilowałem i uzyskałem 48 warrningów treści:
Cytuj:
...\values.txt:1:1: warning: (near initialization for 'sin_tab[0]') [enabled by default]
...\values.txt:2:1: warning: initializer element is not a constant expression [enabled by default]

Skąd tyle ostrzeżeń ? Jak się tego pozbyć i jak podejść do zagadnienia ? Przepraszam za może laickie pytanie, ale w życiu nie operowałem "czynie" (czyli tylko wgrywałem gotowy kod do flash :P) na pamięci flash. Odnośnie samej metodyki tablicowania - wiem tylko tyle, że tworzy się tablice stałych, wgrywa do pamięci stałej, aby potem ją wykorzystywać w programie - zmniejszając obciążenie MCU. Tyle z mojej wiedzy na ten temat niestety... Czy są jakieś dodatkowe haczyki ? Mógłby ktoś wytłumaczyć łopatologicznie całą metodę tablicowania ?
Z góry dziękuje.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 paź 2014, o 16:40 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 kwi 2013
Posty: 418
Lokalizacja: Rzeszów
Pomógł: 102

Kolega przypadkiem nie zapomniał dodać "PROGMEM" skoro dane mają trafić do pamięci FLASH...?

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

Nie programuje ARM stąd może nietrafiona podpowiedź i ten atrybut nazywa się inaczej ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 paź 2014, o 16:59 
Offline
Użytkownik

Dołączył(a): 26 mar 2014
Posty: 25
Pomógł: 0

Właśnie miałem dodać: wyczytałem, że STMy nie potrzebują komendy PROGMEM w celu zapisu danych do pamięci FLASH. Robią to same po napotkaniu "const"



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 paź 2014, o 18:59 
Offline
Użytkownik

Dołączył(a): 26 mar 2014
Posty: 25
Pomógł: 0

No właśnie ... wolałbym jednak uniknąć sztywnego "wklepywania" wartości do pliku.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 paź 2014, o 20:23 
Offline
Użytkownik

Dołączył(a): 26 mar 2014
Posty: 25
Pomógł: 0

No tak będę robił. Czyli dla jasności - nie ma możliwości zrobienia czegoś takiego: wylicz np. w podprogramie 512 wartości funkcji "k", a następnie wgraj je do FLASH jako const ? Ehh... a niby ARM jest bardziej wielofunkcyjny :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 paź 2014, o 18:03 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Forfiter napisał(a):
Czyli dla jasności - nie ma możliwości zrobienia czegoś takiego: wylicz np. w podprogramie 512 wartości funkcji "k", a następnie wgraj je do FLASH jako const ?

Jest taka możliwość. Kolega mokrowski przecież to właśnie napisał. Nie potrzeba do tego ARMaty i nie jest to MEGA problem dla ATMEGI. Wystarczy zdefiniować tablicę pod określonym adresem we flash i podczas startu programu zapisać ją tak jak robi to bootloader. To że podczas startu zostaną wykonane długie i skomplikowane obliczenia nie będzie miało znaczenia. Dla ARM, które w większości nie posiadają EEPROM są dostępne funkcje emulujące tą pamięć więc jest jeszcze łatwiej.

_________________
Dragonus Cracovus: Biomagia



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: 6 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 4 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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO