slavokhire5
Jul 25 2014, 07:17
Кто пробовал написать программу прошивки одного контроллера другим?
Идея такова: главный контроллер (stm32f107 или f103) получает прошивку по USB или Ethernet, складывает ее в микросхему FLASH, проверяет, затем будит контроллер-программатор (stm8) и ребутится. stm8 потихоньку читает прошивку из FLASH и заливает ее в stm32 по USART.
Вопрос: насколько это возможно, насколько серьезный уровень нужно иметь программисту, чтобы написать нужный код под stm8 (слышал, чтобы написать свой бутлоадер для STM32, нужно быть гуру), и сколько памяти может занять прошивка для stm8, чтобы заложить на будущее нужный камень.
andrewlekar
Jul 25 2014, 07:29
Делал программирование LPC1768 через AtMega16. Принцип похожий, только процы в 2-х разных устройствах, а прошивка заливается пользователем без участия LPC1768.
Задача у вас не очень сложная. Главное внимательно изучить алгоритм прошивки проца через UART.
Но стоит подумать о схеме работы без участия STM8. Зачем он вам тут нужен? Складывайте прошивку во внешнюю флэш, потом перезагружайтесь в режиме загрузчика, обновляйте программу и стартуйте.
ab1000
Jul 25 2014, 07:30
А зачем так сложно? Пусть главный контроллер получает прошивку и программирует сам себя. Никаких сверхъестественных знаний для написания своего загрузчика не требуется.
slavokhire5
Jul 25 2014, 07:33
Цитата(andrewlekar @ Jul 25 2014, 10:29)

Делал программирование LPC1768 через AtMega16. Принцип похожий, только процы в 2-х разных устройствах, а прошивка заливается пользователем без участия LPC1768.
Задача у вас не очень сложная. Главное внимательно изучить алгоритм прошивки проца через UART.
Но стоит подумать о схеме работы без участия STM8. Зачем он вам тут нужен? Складывайте прошивку во внешнюю флэш, потом перезагружайтесь в режиме загрузчика, обновляйте программу и стартуйте.
у f103 нет встроенного загрузчика по spi, а свой я не уверен, что напишу. или программа загрузчика spi будет примерно равна по сложности программе под stm8?
to
ab1000: хочется получать обновления по Ethernet или USB, а в качестве загрузчика использовать встроенный, т.к. я только начал работать с stm32, до этого на любительском уровне занимался AVRками
andrewlekar
Jul 25 2014, 07:42
Не понял, при чём тут SPI.
По-моему, вам всё же проще будет освоить реализацию собственного загрузчика, чем городить эту двухпроцессорную конфигурацию.
ab1000
Jul 25 2014, 07:50
Конечно же надо писать свой загрузчик. Он будет получать обновления по Ethernet или USB и программировать секцию приложения. Вы же собрались основным контроллером получать обновления и складывать их во внешнюю микросхему FLASH. Вот и складывайте, только не во внешнюю, а во внутреннюю.
adnega
Jul 25 2014, 08:09
Если памяти мало, то можно и во внешнюю.
Совет: пишите загрузчик и приложение как две независимых программы - так легче для понимания.
Загрузчик - штука универсальная, к конкретному приложению имеет отношение с точностью до карты распределения flash.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.