Jump to content

    

Arlleex

Свой
  • Content Count

    2197
  • Joined

  • Last visited

Community Reputation

0 Обычный

2 Followers

About Arlleex

  • Rank
    Гуру

Контакты

  • Сайт
    Array
  • ICQ
    Array

Recent Profile Visitors

6209 profile views
  1. Последний раз, когда пользовался, версия была 7.0, вроде. Глюков не замечал...
  2. Еще как верно Потому как не было указано вовсе никаких ОС. Но даже если так: процессор выполняет команды, даже находясь в idle-цикле, а значит работает. Еще раз: процессор не загружен, если спит (либо не остановлен по какой-то другой причине - halt, power-off). Абсолютная загрузка CPU - это, все-таки, несколько другое по отношению к распределению процессорного времени по задачам в RTOS.
  3. В следующий раз, пожалуйста, полностью не цитируйте сообщение, когда оно на полтора монитора. Что-что? Это как? Разумеется, можно открыть редактор бинарных данных, накатать программу прямиком в 0 и 1 () и зашить в МК. Но... зачем? Для облегчения кодирования на самом низком уровне придумали ассемблер - на нем все эти коды инструкций заменяются символьными сокращениями - мнемониками команд процессора. Писать напрямую 0 и 1 можно, разве что, для видео на ютубчик. Хотя там такие есть. What? Что-то у Вас каша в голове. Рекомендую к прочтению книгу Р. Токхейм. Микропроцессоры: курс и упражнения. Рано Вам в МК.
  4. Защита от чего конкретно? А стоит ли?
  5. Я сначала подумал, что у меня провода длинные - 20см. Однако чтобы отбросить мысль о звоне, я уменьшал силу выходного драйвера на SCK. Толку нет. Снижал и частоту самого интерфейса до сотен кГц - толку ноль. По сути только подтяжка спасает ситуацию. Осциллографом посмотрю после майских теперь уже.
  6. Приветствую! В силу глобального дефицита компонентов пришлось поставить в устройство внешний чип часов реального времени. Выбрали DS3234, адаптировали плату, заказали. Подтяжек MOSI/MISO/SCK не делали, т.к. нафига на MOSI/SCK она сдалась, если я их с МК задам сразу в режиме push-pull-а, на CS же, естественно, поставили. С MISO было интереснее: поставить резистор было не проблемно, но не поставили и не поставили - документация на RTC гласит, что драйвер MISO push-pull (из таблицы описания выводов). Пока железо будет изготавливаться, я, время не теряя, взял отладочную плату и подключил к ней этот RTC. Ну и читается оттуда всякий мусор. Подключил логический анализатор - данные стали читаться правильно. Отключил анализатор и подключил подтяжку кверху - данные тоже сразу стали читаться правильно. В общем у меня запало подозрение, что документация врет. Причем забавно, что после отключения анализатора (но при отсутствующей подтяжке MISO в МК) данные какое-то время еще читаются правильно - а потом начинает лезть мусор. Даже элементарное движение рукой над проводками между отладкой и часами имеет свой эффект. Единственное, что я не проверил, так это подтяжку вниз. Вот будет круто, если и при подтяжке вниз оно как-то будет работать. В общем, имейте ввиду, кто захочет их применять в своих девайсах. После майских праздников ради интереса проверю подтяжку вниз. Если не будет работать - то там действительно open-drain, если будет, то вопрос остается - что это было..?
  7. Блин, хотел на своем Cortex-M0 запустить - да нету в нем CYCCNT... Но, ИМХО, можно на обычном таймере замутить. Или на SysTick-е.
  8. Уйдет. Только они будут учтены в счет времени работы (WorkingTime). Вот их код без лишней требухи Зеленая область - область учета тактов, потраченных на полезную работу. Красная зона - это область, где учитываются только такты, потраченные на сон (не берем в расчет доступ к CYCCNT). За счет порядка чтения переменных в зеленом контуре будет учтено время выполнения этого тела, вместе с инструкциями в красной зоне. Если сделать как Вы предлагаете То в зону учета времени сна будут входить лишние такты, ко сну не относящиеся. Конечно, тактов там не так много, но все-же, ИМХО, корректнее их вариантом делать. P.S. Предложу свой вариант (на деле не проверял пока) void GoToSleepMode(void) { static u32 wtim = 0, // work time stim = 0, // sleep time ltim = 0; // last time __disable_irq(); u32 prev = DWT->CYCCNT; __WFI(); u32 next = DWT->CYCCNT; __enable_irq(); wtim += prev - ltim; stim += next - prev; ltim = next; }
  9. Думаю, Ваш вариант даже лучше... Хотя нет. Между чтениями CYCCNT может еще пройти какое-то количество тактов, и для переменной l оно должно учитываться.
  10. Распределение времени между задачами и нагрузка на CPU - это совершенно разные вещи.
  11. Хмм... У меня тоже открывается. Попробуйте по словам "CPU load monitor for STM32F4xx" первой ссылкой в гугле. P.S. Хотя да, сайт у них открывается дольше чем другие. Секунд пять уходит на получение ответа и обновление странички.