Перейти к содержанию
    

Просто, можно или нельзя обрабатывать прерывания?

 

Можно, читаем даташит (у меня на LPC213x)

 

Interrupts during IAP

The on-chip flash memory is not accessible during erase/write operations. When the user

application code starts executing the interrupt vectors from the user flash area are active.

The user should either disable interrupts, or ensure that user interrupt vectors are active in

RAM and that the interrupt handlers reside in RAM, before making a flash erase/write IAP

call. The IAP code does not use or disable interrupts.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно, читаем даташит (у меня на LPC213x)

Если это называть 'можно', то что тогда такое 'нельзя' :-(((

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Только что проверял прерывания когда обработчик в RAM. Не работает ни стирание сектора, ни запись. Виснет постоянно. Если бы не предыдущее сообщение, то так и забросил бы всё. Однако, я ступил вот в чём. Забыл таблицу векторов разместить в RAM! Какой же я дурак. Щас проверим.

 

Кто-нибудь, подскажите как разместить вектора в RAM? Как переключить вектора в RAM я знаю. Но как их там заполнить?

 

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

Изменено пользователем GetSmart

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проверил стирание и запись флэш. Ха! Работает! На 100 кГц прерываниях ни одного не потерял!

 

zltigo, не буду больше Вас слушать!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

zltigo, не буду больше Вас слушать!

Просто я не извращенец. Можете продолжать в своем вкусе.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Просто я не извращенец. Можете продолжать в своем вкусе.

 

Да ладно вам! Это не извращение. Вполне нормальный ход. Тем более не моя идея, а начальник требует всё-всё засунуть в один чип. Я вот до сих пор не могу понять как в IAR 4.2 нормальным методом сделать автоматическое размещение векторов прерываний в ОЗУ. То есть чтобы он их сам из флэша скопировал в ОЗУ. Например чтобы компилятор скопировал процедуру в ОЗУ нужно у неё в заголовке написать __ramfunc. А что написать и где для векторов прерываний? Сгодятся любые предложения! Вообще, у меня вектора прерываний оформлены в отдельном ASM-файле.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...