LINUX.ORG.RU
ФорумTalks

ChipKit UNO и MAX32

 , , вести из горящего танка


1

2

Сейчас сижу и тихо мирно разбираюсь с новыми макетиками, чтобы по осени на них ставить лабы по мипсам. Казалось бы, обычный MIPS внутри, what could possibly go wrong?
Но это же микрочип!
Итак, по дефолту с чипкитом предлагают изать mpide. То есть кривейшая ардуйна на адовых костылях. Ну да ладно, ясное дело, что ардуйна не пройдет, так как рассказывать надо будет ассемблер в том числе, но тем не менее поставил потыкал. Ниже излагаю весь треш, ад и содомию, которые я встретил.
* Для работы mpide требудется тулчейн для avr. Оказывается где-то в недрах захардкожено использование avr-size для определения размера скетча или еще чего-то.
* Для прошивки борд используется.... па ра па па пам... avrdude. В бут секцию зашит stk500v2-совместимый загрузчик, но дудке надо скармливать отдельный конфиг где описаны все эти параметры. Маркетологи микрочипа плачут кровавыми слезами.
* Сброс по DTR как на arduino-лайк бордах при указании -c arduno avrdude не работает, надо шаманить с stty и отправлять hup, на что сделан отдельный скрипт. Который судя по отзывам косячит в маке, и не работает в винде. Кроссплатформенно!
* Тулчейн. Отдельная история. Тут микрочип отжег просто напальмом. Платный (sic!) xc32 компилятор - ничто иное, как gcc в который добавили... менеджер лицензий! -Os в бесплатной версии нет.
При этом насколько понял исходники xc32 в соответствии с GPL есть, и если пересобрать его ручками требуху c лицензией можно выпилить и по ходу при этом даже не нарушить лицензии. Сырцов переферийных либ пока правда не видел - линкуются блобиком через ключик -mperipheral-libs. Банальненько.
При этом для самопальной сборки надо пройти квест по копипастингу кусков из собранного xc32, gdb собрать при этом так никому и не удалось.
* Примеров проекта с обычным мейкфайлом нет, только какой-то НЁХ на кучу строк собирающий библиотеки дурки из командной строки, который к тому же еще и не работае толком.
* Да и вообще вменяемых материалов по сборке даже меньше, чем на работе, когда наш чип только только с завода приехал.

★★★★★

Последнее исправление: AiFiLTr0 (всего исправлений: 2)

По твоим рассказам такое впечатление создается о 95% существующего на рынке эмбеддеда. Я, конечно, подозревал, что там всё плохо на основе своего опыта с говнороутерами... но все же, но все же.

pekmop1024 ★★★★★
()
Последнее исправление: pekmop1024 (всего исправлений: 1)
Ответ на: комментарий от pekmop1024

Ну справедливости ради скажу, что STM32 в этом плане приятнее. Код у них странноват местами, но таких отжигов с коммерческим gcc я у них не видел. Да и сам знаешь, «эпические костыли» как-то лучше запоминаются, чем красивые решения. ад ними хоть поугарать можно

AiFiLTr0 ★★★★★
() автор топика
Последнее исправление: AiFiLTr0 (всего исправлений: 2)
Ответ на: комментарий от AiFiLTr0

Интересно другое - почему так получается.
Ведь то же самое творится и вокруг больших проприетарных продуктов софтварных. Очень редко когда можно увидеть вылизанную вещь, готовую к работе и идеально задокументированную.

Экономят?

pekmop1024 ★★★★★
()
Ответ на: комментарий от pekmop1024

Хотят побыстрее выкинуть нечто на рынок. Похрен на качество. В итоге критические баги фиксят к следующей версии железа, если не чипа.
И чем больше развито «потребление», тем большее говно толкается на рынок. Увы, но этот гребаный мир одна большая победа маркетинга над здравым смыслом.

AiFiLTr0 ★★★★★
() автор топика
Ответ на: комментарий от AiFiLTr0

Меня, наверное, за последнее время очень сильно избаловал линукс.
Каждый раз, когда приходится разворачивать что-то типа 1С или той же зимбры, я испытываю культурный шок.
А на днях я тут заглянул в код одного сайта на пхп, так вообще за пивом пришлось идти.

pekmop1024 ★★★★★
()
Последнее исправление: pekmop1024 (всего исправлений: 1)
Ответ на: комментарий от pekmop1024

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

К сожалению ввиду прогрессирующей популяции идиотов манагеров это более простой путь чем допиливание продукта

upcFrost ★★★★★
()
Ответ на: комментарий от pekmop1024

Меня другое беспокоит. Сейчас куча эмбеддеда на линуксах пашет на древнейших ядрах. Те же IP камеры популярные, на практически всех чипах представляют из себя первостатейное решето, на некоторых китайцах вообще рут логин по телнету без пароля.
Потенциально это ведет к тому, что более или менее защищенную сеть становится просто невозможным.
И перспективы как-то не радуют.

AiFiLTr0 ★★★★★
() автор топика

Что-то я не понял - чтобы собрать программу для продукта микрочипа нужно тянуть пакеты от как бы конкурентного продукта, т.е. авр?

rikardoac
()
Ответ на: комментарий от AiFiLTr0

Потенциально это ведет к тому, что более или менее защищенную сеть становится просто невозможным.

И китайские видеорегистраторы *тут было много мата*

pekmop1024 ★★★★★
()
Ответ на: комментарий от AiFiLTr0

Dahua, TVT, и т.д. Кстати, про древнейшие ядра - говнороутеры даже 2012-2013 годов вполне могут нести внутри себя что-то типа 2.6.13 и 2.6.8 в стоковых прошивках. Чаще всего так и бывает.

pekmop1024 ★★★★★
()
Последнее исправление: pekmop1024 (всего исправлений: 2)
Ответ на: комментарий от annulen

Тем на mplab, это дурка, которая бай дизайн нихрена не переносимая, и вместо того, чтобы пересматривать концепцию ее костылями переносят, ибо «модно, молодежно.»

AiFiLTr0 ★★★★★
() автор топика

Итак, по дефолту с чипкитом предлагают изать mplab. То есть кривейшая ардуйна на адовых костылях

mplab - это их IDE на основе нетбинза. Ардуина на костылях - это mpide.

* Для прошивки борд используется.... па ра па па пам... avrdude. В бут секцию зашит stk500v2-совместимый загрузчик, но дудке надо скармливать отдельный конфиг где описаны все эти параметры. Маркетологи микрочипа плачут кровавыми слезами.

Это вроде только для mpide'а, mplab шьет через аппаратные программаторы типа PicKIT, с которыми avrdude не дружит.

Платный (sic!) xc32 компилятор - ничто иное, как gcc в который добавили... менеджер лицензий! -Os в бесплатной версии нет.

Обычный gcc цепляет тоже. Но я правда опять про mplab. C mpide идет своя кривая сборка gcc, но все бесплатно.

Ну да ладно, ясное дело, что ардуйна не пройдет, так как рассказывать надо будет ассемблер в том числе, но тем не менее поставил потыкал.
* Примеров проекта с обычным мейкфайлом нет, только какой-то НЁХ на кучу строк собирающий библиотеки дурки из командной строки, который к тому же еще и не работае толком.

Пройдет компилятор gcc и все сопутствующие утилиты из состава пакета с mpide (ардуиной) с мейкфайлом, правда с левым: (см пост Сергея Вакуленко, подробности происхождения файла судя по всему здесь chipkit.org/forum > chipKIT Compatible Arduino-based Makefile > github.com/peplin/arduino.mk). Автоматом проглатывает сишные (.c) и ассемблерные (.S) файлы в текущем каталоге по расширению.

Но вообще во многом да.

bender ★★★★★
()
Ответ на: комментарий от bender

mplab - это их IDE на основе нетбинза. Ардуина на костылях - это mpide.

Да, сорри перепутал уже к двум ночи секаса. Сейчас нашел вроде опенсурсный полностью компайлер с ньюлибом, который даже пилят.

Пройдет компилятор gcc и все сопутствующие утилиты из состава пакета с mpide (ардуиной) с мейкфайлом, правда с левым: (см пост Сергея Вакуленко, подробности происхождения файла судя по всему здесь chipkit.org/forum > chipKIT Compatible Arduino-based Makefile > github.com/peplin/arduino.mk). Автоматом проглатывает сишные (.c) и ассемблерные (.S) файлы в текущем каталоге по расширению.

Да, этот мейкфайл я видел, стремная НЁХ. Нашел после вот это: https://github.com/rkujawa/chipKIT-minimal-application - это то, что надо было, сейчас прибил уже к своей билдсистеме, последние шероховатости убираю. Пашет и с xc32 и с опенсурсным. Правда пока не понял, есть ли в опенсурсном тулчейне периф. библиотеки.

AiFiLTr0 ★★★★★
() автор топика
Последнее исправление: AiFiLTr0 (всего исправлений: 1)
Ответ на: комментарий от rikardoac

Для режима совместимости с ардуиной к чипкитам прилагается модифицированная mpide от ардуины же https://github.com/chipKIT32/chipKIT32-MAX/downloads; avrdude с кастомным конфигом для прошивки в комплекте: - шьет через USB без программатора, но сука глючит.

Но это для симуляции ардуины. Для взрослых есть mplab (их IDE на основе нетбинза), который работает через программаторы со всем микрочиповским.

bender ★★★★★
()
Ответ на: комментарий от bender

https://github.com/nekromant/antares/tree/pic32 , если интересно. Я как истиный хардкорщик предпочитаю emacs && мою билдсистему. Сейчас вкрячил туда поддержку это хлама. Reset на чипките пашет только через: https://github.com/nekromant/antares/blob/pic32/scripts/serial_reset.sh И требует, как выяснилось отдельного LD файлика, иначе валится на попытке записать конфиг биты. Потом сделаю скрипт, чтобы резал эту часть из хекса, чтобы ванилкой пользоваться можно было.

AiFiLTr0 ★★★★★
() автор топика
Последнее исправление: AiFiLTr0 (всего исправлений: 1)
Ответ на: комментарий от annulen

Платы ChipKIT с процессором Microchip pic32 имеют архитектуру MIPS32 и при этом под них допилили специальную версию ардуиновской среды mpide так, что все работает как ардуина (которая изначально является AVR). Т.е. с чипкитами можно поиметь 32хбитную ардуину на 80МГц.

bender ★★★★★
()
Ответ на: комментарий от bender

Кстати, у них там есть дефайны какие, чтобы поcле передачи -mprocessor в компайл-тайме получить размер флеша/рамы?
Аналог константы FLASH_SIZE на avr, хотя бы.

AiFiLTr0 ★★★★★
() автор топика

микрочип

Как будто кто-то ждал от этих китайцев чего-то хорошего.

CYB3R ★★★★★
()
Ответ на: комментарий от AiFiLTr0

Не знаю, мне такие детали пока было незачем расковыривать - хватило приведенного выше мейкфайла - скомпилировал рабочую прошивку из Си и асма и ладно.

Могу только еще сказать, что с их сборкой gcc из mpide не все так просто - сборки gcc например отсюда прошивку собирают и avrdude ее прошивает, но лампочки нифига не мигают, хотя на других пиках они скорее всего работают (по крайней мере для автора проекта - сам не проверял).

bender ★★★★★
()

пользуясь случаем ворвусь в тред как человек с легкой формой фанбойства по «Иснтрументам из Техаса»))) Тут еще такие есть?

nerfur ★★★
()
Ответ на: комментарий от XVilka

ну stellaris (arm) и c2000 у меня тоже есть, но пока так и лежат в коробочках ( Кстати, заодно вопрос, а для них есть gcc-надстройки как для мсп? Или другие какие-нибудь легкие и кроссплатформенные инструменты?

nerfur ★★★
()

Платный (sic!) xc32 компилятор - ничто иное, как gcc в который добавили... менеджер лицензий! -Os в бесплатной версии нет.

Они там совсем офигели?

Quasar ★★★★★
()
Ответ на: комментарий от AiFiLTr0

AiFiLTr0> Сейчас куча эмбеддеда на линуксах пашет на древнейших ядрах. Те же IP камеры популярные, на практически всех чипах представляют из себя первостатейное решето, на некоторых китайцах вообще рут логин по телнету без пароля.

Потому надо делать решения практически с нуля, если хочется нормальное и безглючное.

Quasar ★★★★★
()
Ответ на: комментарий от rikardoac

rikardoac> Что-то я не понял - чтобы собрать программу для продукта микрочипа нужно тянуть пакеты от как бы конкурентного продукта, т.е. авр?

Чтобы собрать программу на чип от микрочипа, надо поставить венду.

Quasar ★★★★★
()
Ответ на: комментарий от Quasar

Мплаб год как есть линуксовый, что было раньше не знаю.но в этом коментете речь об мпайде

bender ★★★★★
()
Ответ на: комментарий от Quasar

Они там по жизни очешуевшие. Гцц с менеджером лицензий это успех!

AiFiLTr0 ★★★★★
() автор топика
Ответ на: комментарий от bender

через аппаратные программаторы типа PicKIT, с которыми avrdude не дружит.

Уже давно дружит и шьёт AVR и пр. PicKIT хорошая штука. Вообще у микрочипа чем меньше процессор тем лучше сделан. PIC12/16/18 - отличные девайсы. PIC24 - уже хуже, какой-нибудь MSP430 предпочтительнее если надо 16 бит, PIC32 - ужасное унылое говно, остаётся только гадать как это смогли сделать из MIPS. В последнем случае - нет пути, ну и линух на них не заведшь в отличии от того же ARM от Atmel или MIPS от какого-нибудь Broadcom.

ЗЫ: Вообще embedded в последнее время превращается в чёрт знает что. Дикий оверхед по периферии, миллион ног, напихано всякого ненужного говна выше крыши, задолбаешься разбираться как выключить всё ненужное, а такой элементарщины типа простенькой однокристалки в 8-ми или хотя бы 16-тиногом корпусе со встроенным Ethernet интерфейсом (чтоб только транс и RJ45 повесить) - хрен кто выпускает. Хотя казалось бы, в то время как ether в каждом пыльном углу есть, ... Хрен там, все эти альтернативно ориентированные напрочь игнорируют самый распространённый и востребованный в мире интерфейс.

Stanson ★★★★★
()
Ответ на: комментарий от Dark_SavanT

Если есть совместимый jtag, то вполне. Зависит от кривизны рук и красноты глаз.

AiFiLTr0 ★★★★★
() автор топика
Ответ на: комментарий от Dark_SavanT

насколько OpenOCD способен работать с MIPS камнями?

Из моего скромного общения с openocd в приложении к марвеловскому arm, все упирается только в правильный конфиг с инициализацией периферии (тайминги там всякие и т.д.). Идеальный вариант если есть уже готовый конфиг на нужный или похожий проц. А там слегка нулевочкой пройтись и все.

Ну и знание нужных граблей. Например, марвеловский arm с jtag-ом работает только если установить загрузку с SPI. А в нашей поделке такой режим не используется. Как я до этого допер, не спрашивайте.

yax123 ★★★★★
()
Ответ на: комментарий от nerfur

Был негативный опыт с TI как раз со Stellaris. В свое время выбрали LM3S9B90, АРМ, 80МГц, есть простейший механизм защиты памяти, встроенный MAC+PHY т.е. можно запустить обрезаный линух и использовать для задач автоматизации и т.п..

Задизайнили на нем процессорный модуль, 16х22.8мм, ОЗУ на борту 32МБ, ЕЕПРОМка на 2МБ, генератор на 32К для слипмода, выходные контакты для сети, УСБ и пр. интерфейсов - фото полусобранной платы. И тут внезапно узнаем что семейство стелларис М3 не рекомендуется к разработке, постепенно снимают с производства, готовят на замену М4. Только М4 не совместим по контактам, не имеет встроенного PHY, вся работа в корзину. По этому поводу на форуме TI был эпичнейший срач.

pitman
()
Ответ на: комментарий от pitman

Любопытно, ну мне это незнакомо, поскольку это недохобби и мой лаунчпад уже с м4ф

nerfur ★★★
()
Ответ на: комментарий от AiFiLTr0

MIPS и все-все-все

По поводу MIPS некоторые рассуждения.

PIC32MX это MIPS 4К ядро, для запуска Линух и т.п. надо ядро 14К как минимум. В свое время руководство МИПС было удовлетворено количеством продаж в сегменте роутеров и т.п. и не смотрело на рынок контроллеров и смартов. Поезд ушел, АРМ поднялся и теперь они озабочены догонянием и перегонянием оного. В некоторых даташитах Микрочипа уже есть упоминание семейства MZ, в ближайший год-два должны появится контроллеры на MIPS ядрах 14К и старше.

В плане приобретения ядра и клепание своего проца MIPS выглядит более предпочтительнее бо у нее можно приобрести архитектурную лицензию что у АРМ довольно сложно сделать.

pitman
()
Ответ на: комментарий от splinter

Любая контора может по твердому прайсу купить архитектурную лицензию на нужное ядро MIPS.

Архитектурная, значит они получают Verilog описание ядра, могут его менять как угодно, главное чтобы результат проходил все тесты на соответствие команда-результат. Свой мипсовый процессор сделать и сертифицировать гораздо легче.

АРМ насколько помню продает подобные лицензии только очень большим конторам за очень большие деньги. У них можно купить только готовое ядро как черный ящег и вставить его в свой SoC.

pitman
()
Ответ на: комментарий от pitman

хм, ну только если к этому подходить вот так, то да. Вы собираетесь делать свой стопитсотый новый мипс?

splinter ★★★★★
()
Ответ на: комментарий от splinter

Свой SoC под задачу в таких условиях делать гораздо приятнее. Хоть военным хоть гражданским.

pitman
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.