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

 
 
> IAR STM8, Краткий отчет
Dog Pawlowa
сообщение May 18 2010, 18:50
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Попробовал портировать проект с AVR (ATmega32) на STM8s(Discovery), пользуясь IAR STM8 full.

Портирование делалось в условиях одновременного открытия двух сред IAR AVR/STM8, работающих с одними и теми же файлами с условной компиляцией. Исправления, сделанные для портирования в одной среде, тут же проверялись перекомпиляцией в другой среде.

Заметки на полях в случайном порядке, работа не завершена, нужно дописать вызовы функций библиотеки для STM8, сейчас в коде есть заглушки.

1. __delay_cycles в STM8 отсутствует или не подключилась реализация встроенных функций.

2. Диагностика Pe228 "trailing comma" в STM8 отсутствует (в enum). Странно - разбор синтаксиса должен быть идентичен.

3. В файле stm8s.h нет определений векторов прерываний.
Определения векторов прерываний вообще-то находятся в файле iostm8.h, но, если его подключить, находящиеся в этом же файле определения битов конфликтуют с определениями в stm8s.h, который используется в примерах. В stm8s.h - маски, в iostm8.h - битовые структуры. Видимо, ИАР в ходе работ над компилятором перешел на маски, которые используются в библиотеках от ST для STM8. Пришлось указать определения векторов в своих файлах.

4. При ошибках с векторами прерываний происходит внутренняя ошибка компилятора без указания строки ошибки исходника текста!
Очень неприятно, но с MSP430 бывало и хуже - когда из-за ошибок синтаксиса падала среда.

5. Предупреждение Pe083 (type qualifier specified more than once) при генерации массивов с помощью макросов - вылазит только при компиляции оригинального текста, компиляция результата препроцессора проходит без проблем. К сожалению, этот кусок не поддается анализу в трезвом виде.
Речь идет о __flash/const, для STM8 препроцессор должен заменить __flash на const, для AVR - наоборот. Насколько я помню, такой трюк для AVR<>MSP430 проходил без проблем.

6. __enable_interrupt() __disable_interrupt() не выделяет синеньким(что тоже странно), но по крайней мере ошибку не выдает.

7. Линкер не создает HEX-файл.

8. Размер кода
STM8: 14189 3438 1038 (ro code ro data rw data )

AVR: 16060 1850 45
+ common 64
16 100 bytes of CODE memory (+ 24 range fill )
1 850 bytes of DATA memory (+ 45 absolute )

Непонятна такая разница в размере ОЗУ, буду разбираться, все ли указатели оказались во флэши.
Объем кода и констант выглядит равным, с учетом того, что библиотеки подключены не полностью.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
topkin
сообщение May 19 2010, 06:37
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 152
Регистрация: 21-12-05
Из: Москва
Пользователь №: 12 476



Тоже интересуюсь STM8. Вообще их фирмваре библиотека на данный момент написана только для инструментариев Raisonance и Cosmic. Или у вас какой то новый релиз? Хотя переделать ее под себя не составляет никаких проблем. Я пока определился на связке STVD + Raisonance. Буду пока использовать бесплатную весию, дальше посмотрим. Что касаемо векторов прерываний, из примеров я подсмотрел, что для Cosmicа есть два файла, таблица векторов и их реализация. Для raisonance пишешь ручками void функцию с номером прерывания.
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение May 19 2010, 09:27
Сообщение #3


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

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



Хороший отчёт!
Но похоже пока сыроват этот тулчейн.
Нужно feedback IARовцам отправить по-хорошему.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
Stanislav_S
сообщение May 19 2010, 09:51
Сообщение #4


извечный пессимист
*****

Группа: Свой
Сообщений: 1 113
Регистрация: 9-10-06
Из: Днепропетровск
Пользователь №: 21 125



Спасибо за отчет! сам сейчас буду переводить проект с 88 меги на S8, поэтому интересует вопрос производительность часом не измеряли? а то пока привязаиться особо не к чему, железо еще не готово.


--------------------
Slaves are those of this world
Given freedom to lay chains upon The Master
The wolf is no longer free
Release the chains and come for me
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Dog Pawlowa   IAR STM8   May 18 2010, 18:50
|- - _Bill   Цитата(Stanislav_S @ May 19 2010, 13:51) ...   May 19 2010, 10:58
|- - Stanislav_S   Цитата(_Bill @ May 19 2010, 15:58) Я проб...   May 19 2010, 13:24
|- - Dog Pawlowa   Цитата(Stanislav_S @ May 19 2010, 16:24) ...   May 19 2010, 14:55
|- - _Bill   Цитата(Dog Pawlowa @ May 19 2010, 18:55) ...   May 19 2010, 17:27
|- - Fktrctq   Разработчики IAR сами портировали библиотеку STM8 ...   Dec 5 2010, 08:44
|- - Dog Pawlowa   Цитата(Fktrctq @ Dec 5 2010, 11:44) Это к...   Dec 5 2010, 15:58
|- - rezident   Цитата(Fktrctq @ Dec 5 2010, 13:44) особе...   Dec 5 2010, 17:02
- - Fktrctq   Аналогия не совсем корректна, в приведенном Вами п...   Dec 5 2010, 18:28
|- - Dog Pawlowa   Цитата(Fktrctq @ Dec 5 2010, 22:28) но за...   Dec 5 2010, 18:39
- - Fktrctq   Это все конечно понятно, но дело вот в чем: 1. Зач...   Dec 5 2010, 19:03
- - Dog Pawlowa   Проявился неприятный эффект неполного попадания вс...   Apr 19 2012, 13:01
- - scifi   Цитата(Dog Pawlowa @ Apr 19 2012, 17:01) ...   Apr 19 2012, 13:19


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

 


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


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