Загрузочное

Mar 15, 2011 11:54

В этой заметке хочу написать об околозагрузочных вещах, которые мы делали в рамках нашего проекта на основе камня от Analog Devices BF-537 (семейство Blackfin). Постараюсь писать не сильно заумно, чтобы картина была более менее понятна не только специалистам, но и особо пытливым гражданским ( Read more... )

c++, programming

Leave a comment

Comments 35

waqur March 17 2011, 10:29:44 UTC
на самом деле можно было разбить область флеш-памяти вне бутера на две равных части и обновлять по очереди то левую, то правую

в заголовке - контрольная сумма и таймштамп

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

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

Reply

cd_riper March 17 2011, 10:36:00 UTC
бутер то все равно нужен.
а процесс заливки приложения в область за ним, разумеется, транзакционна.

Reply

waqur March 17 2011, 10:39:42 UTC
да но в моём варианте он очень легковесный

только чтение из флеши в RAM и примитивные вычисления

не надо связи с внешним миром, ни по UART, ни по сети ни ещё как
никаких настроек не надо хранить

Reply

cd_riper March 17 2011, 10:41:26 UTC
есть проблема -- можно залить версию, у которой будут какие-то проблемы с обновлением.

Reply


(The comment has been removed)

cd_riper March 18 2011, 15:08:25 UTC
гммм...

ты наивно полагаешь, что 600 мегагерцовый 32-х разрядный камень, к которому можно полгига RAMа присандалить, программируют исключительно на ассемблере?

кстати, под него Linux есть, правда в варианте без виртуальной памяти

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

Reply


Leave a comment

Up