реклама на сайте
подробности

 
 
> GCC 4.3.2 Расположение данных вр флэш памяти, компилер упорно кладёт текст в ОЗУ
sonycman
сообщение Nov 22 2008, 06:07
Сообщение #1


Любитель
*****

Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695



Есть функция (в проекте для ИАРа) вида:
lcdPrintText(__flash char * text);
и её вызoв:
lcdPrintText("Some shit");

Как сделать подобное в новом GCC так, чтобы строка распологалась в памяти программ?
Компилер упорно грузит её в ОЗУ!
Ключевые слова prog_char и PROGMEM совершенно не помогают!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sonycman
сообщение Nov 22 2008, 08:23
Сообщение #2


Любитель
*****

Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695



Спасибо за наводку. Буду штудировать! :-)
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Nov 22 2008, 09:10
Сообщение #3


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(sonycman @ Nov 22 2008, 11:23) *
Спасибо за наводку. Буду штудировать! :-)
Читай между строкsmile.gif
Таким способом можно сильно повысить читаемость кода
Код
void lcd_print_str  (unsigned char x, unsigned char y, char* p);          // print RAM str
void lcd_print_cstr (unsigned char x, unsigned char y, const char* p);    // print FLASH str

#define  lcd_print_PSTR(X,Y,LCDPSTR)   lcd_print_cstr(X,Y,PSTR(LCDPSTR))  // put str in to FLASH and then print


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th August 2025 - 16:47
Рейтинг@Mail.ru


Страница сгенерированна за 0.01404 секунд с 7
ELECTRONIX ©2004-2016