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

 
 
> flash память, простые действия с памятью
laryc
сообщение Feb 20 2017, 14:22
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 55
Регистрация: 1-01-10
Из: комсомольск на амуре
Пользователь №: 54 586



Добрый писать и День! Нигде не могу найти подходящую информацию как и извлекать информацию из флешь памяти (есть такая насущность) в IAR.
На ассемблере таких проблем почемуто не возникало.

#include <pgmspace.h>
.......................

unsigned char tt;
const char __flash Sound[3] = {0,1,2};

...включаем компилятор - всё ОК!
..........
далее хочу взять константу из flash ... пишу

tt = Sound[2]; ( .....пробовал _flash Sound[3] ..и по всякому менял синтаксис)

компилятор выдаёт ошибку:

Ошибка [Pe077]: эта декларация не имеет класса хранения или спецификатор типа
Ошибка [Pe147]: декларация несовместима с "неподписанные символ ТТ"
Ошибка [Pe028]: выражение должно иметь постоянное значение


--------------------
никогда не бывает так плохо чтобы небыло ещё хуже
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
k155la3
сообщение Feb 23 2017, 15:04
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Обратите внимание на "коварность" (в хорошме смысле) оптимизатора IAR.
Если ОН обнаружит что некая переменная на ЕГО взгляд не используется,
то код для ее "обслуживания" вполне может не сгенерироваться.
Отключайте в отладке оптимизацию.

ps - если есть атрибут в версии AVR IAR __root - попробуйте его.
Смотрите распределение памяти в map-файле.

Сообщение отредактировал k155la3 - Feb 23 2017, 15:06
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Feb 23 2017, 18:51
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (k155la3 @ Feb 23 2017, 17:04) *
Отключайте в отладке оптимизацию.
Простите за прямоту, но это вредный, если не сказать грубее, совет. Вместо прятанья головы в песок путем отключения оптимизации надо разбираться, почему именно оптимизированный код делает не то, что хотел программист. Практика показывает, что в подавляющем большинстве случаев причина в недостаточной квалификации программиста и решение таких проблем эту квалификацию повышает.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
k155la3
сообщение Feb 24 2017, 07:02
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Цитата(Сергей Борщ @ Feb 23 2017, 21:51) *
Простите за прямоту, но это вредный, если не сказать грубее, совет.

Разбираться, почему не работает оптимизированный код - сильно укрепляет мозг, но не все готовы на такие жертвы sm.gif
В идеале - надо идеально знать процессор, компилятор, язык программирования и ошибок не допускать.
А на "старте", в том числе для изучения оптимизатора - можно использовать вышеуказанный способ. IMHO.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Feb 24 2017, 15:41
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(k155la3 @ Feb 24 2017, 09:02) *
Разбираться, почему не работает оптимизированный код - сильно укрепляет мозг, но не все готовы на такие жертвы sm.gif

Невозможно укреплять то, чего нет sad.gif. Увы sad.gif



--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- laryc   flash память   Feb 20 2017, 14:22
- - amiller   Вам надо было указать платформу, для которой пытае...   Feb 20 2017, 14:37
- - laryc   исправил... платформа IAR AVR 6.12 char tt; __fl...   Feb 20 2017, 14:51
|- - Сергей Борщ   QUOTE (laryc @ Feb 20 2017, 16:51) Три ош...   Feb 20 2017, 16:23
|- - Obam   Цитата(k155la3 @ Feb 23 2017, 19:04) Обра...   Feb 23 2017, 15:45
||- - MrYuran   Цитата(Obam @ Feb 23 2017, 18:45) А от се...   Aug 1 2017, 07:10
||- - jcxz   Цитата(MrYuran @ Aug 1 2017, 10:10) Немно...   Aug 1 2017, 08:07
|- - Сергей Борщ   QUOTE (k155la3 @ Feb 24 2017, 09:02) А на...   Feb 24 2017, 08:14
||- - Obam   По поводу main{} присоединяюсь: ТС троллить пытает...   Feb 24 2017, 10:17
||- - Сергей Борщ   QUOTE (Obam @ Feb 24 2017, 12:17) И вот т...   Feb 24 2017, 13:19
|- - jcxz   Цитата(k155la3 @ Feb 24 2017, 09:02) Разб...   Feb 24 2017, 15:06
||- - k155la3   Цитата(jcxz @ Feb 24 2017, 18:06) Сергей ...   Feb 27 2017, 07:48
- - scifi   А я просто ещё раз напомню, что оптимизация требуе...   Feb 25 2017, 08:55
- - Obam   Невольно зачётный троллинг получился (; Ведь у се...   Aug 1 2017, 08:09
|- - jcxz   Цитата(Obam @ Aug 1 2017, 11:09) И самое ...   Aug 1 2017, 08:12
- - Obam   Тут тот самый случай. Полгода в треде ни единого в...   Aug 1 2017, 08:23


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

 


RSS Текстовая версия Сейчас: 30th July 2025 - 11:43
Рейтинг@Mail.ru


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