Свежие обсуждения
Микроконтроллеры

Вопрос специалистам по Си для PIC-контроллеров

1 2

В Ассемблере для PIC контроллеров есть такая процедура FILL которая позволяет заполнить память контроллера заданным значением. Например, неиспользуемую память можно забить командой goto 0x00, для рестарта контроллера при возможном сбое программы.

FILL(goto 0x00),0x800-$ ; пример реализации (с текущего места и до конца памяти)

Вопрос как аналогичную процедуру выполнить на Си?

 

Catcatcat: Вопрос как аналогичную процедуру выполнить на Си?

офф Но зачем ? Если программа лезет куда не надо, это плохая программа.

 

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

 

В си нет goto.
Сергей К: заполняется командой перехода.
Да, вроде так и есть.

 

Vladikas: В си нет goto.

Как ? Украли ?

 

fanta: Как ? Украли ?
кошмар! Я отстал от жизни! Вот почему у меня ЮСБ подглючивает!

 

Можно не заполнять незанятую память: чистая она содержит 00, что соответствует NOP, осталось в верхнем адресе поставить требуемый goto.
Хотя надеяться, что это повысит надежность работы...
Например, ехала фреза, пилила железку, потом вдруг сбой, инициализация МК и капец проделанной работе и детали. Или еще: летел самолетик мимо электрички, словил помеху, ушел на GOTO 0 и, потеряв ориентацию, влетел в эту самую электричку.

 

А для этого придумано трёх и даже пяти кратное параллельное резервирование.

 

fanta: Как ? Украли ?
И не было Сначала сам страдал, а потом научился обходиться и уже не вспоминаю.
Правда сейчас всё больше на php пишу, но это почти тот же Си.

 

Vladikas: И не было

Вот клятые капиталисты, и тут обманули

ЗЫ Хорош бред нести - http://ru.wikipedia.org/wiki/GOTO