Электрофлуд :)

Вот с этого момента поподробнее. У тебя или у НЕ ТВОЕЙ фирмы? Если второе, пусть идут нахуй строем и покупают лицензионное ПО.

У меня.
Если покупать только лицензионное ПО - круг доступных "не моих фирм" значительно сужается.
Ну... и самому же интересно. Я клипсу последний раз юзал году эдак в 2007м, думал, мало ли, вдруг что-то изменилось в лучшую сторону :D
 
Решил посмотреть что там мелкомягкие предлагают для андроида за ксамарин.
Так и не понял что мне надо поставить на телефон - в папке релиза одни .dll, апк только в папке дебаг.
ХЗ шо копировать.

P.S. Так, в порядке ознакомления. Собирает долго шопиздец. Если просуммировать время сборки - за время написания одного приложения сложнее "хэлоу ворд" можно успеть выучить яву.
 
Мммм, а EmBitz не? Обязательно половые извращения?

о. Хочешь объясню почему Мбитз нито, чтобы не, но не совсем тру?

Взял я проект под него, темплейт USB-HID и перегоняю в эклипс.
Так вот... он нихера не собирается - там инклуды не сквозные.
Мбитз прощает ошибки, но код получается потом у некоторых - неграмотный. Портни под другой IDE - и ногалицо обеспечена.

(Это, включая потерю stdint.h, когда не компилится из за того, что стдинт - не сквозной и uint8_t - в ЮСБ отсеке уже не виден. А в ЕмБитз - почему-то, виден, хотя не должно так быть).

Эклипс, всёж, более корректен в плане стандарта. ну, на столько, на столько корректны его приблуды. он отсебятину нести не умеет. А битз - несёт.
Хотя и неплох. И прощение ошибок - иногда не минус, а плюс. но с последствиями.
 
Description Resource Path Location Type
undefined reference to `SystemInit' startup_stm32.s /hid_c/startup line 79 C/C++ Problem

С main проблем, слава богу, не возникло.
Но при импорте проекта возникла проблема с инициализацией из ассемблерного стартапа.
/* Call the clock system intitialization function.*/
bl SystemInit
/* Call static constructors */
bl __libc_init_array
/* Call the application's entry point.*/
bl main
SystemInit, как и положено лежит в system_stm32f10x.c, файл этот в системе есть и в других местах ошибок не вызвал (может потому, что вызвал сразу в стартапе?)

Где его хочет видеть ассемблер?

P.S. Встречал решение, где люди его просто комментируют, но это ж неправильно. По идее, этот вызов должен быть до main.
Или пофиг и засунуть его в main?
пока не соображу в чём подъёбка будет в таком подходе.
 
ОК, объяснил. Но ты ж вроде для себя вариант ищешь? И понимаешь что к чему. Почему нет тогда?

Потому, что несовместим с эклипсом.
Не всегда приходится работать на чём хочешь. иногда заказчик выставляет требования, и ему надо фриварный эклипс.
Не часто же удаётся продавать прошивку поштучно, и далеко не всем удаётся. А заказчик может хотеть (и многие хотят) исходник в эклипсе, потому, что выше уже была тема - какое-то ебанутое веяние работать под десктопным линуксом и ЭмБитза под линух - недЪ.
Соответственно мозгоебля с импортом и его косяками ни кому может оказаться не нужна.

Вот почему в эмбитз стартам системинит видит, а тот же проект в эклипсе - нет?

P.S. В эклипсе я ж могу под виндой писать и не бибать себе мозги, а кастомер пусть хоть убьётся об линукс - проект одинаков.
 
Ага, нашлась потеряшка - просто файл не скопировал. system_stm32f10x.с
 
Не всегда приходится работать на чём хочешь. иногда заказчик выставляет требования, и ему надо фриварный эклипс.

В таком случае просто передавать заказчику исходники. А там пусть сам портирует их куда угодно, хоть в блокноте пусть хуярит и в командной строке компилирует.
ХЗ, ни разу не встречал такого ебанатизма. Работаю в чем удобно.
 
Тагс. отставим лирику. У меня глаз замылился, не могу понять
jff3gh.png

Причём, файлы подключены и по F3 прекрасно показывает эту функцию.
Шо за?... андефинид?
 
В таком случае просто передавать заказчику исходники. А там пусть сам портирует их куда угодно, хоть в блокноте пусть хуярит и в командной строке компилирует.
ХЗ, ни разу не встречал такого ебанатизма. Работаю в чем удобно.

Що значить просто передавати? Хоче в екліпсі й ппц, має право бо він платить - тож або так, або ніяк. А там вже сам для себе вирішуй чи хочеш таке робити.
 
Причём, файлы подключены и по F3 прекрасно показывает эту функцию.
Шо за?... андефинид?

В тебе й system_stm32f10x.c на місці був :)
Перевіряй.

Перевір в конфіг файлі, щоб потрібний камень був, там же всі хідери периферії інклюдяться.
 
Що значить просто передавати? Хоче в екліпсі й ппц, має право бо він платить - тож або так, або ніяк. А там вже сам для себе вирішуй чи хочеш таке робити.

Тут ППКС. Просто заказчики разные. И более продуктивный путь - всё же, иметь более широкую инструментальную базу, чем сужать себе рынок.
 
В тебе й system_stm32f10x.c на місці був :)
Перевіряй.

.c небыло (один ашник)
SPL вижу ак все свои 21 палец - она есть в своей папке.
P.S. Эклипс вообще умеет при задании пути - искать во вложенных папках? Какой-то он странный. Я пути указывал насильно - теперь их там нет, где указывал... чудеса? Но F3 находит дефинишен.
 
Прикольно...
Эклипсу не понравилось, что в
stm32f10x_rcc.с не подключен "stm32f10x_conf.h"

Функции объявлены именно в нём, а не в stm32f10x_rcc.h

Тут, похоже, то-ли солянка из разных либ, то-ли автор чё-та накрутил руками, но эклипс был прав - так работать не будет (хотя и ошибку показал поприпезденному, не в том месте).

Дано:
stm32f10x_rcc.c
void RCC_USBCLKConfig(uint32_t RCC_USBCLKSource)
{
/* Check the parameters */
assert_param(IS_RCC_USBCLK_SOURCE(RCC_USBCLKSource));

*(__IO uint32_t *) CFGR_USBPRE_BB = RCC_USBCLKSource;
}

xxx_rcc.h
void RCC_USBCLKConfig(uint32_t RCC_USBCLKSource);

В этой функции есть
assert_param
Который в stm32f10x_conf.h

И, вот, если в stm32f10x_rcc.с (дефолт там только #include "stm32f10x_rcc.h") подключить stm32f10x_conf.h - всё компилируется.
НО
Чтобы это узнать - мне пришлось эти файлы спихивать в одну папку (чтобы избежать ошибок линковки, аж пока не изменилась ошибка
Вот когда она стала undefined reference to `assert_param' - тогда всё стало предельно ясно.

А как ЭмБитс его компилил и не ругался? Он, что, как ардуина - валит всё в единую простыню и потом её компилирует? Ну хер же так отладишь, когда ундефинед на функции, которая подключена и находится по F3...
 
P.S. теперь всё компилится, но... только если затащить их из SPL в папку с main... :D
Если разложить на место - опять не видят.
 
короче, это точно проблема видимости файлов, только я пока не понял откуда она берётся.
В зависимости от того как их разложить - они по разному что-то не видят. Видят только из папки projdir/src и /inc. По ходу, SPL не подключился. Или не весь...
//--- end ---
подключился.
 
Собственно, по анпакингу приблуд для Эклипс надо закончить.
Без особых проблем завелась только одна (их всего я нашел две, претендующих на гордое звание вёркбенча, и одну уже выше обосрал), которая продолжение sw4stm32 (собственно, инсталятор так и называется, но она уже обросла другим именем и другими особенностями).

Теперь это сайт
Тільки зареєстровані користувачі бачать весь контент у цьому розділі

hh1daj.png

и откуда-то взялось название AC6, собсно оно в визарде проектов и будет от остальных именно этим отличаться именем.

Сам комплект gcc/c++/g++/xxx/gdb/openocd и всевсевсе - может, как устанавливаться как плагин под эклипс (Help-> Instal New Software), если репозиторий показать, так (под виндой, под линём не проверял) и устанавливаться с инсталлятора, таща вместе с собой на машину и эклипс. Причём оно не настолько умное и не спрашивает есть ли уже эклипс, то есть - если есть, то установит ещё один эклипс. Не знаю, будет ли ругаться если показать на папку с уже установленным.

Так вот, затаскивал вчера проект из EmBitz я именно в этот вёркбенч.
Из косяков:
Подибильному настраивается текущий Run/Debug. Если с инсталлятора - она херит кнопки эклипса и оставляет только маленькие кнопочки, и выбор из выпадающего списка приведёт не только к смене активного - но и к запуску Debug или Run.
Наверное, как-то можно вернуть кнопки, но лень.
Второй косяк - путаные настройки проекта. Во первых - от фонаря выставляется тип сброса для отладчика, и выбора в гуёвой части настроек - нет. Во вторых - он стоит на автогенерации по дефолту (что хорошо) и надо крутнуть ниже, чтобы найти где его снять в юзер дефайнед. Ну и при попытке правки конфига руками - доблестно его исправляет, чем приводит в замешательство, так как в настройках чекбокс автобилда скрыт за нижним краем гуёвой менюшки и надо ещё догадаться крутнуть и глянуть чё там ниже.
Этот минус превращаем в плюс - он сам генерит настройки для отладки, мне не надо о них думать, или хранить где-то рыбу-файл с ними, просто даём ему это сделать, а потом переключаем на юзер дефайнд без смены имени.
Идём в файл и настраиваем там себе reset какой хотим (актуально для SW, но иногда люди ловят крабиков и при используемой ножке сброса).

!Если у нас, всё таки, есть рыба-файл конфига, может даже вместе с пустым/полупустым стартовым проектом (да, я так тоже делаю, делаю основу, а потом её тупо копирую и переименовываю, чтобы каждый раз с нуля не собирать стартап) - если бездумно указать имя конфига - он будет убит автобилдом.
Так что, с штамповаными внимательнее, сначала снять автобилд.

Второй косяк/не косяк... скорее, свойство эклипса:
Пути надо указывать ко всем сорцам. Есл структура проекта разветвлена - вот в каждый брэнч и указывать.
Иначе будет как у меня вчера - даже если вручную добавить в проджект папочку и файлы туда накидать, то он увидеть увидит, находить по F3 - будет, показывать - будет, но линковать не будет. Будет выдавать ошибки ундефинед референс на функции, с которыми на взгляд - всё в порядке. Сам он при добавлении папочки - автоматом понимать её не будет. Похуй шо она в проекте - надо ещё и в пути добавить.

В остальном особых нареканий нет, под линуксом точно такой же, только ставится из под эклипса (я не пробовал win64 инсталлятор запускать :) ), в связи с чем его openOCD и gdb линуксу до сраки и предстоит ебля с тем, как их превентивно поставить и потом всё это подружить. но то линукс, к самому вёркбенчу это не относится.

Дебажит, шьёт/стирает. Поддерживает проекты как с SPL, так и с HAL при создании, cmsys не поддерживает, но может создать пустой проект вообще без фирмвари, с одним ассемблерным стартом, как я, собственно, и подключал к нему проект из EmBitz.

В ощем - Eclipse это не смерть. Но чем-то напоминает IAR, так как плагина на подсказки и автодополнения по дефолту нет. Надо посмотреть, может доставить получится.

P.S. Проблема чёткого понимания областей видимости - проблема не эклипса, а скорее, как раз, сторонних приложений.У еклипса всё правильно - не заинклудил - не увидел.
Тот же EmBitz оказался более похуистичным в этом вопросе и приект при импорте из него пришлось раками наделять недостающими #include, но меньше, чем ожидалось.
 
Назад
Зверху Знизу