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

Причём тут вайфай? Веб морда с тысипями кушает память, а в M0 ее кот наплакал - 8-12 кб

А как вы будете подключать М0 в сеть, где будут бегать ваши TCP пакеты?

Размер занимаемой озу стеком TCP/IP сильно зависит от числа одновременных одкрытых соедений, других поддерживаемых протоколов,

в М0 ни у кого нет RMI интерфейса, чтобы подключить эзернет, но есть spi и uart как минимум, к ним пожно подключать внешние крохотные модули с реализаванных внутри них TCP/IP. В этом случае даже 8-битный адруино справиться с задачей на ура.

Я для примера предложил самый бюджетный и простой вариант - вайфай ESP.

 

которая несколько меньше линукса,
Ну, это все меняет :)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А какой минимальный шаг времени нужен? Поддержка дат нужна? Или просто "запуск задачи через час", "запуск задачи раз в сутки"? Если второй вариант, можно сделать свой планировщик, взяв за основу этот. Умеет периодический запуск задач. отложенный запуск.

 

О, спасибо. Минимализм, как и хотелось. И можно и RTC прикручивать.

 

Это невозможно на физическом уровне. Ваш мк будет управлять физикой с двумя состояниями - вкл-выкл, ну может быть ещё шим - но у него тоже пишется единственное значение.

Значит все эти глюки необходимо разрулить ещё до фактической установки будильника.

Функция - будильник каждую секунду - задаётся с некорректными значениями неиспользуемых разрядов будильника. Например каждую секунду - число секунд, а минуты, часы дни - года FFFF. Тогда при установке будильника можно будет задействовать отдельный канал со спец режимом, именно для этих целей, но таких каналов кажись всего один штук. Ну и управление физикой будет очень ограниченным. С этим делом прекрасно справляется программный таймер, там даже ничего изобретать не нужно.

Почему невозможно? Просыпаемся по RTC, смотрим, какие есть "задачи", если нет - то спим дальше, если есть - выполняем их - последовательно - типа дрыгнуть ногами, запустить АПЦ и дождаться результата (т.е. квазиодновременно, если у нас минимальный квант от RTC секунда), перед тем как заснуть пробегаемся по будильникам, находим ближайший, программируем время следующего прерывания RTC и засыпаем. RTC позволяет (более лучше спать и) меньше потреблять, чем программный/нутряной таймер.

 

А как вы будете подключать М0 в сеть, где будут бегать ваши TCP пакеты?

Размер занимаемой озу стеком TCP/IP сильно зависит от числа одновременных одкрытых соедений, других поддерживаемых протоколов,

в М0 ни у кого нет RMI интерфейса, чтобы подключить эзернет, но есть spi и uart как минимум, к ним пожно подключать внешние крохотные модули с реализаванных внутри них TCP/IP. В этом случае даже 8-битный адруино справиться с задачей на ура.

Я для примера предложил самый бюджетный и простой вариант - вайфай ESP.

 

Ну, это все меняет :)

 

Всё равно веб сервер надо будет в М0 делать.

 

Но сама идея мне нравится, как раз под дивайс, в котором крон должен жить.

Вайфай ESP - это ESP8266 или есть другие варианты?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вайфай ESP - это ESP8266 или есть другие варианты?

Конечно, есть и другие, этот я указал для примера и как самый ходовой и доступный.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А вот не подскажет ли кто - есть ли в природе embedded cron не для линукса, а для мелкопроцессоров типа ARM Cortex 3,

и чтоб в исходниках на Це, и чтоб памяти не ел, и чтоб difftime мухой считал без double.

 

Если вам надо сделать просто запуск задач по определенным моментам времени, то можно создать функцию которую вызываете каждую секунду, в ней считаете минуты, часы, дни.

секунды, минуты, часы, дни считаете в глобальных переменных.

Заводите необходимое количество структур моментов времени срабатывания содержаших обработчик явления, далее простой обработчик, который каждую секунду сравнивает все структуры с текущим временем и все.

 

Правда difftime не считает.

 

Могу рассказать более подробно (с примерами имплементации) если интересно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Почему невозможно? Просыпаемся по RTC, смотрим, какие есть "задачи", если нет - то спим дальше, если есть - выполняем их - последовательно - типа дрыгнуть ногами, запустить АПЦ и дождаться результата (т.е. квазиодновременно, если у нас минимальный квант от RTC секунда), перед тем как заснуть пробегаемся по будильникам, находим ближайший, программируем время следующего прерывания RTC и засыпаем. RTC позволяет (более лучше спать и) меньше потреблять, чем программный/нутряной таймер.

 

Да вот фига.

Просыпаемся когда уже пора что-то делать, потому как будильник на это время взведён. Иначе смысл в будильнике отпадает, можно на программных таймерах считать, с точностью в миллисекунды. Завёл одну переменную в 64 бита - и железяка её за всю твою жизнь не обнулит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да вот фига.

Просыпаемся когда уже пора что-то делать, потому как будильник на это время взведён. Иначе смысл в будильнике отпадает, можно на программных таймерах считать, с точностью в миллисекунды.

 

Да фига. Я как раз об этом и говорю.

 

Завёл одну переменную в 64 бита - и железяка её за всю твою жизнь не обнулит.

не всю. До разряда батарейки/зависания/сбоя

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...