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

Dvorkin

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

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

  • Посещение

Репутация

1 Обычный

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

Контакты

  • ICQ
    Array

Информация

  • Город
    Array

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

1 732 просмотра профиля
  1. STM32 калибровка RTC

    Имелась в виду инициализация MX_RTC_Init(), сгенерированная CubeIDE. Все понятно, я в религиозных войнах не участвую.
  2. STM32 калибровка RTC

    Обнуление даты и времени программист заметит сразу же. Да, установку даты и времени в MX_RTC_Init() легко обойти. А вот это очень спорно. В MX_RTC_Init() инициализируются, в частности, hrtc.Instance и hrtc.TampOffset. Так что правильный ответ - написать свою инициализацию RTC, а штатную - выкинуть. И с чем же там разобрались? Разве что с благоглупостями типа калибровать часовой кварц от HSE.
  3. STM32 калибровка RTC

    Перестаньте флудить.
  4. STM32 калибровка RTC

    Все так. Но генерируемый CubeIDE код инициализации ничего не проверяет. И я не знаю, как сделано у топикстартера. Калибровку RTC я делал так: Компьютер, синхронизирующий системное время по NTP, устанавливает точное время в контроллере и включает режим калибровки. Дней через 5 компьютер запрашивает текущее время контроллера и вычисляет калибровочный коэффициент. Режим калибровки останавливается. В память контроллера записывается история калибровки - когда началась и когда закончена, отклонение времени и калибровочный коэффициент. Разумеется, во время калибровки установка времени в контроллере запрещена. Я тогда работал с MSP430, там нет счетчика субсекунд, поэтому установка времени в начале калибровки и чтение времени в конце делалось на границе секунды в компьютере.
  5. STM32 калибровка RTC

    Такая неточность часов, как у топикстартера, возможна по по причине тактирования не от LSE, а от LSI. Но вот что еще есть: вызов RTC_Init() при инициализации в main() портит счетчик субсекунд. Так что можно испортить показания часов просто нажимая RESET. Выход - не инициализировать RTC без необходимости.
  6. Зачем вы на каждой итерации проверяете флаг? Быстрее будет if(Flag_3x3) {for() }
  7. На сайте https://elixir.bootlin.com/linux/v4.14/source выбираете версию ядра и ищете timeval (в поле поиска Search Identifier). Или открываете файл mxc.c и, кликнув по #include "time.h", медитируете до просветления.
  8. Ну, если за год никто не предложил разумного решения - значит, задача чрезвычайно трудна, нельзя было оставить без ответа 😀
  9. Здесь или goto или ввести булевский флаг выхода из цикла: bool fl_exit=false; for(int i=0; (i<N) && !fl_exit; i++) {switch(i) {case 0: break; case 1: break; case 10: fl_exit=true; break; }//switch }//for
  10. Да книжек-то много, кому какая нравится... Посмотри в истории браузера, за месяц история ссылок должна же остаться.
  11. Модули и так грузятся вместе с ядром, т.к. они часть ядра. А скрипты /etc/rcS уже потом. Вроде в /lib/modules есть modules.order, он и определяет порядок загрузки модулей. Но в разных ОС может быть по-другому, конечно.
  12. Можно писать в fifo, а под screen в именованной сессии (screen -mdUS my_log) запустить скрипт, который печатает прочитанное из fifo, что-то наподобие: tail < fifo Тогда, переключившись в эту сессию (screen -rdU my_log), можно читать ваш лог.
  13. Да, в Zynq нет ресурсов, а драйвер на компе должен же знать.
  14. В device tree описываются устройства, которые обслуживают драйвера ОС. И неважно, где эти устройства, ведь у каждого есть адрес и прочие ресурсы.
  15. Так я не делал, ничего сказать не могу. Xilinx SDK генерил не совсем правильно dt, а с деревом от petalinux проблем никогда не было.
×
×
  • Создать...