|
IAR STM8, Краткий отчет |
|
|
|
May 18 2010, 18:50
|
Гуру
     
Группа: Свой
Сообщений: 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 )
Непонятна такая разница в размере ОЗУ, буду разбираться, все ли указатели оказались во флэши. Объем кода и констант выглядит равным, с учетом того, что библиотеки подключены не полностью.
--------------------
Уходя, оставьте свет...
|
|
|
|
|
 |
Ответов
|
May 19 2010, 10:58
|
Местный
  
Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219

|
Цитата(Stanislav_S @ May 19 2010, 13:51)  Спасибо за отчет! сам сейчас буду переводить проект с 88 меги на S8, поэтому интересует вопрос производительность часом не измеряли? а то пока привязаиться особо не к чему, железо еще не готово. Я пробовал чуток с "железом" поиграться. Есть кое-какие проблемы. Но по производительности STM8 ни чуть не хуже AVR. Большинство команд так же выполняется за 1 такт, плюс инструкции обработки 16-разрядных данных... и т.д. PS: Использую STVD + ассемблер от Cosmic.
Сообщение отредактировал _Bill - May 19 2010, 11:03
|
|
|
|
Сообщений в этой теме
Dog Pawlowa IAR STM8 May 18 2010, 18:50     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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|