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

 
 
> Как заставить помещать строки во флэш?
prottoss
сообщение Nov 2 2006, 19:49
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Всем доброго времени суток!

Столкнулся с такой проблемой: для отладки пользую USART и посылаю собственной функцией usart_print(uchar *str) сообщения вида:

Код
usart_print(("start time at:")
и т.п.

Все бы хорошо, функция отлаженна давно и работает безукоризненно. Но, когда у меня накопилось, в отлаживаемом в данный момент проекте, много сообщений у меня начались глюки в программе выражающиеся, в основном, в том, что программа стала вылетать на reset. После отладки в AVRStudio, оказалось, что добрая часть SRAM заполненна именно моими сообщениями. Установка галки в опциях компилера "Place aggregate initializers in flash memory" ничего не дает. Строки просто дублируются в памяти программ и все. В SRAM они так же присутствуют (((. Конечно, можно все сообщения поместить в отдельные массивы с префиксом __flash, создать еще одну функцию типа usart_print_flash(uchar __flash * str) и делать записи типа
Код
usart_print_flash(msg1)
но это не очень удобно и не очень наглядно. Может быть есть какая то возможность указать компилятору, чтобы динамически создаваемые строки он помещал во флэш, или создавал буфер на лету? ИАР версии 4.10В. Надеюсь, я понятно все объяснил. Спасибо


--------------------
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
IgorKossak
сообщение Nov 3 2006, 07:48
Сообщение #2


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Вобщем то ключевые слова signed и unsigned обычно применяются к обьектам, содержащим по смыслу числовые значения.
Что же касается символьных обьектов и строк на их основе, то общепринятым типом в этом случае является просто char.
Поэтому и обьявления в pgmspace.h вполне оправданные и корректные.
Go to the top of the page
 
+Quote Post
prottoss
сообщение Nov 3 2006, 07:53
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(IgorKossak @ Nov 3 2006, 14:48) *
Вобщем то ключевые слова signed и unsigned обычно применяются к обьектам, содержащим по смыслу числовые значения.
Что же касается символьных обьектов и строк на их основе, то общепринятым типом в этом случае является просто char.
Поэтому и обьявления в pgmspace.h вполне оправданные и корректные.
Ну а по поводу первого моего поста что можете сказать? Есть какие нибудь пути решения, кроме pgmspace?


--------------------
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 05:32
Рейтинг@Mail.ru


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