Jump to content
Sign in to follow this  
EugenOS

Iar 78K Compiler Plugin For Eclipse

Recommended Posts

Устал от отсутствия в иаре элементарных удобств (хи..хи..посмотреть на PM+ нековский/ренесасовский...так ИАР раем покажется) решил поставить это счастье. Отладка для 78K не реализована, так хоть разработка удобная будет...хм..по началу обрадовался, все так как хотелось. Подсветка нормально работает, подсказки/подстановки предлагает. В общем практически современный RAD...не долго счастье длилось. Что-то там не так реализовано или надо как-то правильно конфигурировать. Короче говоря, имею две проблемы.

1) с #include жесткие проблемы. Регулярно перестает распознавать файлы девайсов из IAR Workbench. т.е.

#include <io78F9234.h> через некоторое непродолжительное время (после некоторой правки исходников) начинает подсвечиваться ошибкой. Говорит что файл не найден.

Этот момент, в принципе решаем. Копируем файл в папку проекта. И заменяем #include <io78F9234.h> на #include "io78F9234.h". И все работает, но все же не правильно это как-то.

2) Вот это уже не удобно совсем. Не смотря на то, что иаровский компилятор способен совершенно спокойно усваивать не именованные объединения, которые и используются активно в девайс файлах, для описания аппаратуры. При использовании плагина во-первых они упорно не "подсвечиваются" для автоподстановки, и при компиляции постоянно на них ругаеццо что типа нет такого определения.

#ifndef __78K_BIT_STRUCTURE__
#define __78K_BIT_STRUCTURE__
typedef struct
{
unsigned char no0:1;
unsigned char no1:1;
unsigned char no2:1;
unsigned char no3:1;
unsigned char no4:1;
unsigned char no5:1;
unsigned char no6:1;
unsigned char no7:1;
} __BITS8;
#endif
// ... ... ...
__saddr __no_init volatile union { unsigned char P0; __BITS8 P0_bit; } @ 0xFF00;
__saddr __no_init volatile union { unsigned char P2; __BITS8 P2_bit; } @ 0xFF02;
__saddr __no_init volatile union { unsigned char P3; __BITS8 P3_bit; } @ 0xFF03;
__saddr __no_init volatile union { unsigned char P4; __BITS8 P4_bit; } @ 0xFF04;
// ... ... ...

т.е. открываем сам файлик. в просмотрщике иерархии появляется куча анонимных union, но когда в основном файле пишем P0 или P0_bit.no0 - ругается что такого определения нет.

Пытался включить разные опции, в частности IAR Extended Embeded C++ Syntax. В опциях командной строки он появляется, но упорно не желает видеть не именованные юнионы.

Казалось нашел решение. Создаю пустой проект. И в нем сразу не С/C++ Source, а С++ Class. Все начинает работать, все видит.

Подключаем девайс файл. В подсказке появляются порты и биты. При компиляции на них не ругается (вообще ругается только линкер, сто нет метода main, ну так мы его еще не создавали. Вот оно счастье. А фигушки. Добавление любого метода к классу, равно как и создание внешней функции main.Снова отрубает у редактора и компилятора способность понимать не именованные юнионы.

Что делать с этим уродством???!!!! Кто-нибудь сталкивался? Решение находили?

Для того чтоб понятнее было. Выкладываю картинки:

Первая, где видно что редактор подчеркивает P0, а компилятор (в низу) на него ругается.

post-42854-0-47485100-1400038847_thumb.jpg

А вторая, где видно что оно его вроде как понимает, просто игнорит, т.к. оно не именованное :

post-42854-0-55170900-1400038857_thumb.jpg

P.S. Манипуляции с созданием класса, связаны с тем что С99 спецификация не предполагает использование не именованных объединений. Такое по стандарту возможно только в С++. Попытался насильно сделать гарантированный "плюс плюс". Не понятно почему эффект столь мимолетен...

Edited by EugenOS

Share this post


Link to post
Share on other sites

Ну вот, и инклюд тоже пропал из видимости. Просто нажал Build All. Как раз с последней компиляции появилась функция main() та что на картинке с комментарием о заплатке.

теперь, даже если ее удалить, инклюд больше не увидит, пока не перепишу в локальную папку проекта. Что за бред. И главное, плагин сами иары пишут. С одной стороны купить у них воркбенч и обратиться в саппорт, а с другой плагин особо не меняли еще с 4-й версии бенча. Где гарантия, что они пошевелятся? Жалко денег в пустую отдавать...рычать хочется.....

post-42854-0-78061500-1400039835_thumb.jpg

Share this post


Link to post
Share on other sites

Вебинар STM32G0 – новый лидер бюджетных 32-битных микроконтроллеров от STMicroelectronics

Компания Компэл приглашает вас 25 сентября принять участие в вебинаре, который посвящен новому семейству микроконтроллеров STM32G0. Вебинар рассчитан на технических специалистов и тех, кто хорошо знаком с семейством STM32. На вебинаре будут освоены современные методы тестирования производительности микроконтроллеров на примере самых бюджетных 32-битных семейств общего назначения STM32G0 и STM32F0 и проведено их подробное сравнение.

Подробнее

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Сообщения

    • Guest Алкс
      Так-то есть штатный предохранитель. Я использую штатную проводку, в которой уже имеется предохранитель печки. Можно конечно и отдельный добавить и я его добавлю, но не на саму плату, потому как плата будет в трудно доступном месте.  Из всех деталей нашёл (закупил) все, кроме стабилитрона 1N5352  За этой копеечной штукой ездил в соседний город, но и там его не оказалось. Купил по паре штук одноваттных (красно-черно-прозрачные) на 15 и 18 и два защитных диода р6ке15 и р1,5ке18 Это всё, что я смог раздобыть Могу ли я чем-то заменить 1N5352 из этих найденных? Ну и хотелось бы узнать на сколько грамотно я устранил замечания по всем вариантам.  Ну и собственно какой вариант самый оптимальный? Но сам я как ни странно остановился на том, который изначально мне не понравился - вариант 4
    • Может было проще приобрести переменный резистор на меньший номинал? А еще проще параллельно имеющемуся на 15 ком припаять постоянный резистор (10 ком, 5 ком, 1 ком) - какой понравится.
    • А чего друг не отнёс плату местному сантехнику или Ашоту с овощного рынка?
    • Подскажите схему электронной нагрузки на TIP35C, видел у китайцев. Никто не разбирал, не делал аналогичную?
    • Похоже вы ещё не готовы, солидарен. Ок. Разберусь сам.
    • А компаратор LM2903 и есть полным аналогом LM393 .
    • Для тех, кто не хочет устанавливать и разбираться с CooCox, чтобы скомпилировать исходники и получить готовую прошивку. Готовая прошивка находится во всех архивах, приложенных ранее, в папке "NewIgnition\Debug\bin"
×
×
  • Create New...