Страница 1 из 1
IAR данные во Flash
Добавлено: Пт фев 27, 2015 12:26:51
Next13
Как в IAR разместить текст желательно по конкретному адресу flash? и чтобы при оптимизации не выкидывал это из программы как неиспользованные данные. Как сделать это правильно и красиво.
Re: IAR данные во Flash
Добавлено: Пт фев 27, 2015 13:03:09
eess9
Просто во флеш так:
Код: Выделить всё
//Объявили строку в памяти программ
__flash const char strInFlash[] = "Hello from flash";
По конкретному адресу сложнее. В настройках проекта надо создать свою секцию, задав ей нужный начальный адрес. Далее данные размещать в этой секции.
http://microsin.ru/content/view/1177/44/
Стесняюсь спросить, а нахрена вам по конкретному адресу? Обращаетесь к переменной, а разбор адресов оставьте компилятору. Чтобы ее не выкинули при сборке проекта просто используйте ее. Считайте байт этой переменной из флаш в ОЗУ, например. Все неиспользуемые данные выкидываются при оптимизации, и это есть правильно.
Re: IAR данные во Flash
Добавлено: Пт фев 27, 2015 13:05:43
oleg110592
почитайте:
IAR C/C++ Compiler User Guide
Part 1. Using the compiler->Efficient coding for embedded applications->Controlling data and function placement in memory
Data placement at an absolute location
Data and function placement in segments
Re: IAR данные во Flash
Добавлено: Пн мар 02, 2015 06:36:22
Next13
eess9 писал(а):Просто во флеш так:
Код: Выделить всё
//Объявили строку в памяти программ
__flash const char strInFlash[] = "Hello from flash";
По конкретному адресу сложнее. В настройках проекта надо создать свою секцию, задав ей нужный начальный адрес. Далее данные размещать в этой секции.
http://microsin.ru/content/view/1177/44/
Стесняюсь спросить, а нахрена вам по конкретному адресу? Обращаетесь к переменной, а разбор адресов оставьте компилятору. Чтобы ее не выкинули при сборке проекта просто используйте ее. Считайте байт этой переменной из флаш в ОЗУ, например. Все неиспользуемые данные выкидываются при оптимизации, и это есть правильно.
Так и сделал, просто хотелось красиво. Хотел чтобы в начале прошивке видно было версия ПО.
Re: IAR данные во Flash
Добавлено: Пн мар 02, 2015 07:03:07
ARV
Next13 писал(а):просто хотелось красиво. Хотел чтобы в начале прошивке видно было версия ПО.
видно через дырочку в корпусе МК?

кто увидит версию-то вашу, если наверняка еще и залочите чип после прошивки?
Re: IAR данные во Flash
Добавлено: Пн мар 02, 2015 07:49:17
oleg110592
тут пример как разместить в прошивке дату и время для старых и новых версий IAR:
http://supp.iar.com/Support/?note=36121
имхо полезная функция для личного пользования
Re: IAR данные во Flash
Добавлено: Вт мар 03, 2015 15:41:56
YS
По конкретному адресу сложнее.
Есть же #pragma location. Или с этим методом что-то не так?
Re: IAR данные во Flash
Добавлено: Ср мар 04, 2015 12:32:33
Next13
ARV писал(а):Next13 писал(а):просто хотелось красиво. Хотел чтобы в начале прошивке видно было версия ПО.
видно через дырочку в корпусе МК?

кто увидит версию-то вашу, если наверняка еще и залочите чип после прошивки?
Шутник? Я и не собираюсь его показывать ни кому, это для себя. Устройство одно, а прошивки под разный функционал уже сам путаться стал.
Re: IAR данные во Flash
Добавлено: Ср мар 04, 2015 13:18:33
YS
в начале прошивке
Не знаю, что вы подразумеваете под "началом", но на всякий случай скажу, что по нулевому адресу не стоит размещать ничего кроме корректных команд, ибо туда обычно указывает вектор сброса. Так что я бы версию располагал в конце, после бесконечного цикла, в месте, содержимое которого точно не будет выполняться.
Кстати, можно версию просто руками в hex добавлять. Intel hex - простой текстовый формат. В бинарник, в общем, тоже добавить несложно.
Re: IAR данные во Flash
Добавлено: Пт мар 06, 2015 11:23:42
Next13
YS писал(а):в начале прошивке
Не знаю, что вы подразумеваете под "началом", но на всякий случай скажу, что по нулевому адресу не стоит размещать ничего кроме корректных команд, ибо туда обычно указывает вектор сброса..
Это я в курсе
Re: IAR данные во Flash
Добавлено: Пт мар 06, 2015 11:27:44
ARV
Next13 писал(а):Шутник? Я и не собираюсь его показывать ни кому, это для себя. Устройство одно, а прошивки под разный функционал уже сам путаться стал.
шутник - это вы, т.к. обычные люди
для разных вариантов прошивок используют
разные имена файлов 
кстати, не только для прошивок метод годится - имейте ввиду

а еще есть вариант по разным папкам раскладывать... но это, пожалуй, слишком сложно будет...
Re: IAR данные во Flash
Добавлено: Пт мар 06, 2015 11:42:03
eess9
Нет, то о чем спрашивал товарищь вполне резонно. Пусть не прошивку, а версию прошивки. Это очень удобно. Единственное, зачем ему по конкретному адресу не понятно. Номер прошивки и версию надо иметь возможность считать в любой момент работы и из любого устройства. Не знаю что там товарищь делает, но нужна специальная команда в протоколе для версии прошивки. Это значительно облегчает повторение и последующее отлавливание багов в прошивке, найденных другими лююдьми.