Компилятор IAR для STM8

Все о микроконтроллерах: AVR, PIC, STM8, STM32, Arduino, Altera, Xilinx, все что угодно. Этот раздел для всего что клацает байтиками.
bdpcvit
Сообщения: 12
Откуда: Chernivci

Сообщение bdpcvit » 01 мар 2013, 10:58

Всем доброго дня!
Есть вопрос по компилятору IAR. решил я на свою голову просмотреть на что похож ассемблер STM8 ну и сравнивал что делает компилятор IAR. Так вот в ассемблере есть простая команда инкремента «INC» которая, если я правильно понял, умеет инкрементировать значение аккумулятора или любой ячейки ОЗУ. Но компилятор IAR про нее не знает или ..?

итак код:

Код: Выделить всё

void main(void)
{
uint8_t tst = 0;
tst++;
}

IAR превращает в

Код: Выделить всё

LD A,(?b1, SP)
ADD A, #?b1
LD (?b1, SP),A

причем при максимальном уровне оптимизации вместо ADD все таки появляется команда INC но остальные две никуда не деваються

Код: Выделить всё

LD A,(?b1, SP)
INC A
LD (?b1, SP),A


Вопрос: по какой причине компилятор IAR может так делать?

Аватара пользователя
BSVi
Адепт
Сообщения: 3375
Откуда: Киев

Сообщение BSVi » 01 мар 2013, 11:04

Я не спец по ассемблеру стм ок, но, тут нужно делать INC ен просто по адресу, а по стеку+смещение. Возможно, именно в этом проблема.

bdpcvit
Сообщения: 12
Откуда: Chernivci

Сообщение bdpcvit » 01 мар 2013, 12:42

Если честно - плохо понял что Вы сказали.
Но зачем так сложно делать?
Вот оторванная страница из мануала по ассемблеру STM8
https://goo.gl/photos/GYKc9ABpXV4X8KMq5
Меня возмущает что на фоне всеобщей борьбы с не атомарными операциями один из передовых компиляторов ложил на это.
Последний раз редактировалось bdpcvit 08 авг 2015, 17:59, всего редактировалось 1 раз.

Аватара пользователя
BSVi
Адепт
Сообщения: 3375
Откуда: Киев

Сообщение BSVi » 01 мар 2013, 13:04

Да, действительно инструкция такая есть. Прямой путь в поддержку иара.

bdpcvit
Сообщения: 12
Откуда: Chernivci

Сообщение bdpcvit » 01 мар 2013, 13:24

Спасибо!!! Написал. Посмотрим чем закончиться.

bdpcvit
Сообщения: 12
Откуда: Chernivci

Сообщение bdpcvit » 05 мар 2013, 13:30

Все отлично. Получил ответ:
Dear Dmytro Bernyk,
Thanks for your inputs.
I have passed the issue you reported to our developers as an improvement
suggestion.

Ждем !!!

koyodza
Сообщения: 43
Откуда: Киев

Сообщение koyodza » 04 апр 2013, 21:33

IAR для STM8 жутко недоделанный, за всё время вышло всего пару релизов. Наверное, неприоритетное направление

bdpcvit
Сообщения: 12
Откуда: Chernivci

Сообщение bdpcvit » 04 апр 2013, 22:14

А что для Вас означает недоделаный. Поймите меня правильно, я не придераюсь к словам, мне интересно Ваше менение но более обоснованое.
Я не очень слежу за количеством релизов, и не могу сравнить с версиями для других контролеров (не хватает ума и времени), но для STM8 все что породил мой мозг в процесе освоения - работает правильно (точнее предсказуемо). И для меня это важный показатель. Может конкуренти и видают код получше - но в IAR среда более дружелюбна.


bdpcvit
Сообщения: 12
Откуда: Chernivci

Сообщение bdpcvit » 05 апр 2013, 17:04

Спасибо за ссылки.
Почитал, подумал - поставил STVD + Cosmic
Совсем другое дело - там инкремент и в ассемблере одна команда. Попробую в ближайшее время старые проекты перекомпелировать.
Правда пока не нашел как вывести размер кода после компиляции.

pity
Сообщения: 3

Сообщение pity » 08 авг 2015, 16:05

Здорова ребята ! у меня такая проблема появилась , установил IAR прогу при компиляции выдает такую ошибку
Fatal error[LMS001]: License check failed. Use the IAR License Manager to resolve the problem. No license found. [licenseChek:2.14.2.8.842, RMS:8.5.2.0015, feature: STM8EW.COMPILER, Version:1.3]
Error while running C/C++ Compiler

bdpcvit
Сообщения: 12
Откуда: Chernivci

Сообщение bdpcvit » 08 авг 2015, 16:56

Нужно всего то запустить License Manager и активировать пробную лицензию или полную, если имеете.

pity
Сообщения: 3

Сообщение pity » 08 авг 2015, 17:42

сказано что есть с ограничением 8кбайт . как получить эту версию подскажите пожалуйста . спасибо !

bdpcvit
Сообщения: 12
Откуда: Chernivci

Сообщение bdpcvit » 08 авг 2015, 17:52

Качаете версию с ограничением по размеру, ставите, запускаете License manager, выбираете Get Evaluation license, регистрируетесь, ждете код на почту, вставляете код - готово
https://goo.gl/photos/SvtESnXipht9BCM96

pity
Сообщения: 3

Сообщение pity » 08 авг 2015, 18:13

огромное спасибо , ты меня во много выручил , щас посмотрим .

Valek174
Сообщения: 6

Сообщение Valek174 » 21 июн 2017, 10:29

Здравствуйте. У меня установлен EWARM-7502-10505 для STM32. Я так понимая что для STM8 нужен отдельный установочный файл? Подскажите пожалуйста, программа для STM8 объединится с программой для STM32, или их нужно установить в разные папки/диски?
Спасибо!

R2R
Сообщения: 165
Откуда: Калуга

Сообщение R2R » 21 июн 2017, 13:34

Устанавливать в разные папки.

Вернуться в «Микроконтроллеры и ПЛИС»



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость