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

mbr

Участник
  • Постов

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

  • Посещение

Весь контент mbr


  1. Выбирать RTOS из-за очень синтетического параметра как время переключения контекста это очень странно - с таким подходом первое не во время прилетевшее прерывание разрушит всю систему. У меня в REx получается около 6us при 72MHz. При этом простой вызов ядра - 1.9us. Я считаю время более чем приемлимым. Мало того, если включить профилирование (время работы процесса, размер использованной кучи и стека и т.д.), время увеличивается до целых 11us, но какой-либо потери производительности от этого я не заметил. Код теста есть в примерах.
  2. Связался с этими товарищами. Согласовали цену и условия, ударили по рукам. Сначала что-то делали, потом начали динамить. Динамили две недели. Под конец у их инженера случилась истерика и он вообще отказался работать. Месяц работы - псу под хвост. Героя зовут Станислав Бедеров. Думайте сами.
  3. Могу решить эту задачу. Поднимал CDC, Mass storage, HID. F405 только для этой задачи - слишком круто. F103 хватит более чем.
  4. Много лет занимаюсь подобными задачами :) Я правильно понимаю - слить прошивку, сделать флешер, отреверсить драйверы? Контакты отправил в PM. Москва.
  5. STM32F4Discovery FLASH

    Это для F1, но суть та же: __disable_irq(); while (FLASH->SR & FLASH_SR_BSY) {} FLASH->CR |= FLASH_CR_PG; *addr = value; while (FLASH->SR & FLASH_SR_BSY) {} FLASH->CR &= ~FLASH_CR_PG; __enable_irq(); Желательно в конце добавить проверку на ошибку.
  6. Если в железке предусмотрено обновление firmware, могу поковырять через внешний или внутренний загрузчик - как правило, для таких микроконтроллеров цифровых подписей не делают. [email protected]
  7. Есть полностью разработанные мной драйверы для STM32F2 USB HS BULK, DMA/FIFO. 20 мбайт/с в режиме рам-диска mass storage выдавали - на F4 будут пошустрей. Для F4 переписать нужно лишь дерганье регистров, которое там особо не менялось и поднять PLL. Задача на день. Москва. SMT32F4 discovery есть, если что. [email protected]
  8. Задача стартапа не только инициализация железа, но и, в том числе, скопировать инициализированные глобальные переменные из флеша в рам. Прочитайте документацию по линкерным скриптам, посмотрите по листингам, куда попадают глобальные переменные и напишите небольшую асмовскую вставку, которая скопирует эти данные. Либо возьмите готовый скрипт и выкиньте оттуда лишнее.
  9. Еще один момент. Может и не в либе дело. Все буферы должны быть по doubleword align. Самый простой способ проверить - отрубить дма и посмотреть.
  10. Попробуйте при линковке добавить ключ -lstdc++ Если я правильно понимаю, линкеру нужно явно указывать, что компилируются плюсы. Стандартные либы у gcc очень тяжелые, с этим ничего не сделаешь. Newlib не сильно лучше.
  11. Если я правильно понял смысл, то где-то в .ld заводится место под блоки эмуляции еепром. Разве не проще, чтобы такого не происходило и не приходилось каждый раз перешивать eeprom после изменения кода, зарезервировать под еепром страницы предварительно и задать их константами в коде?
  12. У меня такое было, когда не было включено увеличенное энергопотребление по CMD6. По usb-hs скорости впечатляют. Это c какой частотой микроконтроллера получено? Какая обвязка?
  13. Перезагрузка STM32F4 (

    А какие опции у железа есть по ресету? Вопрос не совсем понятен.
  14. не установлен пакет libusb-0.1-4 libusb-dev Вам не нужен.
  15. Для си тоже есть возможность размещать функции в определенных секциях. Синтаксис зависит от компилятора.
  16. Перезагрузка STM32F4 (

    Вообще, сначала инициализировать обработчик и разрешать прерывание, которое работает с железом а уже ПОСЛЕ этого инициализировать само железо - совсем не правильно. Есть вероятность, что вызывается обработчик до инициализации.
  17. STM32F2xx скорость USB HOST

    Сам хост я не реализовывал, пока не было задач. Но для хоста и девайса используются одни и те же FIFO и ДМА. Поэтому, я не вижу причин, почему скорость хоста должна быть почти на порядок ниже. К слову да, а Вы точно в ДМА режиме используете библиотеку?
  18. Гм. Если есть даташит на процессор, готов взяться. alexeyk13 яндекс.ru
  19. STM32F2xx скорость USB HOST

    Я сейчас точно не скажу, покопайтесь на форуме, я там статистику скидывал - у меня получалось более 10мб/с в комплекте с тормозной сд-картой. на ulpi3300 и f215. Добью один проект, постараюсь скинуть в опенсорс в рамках проекта ртос mkernel.
  20. Фьютексы же. Можно использовать два буфера (что, собственно, реализуется большинством ОС) - один на чтение, второй на запись. Буфер на запись можно использовать свободно. Дальше используем две дополнительные переменные - lockFlag и readed. в основной программе: lockFlag = 1; <read data here> readed += <readed size> lockFlag = 0; в обработчике: if (!lockFlag) { real_size -= readed; readed = 0; }
  21. как отключит JTAG ?

    и еще AFIO предварительно включить. RCC->APB2ENR |= RCC_APB2ENR_AFIOEN; AFIO->MAPR |= AFIO_MAPR_SWJ_CFG_DISABLE;
  22. А как тогда быть с soft-reset (armv7)? Если "разумеется", почему ресет не отрабатывает? А грубить-то зачем?
  23. IRQ+FIQ

    Дополнительный блок регистров, это лишь бонус. Если мы рассматриваем nested interrupts (для запрета вложенных прерываний необходимость FIQ и так очевидна, имхо), то, при достаточно разветвленной системе прерываний и наличии приоритетов, программная реализация NVIC - это не только упомянутый stacking/ustacking, но еще и очередь приоритетов, что всегда - компромисс между скоростью и возможностями. И уж точно не несколько тактов. В лучшем случае - несколько десятков тактов. Плюсом, любое менее приоритетное прерывание, хоть и не будет вытеснено, но может затормозить обработчик на время проверки приоритетов. Так что, в обоих случаях, быстрый FIQ может найти свое применение.
  24. Китайцы (МТК) начали выпускать проприетарные чипы со встроенным нандом/рам. Там, правда, АРМ9 и без особых связей и партий от миллиона штук их фиг получишь, но нечто подобное уже есть.
×
×
  • Создать...