LINUX.ORG.RU

История изменений

Исправление ruzisufaka, (текущая версия) :

Если ты ждешь данные, то читать их можно синхронно и асинхронно. Синхронно - это ты подаешь команду на чтение, а внутри библиотеки (в том числе фирменной) скорее всего будет крутиться такой цикл. Другое дело асинхронно, можно заюзать DMA, и когда тебе что-то придет, ты словишь прерывание. Ресурсы процессора в этот момент не тратятся, всю работу делает переферия, которая и выкинет прерывание. А пока ты его не словил, тебе все равно делать нечего, так что все равно будешь крутить пустой цикл, лол. Или, скорее всего, рисовать какие-то анимации на экране, мигать диодиками и вообще. Чтобы не жрать батарейку, можешь или снизить частоту чипа, отключить часть переферии, перейти на тактирование от внутреннего резонатора, или даже отправить его в спячку (современные чипы поддерживают множество режимов спячки, а порой есть специальные сопроцессоры на том же кристале, которые данные принимают, пока спят основные ядра). ИоТ обычно спит 99% времени, а просыпается по внешнему прерыванию или от таймера на какие-то наносекунды, потом снова спать, в таком режиме оно от одной батарейки несколько лет спокойно проработает.

Исправление ruzisufaka, :

Если ты ждешь данные, то читать их можно синхронно и асинхронно. Синхронно - это ты подаешь команду на чтение, а внутри библиотеки (в том числе фирменной) скорее всего будет крутиться такой цикл. Другое дело асинхронно, можно заюзать DMA, и когда тебе что-то придет, ты словишь прерывание. Ресурсы процессора в этот момент не тратятся, всю работу делает переферия, которая и выкинет прерывание. А пока ты его не словил, тебе все равно делать нечего, так что все равно будешь крутить пустой цикл, лол. Или, скорее всего, рисовать какие-то анимации на экране, мигать диодиками и вообще. Чтобы не жрать батарейку, можешь или снизить частоту чипа, отключить часть переферии, перейти на тактирование от внутреннего резонатора, или даже отправить его в спячку (современные чипы поддерживают множество режимов спячки, а порой есть специальные сопроцессоры на том же кристале, которые данные принимают, пока спят основные ядра). ИоТ обычно спит 99% времени, а просыпается по внешнему прерыванию, в таком режиме оно от одной батарейки несколько лет спокойно проработает.

Исходная версия ruzisufaka, :

Если ты ждешь данные, то читать их можно синхронно и асинхронно. Синхронно - это ты подаешь команду на чтение, а внутри библиотеки (в том числе фирменной) скорее всего будет крутиться такой цикл. Другое дело асинхронно, можно заюзать DMA, и когда тебе что-то придет, ты словишь прерывание. А пока ты его не словил, тебе все равно делать нечего, так что все равно будешь крутить пустой цикл, лол. Или, скорее всего, рисовать какие-то анимации на экране, мигать диодиками и вообще. Чтобы не жрать батарейку, можешь или снизить частоту чипа, отключить часть переферии, перейти на тактирование от внутреннего резонатора, или даже отправить его в спячку (современные чипы поддерживают множество режимов спячки, а порой есть специальные сопроцессоры на том же кристале, которые данные принимают, пока спят основные ядра). ИоТ обычно спит 99% времени, а просыпается по внешнему прерыванию, в таком режиме оно от одной батарейки несколько лет спокойно проработает.