Jump to content

    

esaulenka

Свой
  • Content Count

    1217
  • Joined

  • Last visited

Community Reputation

0 Обычный

About esaulenka

  • Rank
    Профессионал
  • Birthday 01/25/1983

Информация

  • Город
    Маськва

Recent Profile Visitors

6855 profile views
  1. Возможно, https://www.unwireddevices.com/products/developers/energymon/ Правда, софтина почему-то устройство не видит, а письма "как это работает" уходят в пустоту... Но сама железка рабочая, и исправно высыпает измерения в виртуальный ком-порт.
  2. USB CDC: Как "притормозить" приём данных

    Не похоже, извините. Контроллер позволяет отправлять и ACK, и NAK. То, что это не позволяет сделать кубохал (кажется. Детально не исследовал) - не проблема контроллера.
  3. Ну вот уже здравые мысли какие-то. Автор вопроса занимается наладкой этих самых станков. И можно предположить (обратное пока не доказано), что он УМЕЕТ с ними обращаться. По-хорошему (опять же, никаких сведений) всевозможные защиты в станке сделаны отдельно, и максимум что может случиться - запоротая заготовка. Ну так пусть играется, пока не надоест...
  4. - исполнить мусор вместо инструкции - передать управление по кривому адресу - прочитать/записать что-либо по кривому адресу
  5. Я слышал, что помимо эклипса нужен компилятор с библиотеками. У вас есть? А какой?
  6. Ну вот он и задействован: Если НЕ задействовать, просто виснет через N минут работы, насколько я понял (и именно это я назвал "постоянно"). Какое поведение лучше, сходу сказать сложно... Спорить прекращаю. Нужен Вам ватчдог - используйте. Верите что он от всего спасает - верьте. Нужно в стартапе (или в map-файле) посмотреть, как должен называться этот обработчик, и в самом обычном сишном файле написать функцию void имя-обработчика(void). Не помню, как там в IAR'е сделано было, но все приличные люди в этом случае подменяют реализацию со стандартной на пользовательскую. В сишнике уже можно писать что угодно, в принципе - например, ножками дрыгать. Но по-хорошему, от этого обработчика требуется сохранить где-нибудь текущее состояние регистров и вершину стека - это придётся писать на ассемблере...
  7. Да какая разница? Тут проблема в самом подвисании, а не в том, как из него выйти. Т.е. ватчдог нужен и важен, но если контроллер постоянно виснет, надо лечить именно это. И, кажется мне, различать "прочитали мусор из-за кривого адреса" или "адрес правильный, но прочитали мусор" смысла немного, если оно регулярно происходит из-за внешних помех. Программно это можно попробовать исправить, но это очень сложно - разобрать, что произошло, откатиться назад, попробовать ещё раз. Я, пожалуй, такое не напишу. Надо железо править (и вероятно, разработчики станка столкнулись с тем же самым, раз всё на корню переделали, аж контроллер поменяли).
  8. О, устройство может самостоятельно попросить винду поставить libusb ? Геннадий, спасибо, полезная информация.
  9. Блин. Ну что сложного-то? воткнуть в этот uxListRemove() что-то вроде if (pxItemToRemove < 0x20000000 || pxItemToRemove >= (0x20000000 + сколько-там-озу)) __BKPT(); запустить, много думать. Я, правда, с M7 не сталкивался. Это работает, если ARM оставил в M7 адреса памяти такие же, как и в остальных кортексах. Если поменяли, дополнительно придётся полистать документацию и map-файл.
  10. Чем УАПП(UART) от NXP лучше УАПП от ST

    Сергей, а как вы это делаете? Ведь с ДМА, если не делать костыль "запускаем отправку в конце пакета" это получается ОЧЕНЬ неудобно!
  11. Чем УАПП(UART) от NXP лучше УАПП от ST

    Я забыл уже. Да, кажется, Вы правы. Но 485 я в живом виде видел только один раз (и там уже был STM32F4), а с обычным 232 этот бит и не нужен был... Я 2214 не застал, а в 2368/1768, насколько помню, добавили флажок с состоянием FIFO. Ну и каюсь: DMA на UART'ах так и не запустил. Приём делает какой-нибудь конечный автомат, его в любом случае побайтно надо кормить. Скорости выше 115200 тоже как-то не использовали никогда - для больших объемов более удобные интерфейсы есть. Так и дрыгаются эти прерывания на приём. А где приём, там и передачу можно запустить, это ещё десяток строчек.
  12. Осталось дело за малым: выяснить, какое значение pxItemToRemove и откуда оно там взялось.
  13. На всякий случай: в Qt5 есть абсолютно рабочие и достаточно удобные QSerialPort и QSerialPortInfo. Список (со всеми необходимыми подробностями) в инфо есть. Со всякими Qt2/3/4 сталкиваться не приходилось, может, там актуальнее было...
  14. Ethernet под Keil5

    Мой внутренний телепат подсказывает, что вопрос про стек из комплекта кейла. http://www.keil.com/pack/doc/mw/Network/html/index.html
  15. Вопрос про DMA (STM32F4/F7)

    Пример из головы: буфер - данные, приписываем заголовок и хвост, отправляем куда-то дальше. У NXP вообще всё лучше было сделано. И уарты, и I2C, и фифо в SPI (блин, примитивная ж вещь, но ST её рожала лет 8). Но зоопарк "каждому желающему - свой камень", да ещё и за три копейки, сделали именно ST'шники.