В мире Биг Даты и AI/ML, простым embedded инженерам бывает очень одиноко. Есть тут кто ещё из этой области?
Хочу начать пользоваться бенефитом на обучение, интересно какие есть хорошие конференции/тренинги которые если уж не мастхев, то очень желательно посетить хоть раз?
Интересует совсем low level (C, assembly), как на уровне whole system, так и точечные вещи (мое основное направление преимущественно USB, PCIe, HID... но если жизнь заставляет, могу в чем угодно разобраться).
купите Arduino за 10-20 баксов и балуйтесь. язык типа С. есть фрейворк для разработки, но очень дохлый. подтащил microsoft visual studio, но так звезды и не сложились - только редактировал, но не загружал. в общем не люблю это дело.
а какие у вас цели-то?
DropAndDrag wrote: 14 Mar 2021 05:40
купите Arduino за 10-20 баксов и балуйтесь. язык типа С. есть фрейворк для разработки, но очень дохлый. подтащил microsoft visual studio, но так звезды и не сложились - только редактировал, но не загружал. в общем не люблю это дело.
а какие у вас цели-то?
Ковырять котнтролер ночью под одеялом это святое дело (у меня Cortex M7), хочется ещё и больше, да и и с людьми новыми познакомиться, а то у меня даже в Гугле все ответы вылезают от коллег... Даже поговорить не с кем, ыыы
Цель - мне очень нравиться то, чем я занимаюсь, я хочу изучать глубже (сейчас вот полезла в Platform initialization, boot loaders) ну И не хочу надолго засиживаться в Синьорах
DropAndDrag wrote: 14 Mar 2021 05:40
купите Arduino за 10-20 баксов и балуйтесь. язык типа С. есть фрейворк для разработки, но очень дохлый. подтащил microsoft visual studio, но так звезды и не сложились - только редактировал, но не загружал. в общем не люблю это дело.
а какие у вас цели-то?
Ковырять котнтролер ночью под одеялом это святое дело (у меня Cortex M7), хочется ещё и больше, да и и с людьми новыми познакомиться, а то у меня даже в Гугле все ответы вылезают от коллег... Даже поговорить не с кем, ыыы
Цель - мне очень нравиться то, чем я занимаюсь, я хочу изучать глубже (сейчас вот полезла в Platform initialization, boot loaders) ну И не хочу надолго засиживаться в Синьорах
По работе делаю единичные системы, так что дешевле использовать обычный комп, с хорошим framework, у которого унифицированная и хорошая библиотека на кучу разных приборов, и большой выбор этих приборов. разработка стоит в 10-ки раз дороже, чем оборудование. Так же редко бывают ограничения по питанию, по весу или по объему, так что пришлось всего сделать несколько устройств на Arduino и Raspberry Pi (у него Cortex M7). кстати и поддерживать приборы сложнее.
недавно у прибора было много ограничений, но все равно ужали, что могли, но использовали UDOO X86 computer board, размером в 2 Arduino Leonardo - половину занимал комп, а половину Arduino Leonardo. а сейчас переделываю устройство с Arduino Due на этот же UDOO X86 - простая графика медленная даже с небольшим дисплеем, да и замучаешься программировать.
так что с меня проку мало )))
Last edited by DropAndDrag on 15 Mar 2021 01:43, edited 1 time in total.
DropAndDrag wrote: 14 Mar 2021 22:41
так что с меня проку мало )))
Ну не прибедняйтесь, клёво же! А какого конечная задача контролера?
Я пока свой мучаю исключительного с целью понять Arm архитектуру и ассемблера. По сути латаю дыры в базовых вещах.
А дальше у меня как-то и идей даже нет...
Тут вот наткнулась что MicroPython имеет поддержку Thumb2, можно для расширения кругозора попробовать сделать поддержку для полноценных ARM инструкций.
Я восхищаюсь полетом фантазии наших Стафф и принципалов, они такую неведомую херню придумывают, что дух захватывает, тоже так хочу ))
Ну не знаю, на мой взгляд в embedded области есть столько всего, что жизни не хватит все изучить.
Мой любимый пример тут таков: где-то в конце 70х, начале 80х один человек примерно за год мог нарисовать схему компьютера, развести и распаять плату, написать минимальный загрузчик/монитор, написать для этого свою игрушку и наслаждаться этим. В современных реалиях обычный загрузчик 2-3 уровня может потребовать несколько человеко-лет, если писать с нуля.
А куда смотреть - если специализация PCI-E, USB, то можно поизучать современные шины дальше, взяв как пример AXI/AHB/что-то, что больше всего нравится. Тут можно плавно переползти на изучение модели памяти, выяснить зачем нужна и как работает виртуальная память, параллельно уяснив для себя, что если бы не хипстеры, то SPECTRE and MELTDOWN были бы до сих пор невозможны, посмотреть как устроена виртуализация в целом и виртуализация оборудования.
С точки зрения системы, можно поизучать процесс загрузки: откуда берутся уровни загрузчиков, что, где и в какой момент инициализируется, кто кого и зачем загружает итп
Если хочется в архитектуру процессоров, то можно почитать спеку/какой-нть курс на/по RISC V, попутно пытаясь понять почему таким странным на первый взгляд образом формируются опкоды, от чего зависит производительность процессора и как ее ускорить, попутно выяснив назначение конвеера, его плюсы и минусы и требования/ограничения на программирование.
MacArrow wrote: 15 Mar 2021 00:27
Ну не знаю, на мой взгляд в embedded области есть столько всего, что жизни не хватит все изучить.
Мой любимый пример тут таков: где-то в конце 70х, начале 80х один человек примерно за год мог нарисовать схему компьютера, развести и распаять плату, написать минимальный загрузчик/монитор, написать для этого свою игрушку и наслаждаться этим. В современных реалиях обычный загрузчик 2-3 уровня может потребовать несколько человеко-лет, если писать с нуля.
А куда смотреть - если специализация PCI-E, USB, то можно поизучать современные шины дальше, взяв как пример AXI/AHB/что-то, что больше всего нравится. Тут можно плавно переползти на изучение модели памяти, выяснить зачем нужна и как работает виртуальная память, параллельно уяснив для себя, что если бы не хипстеры, то SPECTRE and MELTDOWN были бы до сих пор невозможны, посмотреть как устроена виртуализация в целом и виртуализация оборудования.
С точки зрения системы, можно поизучать процесс загрузки: откуда берутся уровни загрузчиков, что, где и в какой момент инициализируется, кто кого и зачем загружает итп
Если хочется в архитектуру процессоров, то можно почитать спеку/какой-нть курс на/по RISC V, попутно пытаясь понять почему таким странным на первый взгляд образом формируются опкоды, от чего зависит производительность процессора и как ее ускорить, попутно выяснив назначение конвеера, его плюсы и минусы и требования/ограничения на программирование.
Вот, вот! Я интересуюсь какие в этой области полезные тренинги/конференции есть-то (работа оплачивает).
(А AXI/AHB мои лучшие друзья при bringup CIO. И устройство памяти я как раз сейчас разбираю в рамках ухода от 1-1 memory map для повышения производительности и сокращения времени загрузки)
когда-то мне тоже было любопытно как это так народ код для одного процессора переделывает в другой. но реально нужно работать в специфической области, чтобы это было разумно делать.
по мне разумность всех этим штучек начинается если будет продано тысячи устройств с ним, ну и разработчику уже собаку съели.
кстати, коллега сделал небольшую штучку на arduino. так вот потратил кучу времени на то, что устройство на последовательном порте не работало. выяснил, что последовательный порт запараллелен с последовательным портом, который используется для связи с компьютером
если не сложно можете на какую-нибудь книжку ткнуть, чтобы можно было pdf закачать и посмотреть.
DropAndDrag wrote: 15 Mar 2021 01:49
кстати, коллега сделал небольшую штучку на arduino. так вот потратил кучу времени на то, что устройство на последовательном порте не работало. выяснил, что последовательный порт запараллелен с последовательным портом, который используется для связи с компьютером
если не сложно можете на какую-нибудь книжку ткнуть, чтобы можно было pdf закачать и посмотреть.
С такой формулировкой могу предложить начать со спеков на конкретный микроконтроллер. Какой именно ардуино? Один из банальных вариантов, использовать jtag (потратиться на специальный кабель) для бутлоадера и остальных коммуникациий с компом, и соответственно использовать порт для чего хотите.
Ну и все что касается основных шин - UART, SPI, SMB, I2C
imo саморазвитие должно быть project-driven. То есть например есть работа или хобби, задача, и её надо и хочется решить. Иначе у меня не оно работает.Просто изучать у меня не получается совсем. Вот сейчас прямо делаю-повторяю некий проект на ардуино для своего радиолюбительства и много "нового и верного" узнаю по дороге. Так и вам советую делать то, что интересно. Например, есть команды разрабатывающие cubesats, их несколько. https://en.wikipedia.org/wiki/ArduSat
И т п.
Amirko wrote: 15 Mar 2021 19:43
imo саморазвитие должно быть project-driven. То есть например есть работа или хобби, задача, и её надо и хочется решить. Иначе у меня не оно работает.Просто изучать у меня не получается совсем. Вот сейчас прямо делаю-повторяю некий проект на ардуино для своего радиолюбительства и много "нового и верного" узнаю по дороге. Так и вам советую делать то, что интересно. Например, есть команды разрабатывающие cubesats, их несколько. https://en.wikipedia.org/wiki/ArduSat
И т п.
Согласна, project based заходит лучше всего. Меня поэтому и понесло написать MMU на ассемблере, потому что сразу закроются дыры в: 1) архитектуре ARM; 2) азы ассемблера; 3) понимания устройства и работы памяти
Я перешел из embedded в whole stack, потому что за ассемблер никто не хотел 400K платить.
А на ассемблере пишу в качестве хобби для железяк, которые сам паяю.
Вот такое вот профессиональное развитие...
mikeG wrote: 16 Mar 2021 03:29
Я перешел из embedded в whole stack, потому что за ассемблер никто не хотел 400K платить.
А на ассемблере пишу в качестве хобби для железяк, которые сам паяю.
Вот такое вот профессиональное развитие...
Ну мы пишем все же на С, а ассемблер полезен при отладке, когда упало где-то совсем рано. Ну и у нас вполне платят 400К+
Но в любом случае, я здесь не для денег, для оплаты счетов у меня муж есть ))
Amirko wrote: 15 Mar 2021 19:43
imo саморазвитие должно быть project-driven. То есть например есть работа или хобби, задача, и её надо и хочется решить. Иначе у меня не оно работает.Просто изучать у меня не получается совсем. Вот сейчас прямо делаю-повторяю некий проект на ардуино для своего радиолюбительства и много "нового и верного" узнаю по дороге. Так и вам советую делать то, что интересно. Например, есть команды разрабатывающие cubesats, их несколько. https://en.wikipedia.org/wiki/ArduSat
И т п.
может сам 500 кубоящик и интересен для пользователей, но с точки зрения разработки на Arduino ничего необычного не проглядывается. или я что-то упустил?
Amirko wrote: 15 Mar 2021 19:43
imo саморазвитие должно быть project-driven. То есть например есть работа или хобби, задача, и её надо и хочется решить. Иначе у меня не оно работает.Просто изучать у меня не получается совсем. Вот сейчас прямо делаю-повторяю некий проект на ардуино для своего радиолюбительства и много "нового и верного" узнаю по дороге. Так и вам советую делать то, что интересно. Например, есть команды разрабатывающие cubesats, их несколько. https://en.wikipedia.org/wiki/ArduSat
И т п.
Согласна, project based заходит лучше всего. Меня поэтому и понесло написать MMU на ассемблере, потому что сразу закроются дыры в: 1) архитектуре ARM; 2) азы ассемблера; 3) понимания устройства и работы памяти
наверное опять что-то не понимаю. а разве можно в готовое Arduino запихнуть MMU?
я не смотрел от слова совсем за счет чего программист получает блок инициализации, главный цикл и прерывания. наверное что-то типа OS туда запихнуто. то есть вы собираетесь в нее добавить MMU?
а потом, вроде бы в 10-20$ Arduino памяти 16-32 кб. на такой памяти имеет смысл сделать MMU?
...
пипец, действительно Arduino C поддерживает new и malloc. вообще-то смысла нет, так как правильный подход - это как правило игры в мизер в преферансе - отжор своих залог успеха! так и при работе с оборудованием, а тем более real-time все что нужно забирается при инициализации!
DropAndDrag wrote: 15 Mar 2021 01:49
кстати, коллега сделал небольшую штучку на arduino. так вот потратил кучу времени на то, что устройство на последовательном порте не работало. выяснил, что последовательный порт запараллелен с последовательным портом, который используется для связи с компьютером
если не сложно можете на какую-нибудь книжку ткнуть, чтобы можно было pdf закачать и посмотреть.
С такой формулировкой могу предложить начать со спеков на конкретный микроконтроллер. Какой именно ардуино? Один из банальных вариантов, использовать jtag (потратиться на специальный кабель) для бутлоадера и остальных коммуникациий с компом, и соответственно использовать порт для чего хотите.
Ну и все что касается основных шин - UART, SPI, SMB, I2C
глянул на jtag - ни фига не понял что к чему, только ошметки - типа при тестировании использовать можно.
посмотрю в выходные. спасибо!
DropAndDrag wrote: 16 Mar 2021 05:53
наверное опять что-то не понимаю. а разве можно в готовое Arduino запихнуть MMU?
я не смотрел от слова совсем за счет чего программист получает блок инициализации, главный цикл и прерывания. наверное что-то типа OS туда запихнуто. то есть вы собираетесь в нее добавить MMU?
а потом, вроде бы в 10-20$ Arduino памяти 16-32 кб. на такой памяти имеет смысл сделать MMU?
У меня не Arduino, я играюсь с STM-им контроллером. Никакой OS там и в помине нет, все ручкам, все сам-сам.
Ну и вопрос стоит не в необходимости самого MMU, а разобраться как это устроено.
К слову, можно взять UEFI и вдумчиво ковырять и модифицировать драйвера и библиотечки самого Edk2.
глянул на jtag - ни фига не понял что к чему, только ошметки
Упс, май бэд (с) Похоже у Ардуино особо не развито это дело. На STM, BeagleBone, и вроде на каких-то разновидностях Pi есть отдельный порт с поддержкой jtag. Обычно все забивают на него потому что нужен специальный кабель, и переводят плату в режим позволяющий пользоваться обычным micro USB. И если на плате всего один порт, и лень возиться и разбираться как оно все работает, можно переключить обратно jtag
Херовимчик wrote: 16 Mar 2021 06:30
К слову, можно взять UEFI и вдумчиво ковырять и модифицировать драйвера и библиотечки самого Edk2.
DropAndDrag wrote: 16 Mar 2021 05:53 глянул на jtag - ни фига не понял что к чему, только ошметки
Упс, май бэд (с) Похоже у Ардуино особо не развито это дело. На STM, BeagleBone, и вроде на каких-то разновидностях Pi есть отдельный порт с поддержкой jtag. Обычно все забивают на него потому что нужен специальный кабель, и переводят плату в режим позволяющий пользоваться обычным micro USB. И если на плате всего один порт, и лень возиться и разбираться как оно все работает, можно переключить обратно jtag
UEFI - это тип загрузки? долго матерился когда встретил эту хрень в BIOS. неужели нельзя было сделать полюдски, а не заставлять приличных людей разбираться в каждом писке ITшиных сумашедших гиков.
jtag меня заинтересовал, что он поддерживаться в NI LabVIEW, наверное вернее в NI devices. надо бы глянуть, а то иногда бывают сложности отлаживать на реальном оборудовании. например, на этой недели в нашей лабе пропал сжатый газ и было нельзя закончить отладку.
UEFI это современный BIOS, там можно в shell загрузиться и развлекаться. В Edk2 есть весь необходимый набор драйверов чтобы практически на любой железке запустить с минимальным допиливанием напильником.
Там есть своя специфика, но в целом разобраться можно и интересно