Ищу алгоритм компиляции и прошивки для самописного клиента на Windows.

Тема в разделе "Микроконтроллеры AVR", создана пользователем Роман99, 26 май 2017.

  1. Роман99

    Роман99 Нуб

    Здравствуйте. Пишу клиент для винды на C# для генерации прошивки в ардуину.
    Мне нужно из это го же клиента откомпилировать и послать на прошивку в ардуину.
    Так же надо из этой же программы записывать данные в еепром.
    Подскажите есть ли где то уже наработкт в этом плане?
    Особенно интересует компиляция.

    Предлагать воспользоваться сторонними программами для компиляции и прошивки не надо.
     
  2. rkit

    rkit Гуру

    Есть, GCC называется.

    Вы самостоятельно собрались писать компилятор? Не смущает, что их годами пишут команды из десятоков человек?
     
  3. mcureenab

    mcureenab Гуру

    Ассемблер написать не сложно. Только зачем?

    Наработки - "Книга дракона". yacc. gnu bison.

    Что на вход компилятора подавать собираетесь?
     
  4. Роман99

    Роман99 Нуб

    я бы не сказал что компилятор, надеялся что есть какие то готовые решения которые можно применить.
    обычный скетч как у ардуино, файл с расширением ino.
     
  5. Unixon

    Unixon Оракул Модератор

    @Роман99 , какую задачу вы пытаетесь таким способом решить?
     
  6. rkit

    rkit Гуру

    Готовые решения - это сторонние программы, против которых вы почему-то против. И GCC. опять же.
     
  7. Роман99

    Роман99 Нуб

    блок управления несколькими датчиками. В программе для пк выбираются какие конкретно датчики и количество и прошивается во флеш. Может быть этот блок уже будет прошит для конечного пользователя. Конечный пользователь выбирает в программе какие и количество датчиков и просто жмёт на кнопку в одной программе при подлючённом блоке и готово. То есть максимально простой и понятный интерфейс для стороннего человека.
    я имел введу пример кода, который можно было бы использовать
     
  8. mcureenab

    mcureenab Гуру

    Эта задача решается на C++ с помощью условной компиляции.
    #ifdef
    и т.д.

    ну или подстановкой макросов.

    Зачем EEPROM, когда в коде программы можно конфигурацию сохранить.
     
  9. Unixon

    Unixon Оракул Модератор

    Вот это именно то, чего в случае ТС делать не нужно.
     
  10. Unixon

    Unixon Оракул Модератор

    Понятно. Лучше не трогайте код, заливайте одну универсальную прошивку, а конфигурацию храните в EEPROM. Вам куда проще будет сделать изменение конфигурации с ПК при содействии штатной прошивки, чем городить систему сборки.
     
  11. Роман99

    Роман99 Нуб

    я этого и пытаюсь добиться. Только не знаю как с компа заливать напрямую в еепром без сторонних программ. Мне подсказали что как то можно через Serial залить, пока не понял как
     
  12. rkit

    rkit Гуру

    Да что у вас за религия против сторонних программ-то? Берете avrdude да запускаете.
     
  13. mcureenab

    mcureenab Гуру

    В скетче сделайте функцию чтения команд из Serial и записи в EEPROM.
     
  14. Роман99

    Роман99 Нуб

    это не моя прихоть, у меня задание такое.
    предполагается что во флеше уже будет какая то прошивка, её переписывать нельзя. надо напрямую в еепром с компа писать, вот и ищу алгоритмы как это реализовать через мой клиент
     
  15. rkit

    rkit Гуру

    Что это за задание - зубочисткой котлован выкопать? Без сторонних средств это займет десятки лет. Вы что-то путаете.
     
  16. mcureenab

    mcureenab Гуру

    В ArduinoIDE есть пример скетча ArduinoISP. В нем есть функции прошивки EEPROM через ISP.
     
  17. rkit

    rkit Гуру

    И через загрузчик шьется замечательно, не надо усложнять
     
  18. mcureenab

    mcureenab Гуру

    Согласен. С загрузчиком задача переходит в плоскость сборки .eep файла для прошивки в МК.
     
  19. mcureenab

    mcureenab Гуру

  20. Роман99

    Роман99 Нуб

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


    Вот вроде бы нашел что то похожее: http://platformio.org/ как я понял можно передать ярлыку этой программы нужные параметры и получу скомпиленный результат.

    Так же вот похоже что ищу, готовые батники которые делают то что мне надо, пока что изучаю:https://playground.arduino.cc/Code/WindowsCommandLine ЕЕпром вроде бы не шьёт