|
Программное разделение, GSM и GPS |
|
|
|
 |
Ответов
|
Jul 12 2013, 10:13
|
Местный
  
Группа: Участник
Сообщений: 212
Регистрация: 2-02-11
Пользователь №: 62 643

|
Цитата(rat @ Jul 11 2013, 14:49)  День добрый. В устройстве (трекер) есть несколько программных единиц: работа с GSM, GPS, опросы IO и т.д. Как правильно разделять работу с GSM и GPS в контроллере? Приоритетами прерываний, по времени? Кто как решает эту задачу? Не понял вопроса. Звучит он скорей "какова архитектура программ выполняющих параллельно множество задач". Вообще ответ есть в статье "Embedded system" в Wikipedia. Подходов несколько, суть одна. Последовательно исполняются разные программные модули обслуживающие разные задачи. Вопрос, чем эта последовательность определяется. От программиста (super/big loop), до RTOS. Не обязательно RTOS с вытеснением, можно и кооперативная. Впрочем и RTOS не обязательна. Если RTOS (с отдельными стеками для каждой задачи) нет, то отдельные модули строятся так, что в какой-то переменной хранят своё состояние (google://Шалыто), например. Может быть событийно-управляемая архитектура, когда возникновение каких-либо событий приводит к запуску их обработчиков (в которых могут быть те же автоматы): это лучше чем big loop, потому, что если последний достаточно big, то слишком много процессорного времени тратится на ненужные проверки условий и, кроме того, с big loop трудно перевести процессор в спящий режим когда не нужно. Вообще если параллельных задач очень много, то подход с RTOS не реализуем без костыпей и подпорок -- не хватит памяти (стек и т.п.) на каждую. Всё сведётся скорей к событийно-ориентированному программированию (именно такая модель применяется в GUI, где тоже есть множество относительно независимых "задач" работающих параллельно). А RTOS скорей полезна для создания небольшого количества изолированных задач, причём именно вытесняющая RTOS. В основном ввиду возможности вытеснения. Т.к. рано или позвно в событийно-ориентированной архитектуре найдутся задачи требующие малого времени реакции и другие, обрабатываемые слишком медленно. Цитата(_Артём_ @ Jul 11 2013, 19:22)  Видел железки с 128/256/512 КБ флеша, но что можно на 32КБ сделать? Только printf туда и поместится и ничего больше... Вы новичёк и недоучка, вам сейчас объяснят. Профессионалы пишут на ассемблере, а C для ламиров. Цитата(megajohn @ Jul 12 2013, 10:01)  Есть такая замечательная рекламная картинка, которая показывает как кортексы уделывают 8-битники Этот ваш кортекс для ламиров и недоучек ниасиливших ассемблер из 35 простых инструкций, которые легко выучить ©
|
|
|
|
|
Jul 12 2013, 11:35
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(Frolov Kirill @ Jul 12 2013, 13:13)  Вообще если параллельных задач очень много, то подход с RTOS не реализуем без костыпей и подпорок -- не хватит памяти (стек и т.п.) на каждую. Всё сведётся скорей к событийно-ориентированному программированию (именно такая модель применяется в GUI, где тоже есть множество относительно независимых "задач" работающих параллельно). А RTOS скорей полезна для создания небольшого количества изолированных задач, причём именно вытесняющая RTOS. Интересное мнение. На каком опыте основано? Какую RTOS применяли и для каких задач? И сколько это "небольшое количество изолированных задач"? 50 задач, например, это много или мало? Потом с трудом представляю себе большое количество одновременно выполняемых задач которым бы не требовался свой стек. Можете хоть умозрительный пример привести?
|
|
|
|
Сообщений в этой теме
rat Программное разделение Jul 11 2013, 10:49 megajohn очередь сообщений.
к примеру одной задаче нужно оп... Jul 11 2013, 11:06 _Артём_ Цитата(rat @ Jul 11 2013, 13:49) Как прав... Jul 11 2013, 11:50 molecul Цитата(rat @ Jul 11 2013, 14:49) День доб... Jul 11 2013, 12:39 CADiLO Не всегда удобно - GSM можно уложить спать или отк... Jul 11 2013, 12:52 _Артём_ Цитата(CADiLO @ Jul 11 2013, 15:52) Так в... Jul 11 2013, 13:30 CADiLO Хм.... Это что ж туда запихивать то собрались ? О... Jul 11 2013, 13:47 _Артём_ Цитата(CADiLO @ Jul 11 2013, 16:47) Хм...... Jul 11 2013, 15:22  alexdos Цитата(_Артём_ @ Jul 11 2013, 18:22) Виде... Jul 11 2013, 19:35   _Артём_ Цитата(alexdos @ Jul 11 2013, 22:35) Наро... Jul 11 2013, 20:11    sobr Цитата(_Артём_ @ Jul 12 2013, 03:11) И ка... Jul 12 2013, 00:00     AlexandrY Цитата(sobr @ Jul 12 2013, 03:00) Все, чт... Jul 12 2013, 04:54      firew0rker Цитата(AlexandrY @ Jul 12 2013, 11:54) По... Jul 12 2013, 05:33       megajohn Цитата(firew0rker @ Jul 12 2013, 09:33) К... Jul 12 2013, 06:01       AlexandrY Цитата(firew0rker @ Jul 12 2013, 08:33) М... Jul 12 2013, 06:17        alexdos Сколько программистов, и столько мнений. И это х... Jul 12 2013, 06:44        Frolov Kirill Цитата(AlexandrY @ Jul 12 2013, 10:17) Де... Jul 12 2013, 14:25         AlexandrY Цитата(Frolov Kirill @ Jul 12 2013, 17:25... Jul 12 2013, 15:53          Frolov Kirill Цитата(AlexandrY @ Jul 12 2013, 19:53) Т.... Jul 15 2013, 16:55           AlexandrY Цитата(Frolov Kirill @ Jul 15 2013, 19:55... Jul 15 2013, 19:40            sobr Цитата(AlexandrY @ Jul 16 2013, 02:40) В ... Jul 16 2013, 02:16            Frolov Kirill Цитата(AlexandrY @ Jul 15 2013, 23:40) Се... Jul 16 2013, 12:05             AlexandrY Цитата(Frolov Kirill @ Jul 16 2013, 15:05... Jul 17 2013, 06:28      sobr Цитата(AlexandrY @ Jul 12 2013, 11:54) Ра... Jul 12 2013, 12:54       AlexandrY Цитата(sobr @ Jul 12 2013, 15:54) Не с се... Jul 12 2013, 13:11        sobr Цитата(AlexandrY @ Jul 12 2013, 20:11) Да... Jul 12 2013, 14:49 firew0rker Цитата(CADiLO @ Jul 11 2013, 20:47) Хм...... Jul 12 2013, 02:22 Harbinger На MSP430 о 60К - тоже. С операционкой.
Для совсем... Jul 11 2013, 15:21 _Pasha Качества софта о 32кбайтах определяется архитектур... Jul 11 2013, 17:23 Harbinger Цитата(_Pasha @ Jul 11 2013, 20:23) В дан... Jul 11 2013, 18:22 Aner Используйте STM32F1xx, ...STM32F4xx и все проблемы... Jul 11 2013, 20:20 ArtemKAD ЦитатаИ какой функционал у таких железок?
Страниц ... Jul 11 2013, 21:20 rat Проект на STM32F105, иногда подвисает, судя по все... Jul 12 2013, 08:13 Aner не наблюдал такое, разве что в коде недосмотрели .... Jul 12 2013, 09:11 AlexandrY Цитата(Aner @ Jul 12 2013, 12:11) не набл... Jul 12 2013, 09:21 Aner Так это года как 3-4 назад было выявлено с первыми... Jul 12 2013, 09:36 rat Цитата(Aner @ Jul 12 2013, 16:36) Так это... Jul 12 2013, 09:42  Aner QUOTE (rat @ Jul 12 2013, 12:42) А можно ... Jul 12 2013, 12:49 vassabi Цитата('Frolov Kirill')Вы новичёк и недоуч... Jul 12 2013, 11:00 Aner Вот привыкли все к LwIP и нормальных стеков в глаз... Jul 12 2013, 12:56 ArtemKAD Цитата, не понятно как можно всё упихнуть в такой ... Jul 12 2013, 14:43 Frolov Kirill Цитата(ArtemKAD @ Jul 12 2013, 18:43) С ж... Jul 12 2013, 14:53  sobr Цитата(Frolov Kirill @ Jul 12 2013, 21:53... Jul 12 2013, 15:21 ArtemKAD ЦитатаИ с ассемблерами в 8кБайт дело обстоит так ж... Jul 12 2013, 16:49 zöner Цитатаесть несколько программных единиц: работа с ... Jul 15 2013, 17:18 Aner QUOTE (zцner @ Jul 15 2013, 20:18) распар... Jul 15 2013, 18:35 ArtemKAD ЦитатаТак вот в мире PC не пытаются строить програ... Jul 16 2013, 22:13 rat Вопрос в продолжение темы: прошу общих рекомендаци... Aug 7 2013, 03:30 Falkon_99 Писали про UART, DMA - рулит, и забыть про прерыва... Aug 7 2013, 09:04 =F8= Цитата(rat @ Aug 7 2013, 06:30) Вопрос в ... Aug 7 2013, 10:16
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|