STM32F(1) Embedded Bootloader (Как?)

Все о микроконтроллерах: AVR, PIC, STM8, STM32, Arduino, Altera, Xilinx, все что угодно. Этот раздел для всего что клацает байтиками.
Qic
Сообщения: 985

Сообщение Qic » 19 апр 2017, 14:11

Доброго времени суток.
Столкнулся с необходимостью программировать удалённый контроллер (в частности stm32f103vet6) желательно через RS-485.
Следовательно требуется загрузчик. В принципе понятно что можно сделать в основной программе задачу в которую попадёт при объявлении сигнала. Которая потушит всё остальное и обновит прошивку.
Однако меня беспокоит что что-то может пойти не так (связь/питания) и очередная страница не сойдется по crc или еще чего. И получится кирпич.
Как это делают?

Аватара пользователя
BSVi
Адепт
Сообщения: 3576
Откуда: Киев

Сообщение BSVi » 19 апр 2017, 14:55

Делают загрузчик который включается до программы при запуске контроллера, он проверяет CRC основной программы. Если он совпадает, запускает основную программу, если нет - продолжает сам работать и ждет обновления. Естественно, основная программа тоже может запустить этот основной загрузчик.

Qic
Сообщения: 985

Сообщение Qic » 19 апр 2017, 17:17

Но например прикладную программу мне надо сделать с адресом попозже? Т.е. вопрос к комплиятору, делать как простую программу но указывать стартовый адрес позже загрузчика?
Есть ли необходимость делать загрузчик целиком на одной странице памяти чтобы он не участвовал в прошивке?

Например загрузчик работает из начала при сбросе. Загружается, проверяет хэш, если в порядке то ждет какое-то запланированное время, скажем 50мс, и если ничего не происходит делает переход на исполняемую программу.
Например ведущий говорит всем заткнуться (если это CAN) и ведомому говорит сброс. Пока происходит сброс, ведущий стучится в порт флаг-фреймом. Загрузчик видит флаг-фрейм и мы прошиваемся.

А еще наверное можно сделать обновление загрузчика из основной программы? И впринципе тиражирование своей прошивки соседям.
Если всё так то впринципе понятно.

P.S. Заблокированный от считывания через SWD флеш можно разблокировать из программы?

Аватара пользователя
BSVi
Адепт
Сообщения: 3576
Откуда: Киев

Сообщение BSVi » 19 апр 2017, 17:25

Т.е. вопрос к комплиятору, делать как простую программу но указывать стартовый адрес позже загрузчика?

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

Есть ли необходимость делать загрузчик целиком на одной странице памяти чтобы он не участвовал в прошивке?

Конечно.

А еще наверное можно сделать обновление загрузчика из основной программы?

Можно.

Заблокированный от считывания через SWD флеш можно разблокировать из программы?

Да, правда, у меня эта фича бажила и вылетали непойми какие глюки до физического снятия питания. Что-то явно не нравилось кэшу флэша.

Qic
Сообщения: 985

Сообщение Qic » 19 апр 2017, 17:50

Спасибо за ответы. Про флеш стмки почитал, проблем не должно возникнуть. Поскольку программа передаётся открытым текстом не думаю блокировать флеш от считывания. (Но как говориться "А вдруг")


yaachii
Сообщения: 42368

Сообщение yaachii » 02 май 2025, 11:37

audiobookkeeper.rucottagenet.rueyesvision.rueyesvisions.comfactoringfee.rufilmzones.rugadwall.rugaffertape.rugageboard.rugagrule.rugallduct.rugalvanometric.rugangforeman.rugangwayplatform.rugarbagechute.rugardeningleave.rugascautery.rugashbucket.rugasreturn.rugatedsweep.rugaugemodel.rugaussianfilter.rugearpitchdiameter.ru
geartreating.rugeneralizedanalysis.rugeneralprovisions.rugeophysicalprobe.rugeriatricnurse.rugetintoaflap.rugetthebounce.ruhabeascorpus.ruhabituate.ruhackedbolt.ruhackworker.ruhadronicannihilation.ruhaemagglutinin.ruhailsquall.ruhairysphere.ruhalforderfringe.ruhalfsiblings.ruhallofresidence.ruhaltstate.ruhandcoding.ruhandportedhead.ruhandradar.ruhandsfreetelephone.ru
hangonpart.ruhaphazardwinding.ruhardalloyteeth.ruhardasiron.ruhardenedconcrete.ruharmonicinteraction.ruhartlaubgoose.ruhatchholddown.ruhaveafinetime.ruhazardousatmosphere.ruheadregulator.ruheartofgold.ruheatageingresistance.ruheatinggas.ruheavydutymetalcutting.rujacketedwall.rujapanesecedar.rujibtypecrane.rujobabandonment.rujobstress.rujogformation.rujointcapsule.rujointsealingmaterial.ru
journallubricator.rujuicecatcher.rujunctionofchannels.rujusticiablehomicide.rujuxtapositiontwin.rukaposidisease.rukeepagoodoffing.rukeepsmthinhand.rukentishglory.rukerbweight.rukerrrotation.rukeymanassurance.rukeyserum.rukickplate.rukillthefattedcalf.rukilowattsecond.rukingweakfish.rukinozones.rukleinbottle.rukneejoint.ruknifesethouse.ruknockonatom.ruknowledgestate.ru
kondoferromagnet.rulabeledgraph.rulaborracket.rulabourearnings.rulabourleasing.rulaburnumtree.rulacingcourse.rulacrimalpoint.rulactogenicfactor.rulacunarycoefficient.ruladletreatediron.rulaggingload.rulaissezaller.rulambdatransition.rulaminatedmaterial.rulammasshoot.rulamphouse.rulancecorporal.rulancingdie.rulandingdoor.rulandmarksensor.rulandreform.rulanduseratio.ru
languagelaboratory.rulargeheart.rulasercalibration.rulaserlens.rulaserpulse.rulaterevent.rulatrinesergeant.rulayabout.ruleadcoating.ruleadingfirm.rulearningcurve.ruleaveword.rumachinesensible.rumagneticequator.rumagnetotelluricfield.rumailinghouse.rumajorconcern.rumammasdarling.rumanagerialstaff.rumanipulatinghand.rumanualchoke.rumedinfobooks.rump3lists.ru
nameresolution.runaphtheneseries.runarrowmouthed.runationalcensus.runaturalfunctor.runavelseed.runeatplaster.runecroticcaries.runegativefibration.runeighbouringrights.ruobjectmodule.ruobservationballoon.ruobstructivepatent.ruoceanmining.ruoctupolephonon.ruofflinesystem.ruoffsetholder.ruolibanumresinoid.ruonesticket.rupackedspheres.rupagingterminal.rupalatinebones.rupalmberry.ru
papercoating.ruparaconvexgroup.ruparasolmonoplane.ruparkingbrake.rupartfamily.rupartialmajorant.ruquadrupleworm.ruqualitybooster.ruquasimoney.ruquenchedspark.ruquodrecuperet.rurabbetledge.ruradialchaser.ruradiationestimator.rurailwaybridge.rurandomcoloration.rurapidgrowth.rurattlesnakemaster.rureachthroughregion.rureadingmagnifier.rurearchain.rurecessioncone.rurecordedassignment.ru
rectifiersubstation.ruredemptionvalue.rureducingflange.rureferenceantigen.ruregeneratedprotein.rureinvestmentplan.rusafedrilling.rusagprofile.rusalestypelease.rusamplinginterval.rusatellitehydrology.ruscarcecommodity.ruscrapermat.ruscrewingunit.ruseawaterpump.rusecondaryblock.rusecularclergy.ruseismicefficiency.ruselectivediffuser.rusemiasphalticflux.rusemifinishmachining.ruspicetrade.ruspysale.ru
stungun.rutacticaldiameter.rutailstockcenter.rutamecurve.rutapecorrection.rutappingchuck.rutaskreasoning.rutechnicalgrade.rutelangiectaticlipoma.rutelescopicdamper.rutemperateclimate.rutemperedmeasure.rutenementbuilding.rutuchkasultramaficrock.ruultraviolettesting.ru


Вернуться в «Микроконтроллеры и ПЛИС»



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 35 гостей