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

jcxz

Свой
  • Постов

    13 099
  • Зарегистрирован

  • Посещение

  • Победитель дней

    28

jcxz стал победителем дня 27 марта

jcxz имел наиболее популярный контент!

Репутация

172 Очень хороший

4 Подписчика

Информация о jcxz

Контакты

  • ICQ
    Array

Информация

  • Город
    Array

Посетители профиля

25 723 просмотра профиля
  1. Что мешает положить её например - в один из неиспользуемых векторов таблицы векторов прерываний? И забыть о проблеме.
  2. полноценный линукс на "мелких МК" (типа Cortex-M) не возможен по определению. Меньше всяких "блохеров" читайте.
  3. stm32f747 + Ethernet (LwIP)

    Или недобор? max ведь не указано. А значит и 0.5с может не хватить. И почему 0.5с, а не 5с или не 50с? ЗЫ: Вобщем, как уже сказали - решение с задержкой кривое. Сегодня работает, завтра - нет. Но ТСу лень читать документацию, чтобы сделать правильно.
  4. stm32f747 + Ethernet (LwIP)

    Наверняка есть. Но это же документацию читать надо.
  5. Всё а не всё. Всё-таки CPU с FIQ/IRQ гораздо шустрее реагируют на прерывания, чем Cortex-M с NVIC.
  6. Я вообще-то писал не про время входа в свой ISR, а про случай, когда ваше срочное прерывание возникло в тот момент когда уже только начался вход/выход в другой ISR. И писал это не про ARM-ы с переключением состояний FIQ/IRQ, а про Cortex-M с его NVIC (STM32). Никакой стабильности там быть не может по определению. А будет джиттер в десятки тактов (опять же - Cortex-M).
  7. Не верю! Сказки не надо рассказывать. Один вход или выход в ISR занимает уже десятки тактов (это если контекст FPU не сохраняется/восстанавливается; иначе будет ещё печальнее). Точно такие же сказки - максимальное время активации задачи во FreeRTOS == 900нс. По причине (как уже сказали выше) - что сервисы РТОС выполняются как правило при запрещённых прерываниях. ЗЫ: Сказочникам советую почитать описание CPU и посмотреть исходный код сервисов FreeRTOS. Для спуска с небес на землю... Кроме ПЛИС можно взять МК с богатой периферией, и реализовать нужный функционал силами этой периферии.
  8. Ну да Гладко было на бумаге, да забыли про овраги.... Один из моих прошлых заказчиков решил перенести наш проект (ранее реализованный на LPC17) на ESP32. "для удешевления" типа. Нашёл какого-то программиста, взявшегося за работу. И вот.... прошёл почти год. Насколько мне известно - до сих пор ещё результат не получен. Хотя в своё время, на LPC, первая версия девайса у нас заработала уже примерно через месяц. Периферии там немного. Да и в целом вроде девайс не особо сложный. Для обычного микроконтроллера по крайней мере. Хотя у меня с самого начала были большие сомнения насчёт реализуемости на ESP32. PS: И даже если заработает всё-таки, то боюсь заказчик будет неприятно удивлён временем его автономной работы (девайс имеет батарейное питание).
  9. Это не всегда так. А чаще вообще не так. Чаще целевым параметром ПИД-регулирования при управлении мотором, является не скорость, а крутящий момент. Например - в электротранспорте так. Потому что задающим воздействием, которое нужно выполнить ПИД-у, является величина нажатия педали акселератора водителем. Педаль задаёт крутящий момент, а не скорость. Аналогично - с электросамокатами и прочими средствами передвижения.
  10. stm32f747 + Ethernet (LwIP)

    Много чего. Например - инитит регистры отладки и включает таймер DWT. Если этот таймер используется в коде, но не проинициализирован, то будут проблемы. Наверное нужно всё-таки проверить просто рестарт, а не вкл. питания? С помощью сигнала RESET и с помощью соответствущего регистра сброса ядра или WDT. Если у вас инит регистров физики реализован криво, то он может не срабатывать из-за того, что физика ещё не закончила power-on reset. А вы уже пытаетесь в неё что-писать. Без контроля готовности. В этом случае после сброса по WDT или через ядро, старт должен быть нормальным, как из под отладчика.
  11. Хотя бы в том, что перед передачей управления в main(), необходимо как минимум выполнить си-стартап. Который должен проинициализировать глобальные и статические переменные. Это не считая того, что в запускаемой программе какая-то работа может выполняться до main(). А вы её пропустите.
  12. варианты: 1. Не давать включить защиту. 2. Выключить её в соответствующем сервисе ОС (например в сервисе SVC). 3. Сделать все необходимые дела в ISR. Кто мешает вам так сделать? Вроде как всё элементарно.
  13. Чтобы "запустить другое приложение", изменить MSP скорей всего будет недостаточно. В идеале нужно предварительно вообще все регистры ядра и периферии перевести в исходное (послесбросовое) состояние. Иначе следующий ваш вопрос будет: "Почему после запуска отладчиком то приложение работает, а после запуска мои загрузчиком - нет?". Мешает то, что оно так не запустится. С большой долей вероятности. Запуститься так оно может только если специально было спроектировано под такой тип запуска. А сделать такое непросто.
×
×
  • Создать...