E=mс2bedded
Pro |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Контакты: E-mail: embedded_pro@mail.ru AppNotes: Сотовая связь Отправка коротких SMS в
формате PDU Отправка длинных SMS в формате PDU Получение и декодирование
SMS Распределённые
вычислительные сети Обзор распределённых
вычислительных сетей Принципы построения распределённых вычислительных
сетей Встраиваемые решения Обзор встраиваемых
операционных систем Обзор
микропроцессоров ARM
Cortex-A BSP QNX Neutrino
для платы phyFLEX-iMX6 от PHYTEC |
Главная / Обзор встраиваемых
операционных систем Обзор встраиваемых операционных систем 17 сентября Данная статья
выполнена на основе материалов работы по выбору операционной системы для
встраиваемой системы, основанной на микроконтроллере ARM Cortex-A9/A15. В таблице приведено сравнение
представленных на рынке операционных систем для встраиваемых применений. Ниже
каждая из операционных систем описана более подробно. В тексте статьи Вы
сможете найти описание системы, цены на инструментальные и целевые лицензии,
контакты дистрибьюторов. Необходимо обратить
внимание на то, что данные сведения относятся к середине 2014 года. Некоторые
из характеристик операционных систем, особенно цены в рублях, могут потерять
со временем свою актуальность.
Примечания: [1] поддерживается только RealTime ядром ОС (см. описание); [2] при покупке одной инструментальной
лицензии; [3] продление тех. поддержки в основном
необходимо для обновления операционной системы; [4] в зависимости от сроков разработки может
быть выгоден выбор VxWorks или QNX6. Для разработки,
длящейся 1-2 года дешевле обойдётся VxWorks, более длительная разработка
обойдётся дешевле на QNX6. Для анализа применимости той или
иной операционной системы можно ознакомиться с данными сайта Dedicated Systems
Experts, представляющими собой независимый от
поставщиков ОС анализ производительности Windows CE7, RT Linux, QNX v6 (Neutrino), VxWorks и Linux на платформах x86, Power PC и ARM. Материалы представлены в формате pdf на английском языке и разбиты на следующие разделы: Общие положения
Описание ОСРВ
Сравнение ОСРВ
Тесты ОСРВ на платформах x86, Intel ATOM и ARM
Основные технические параметры: - Поддержка ARM
v7: да - Поддержка «жёсткого» реального времени: нет - Архитектура ядра: монолитное ядро - BSP для ARM: да - Дилер в России: нет - Характер тех. поддержки: отсутствует - Состав поставки: неизвестно - Стоимость целевой лицензии, за шт.: бесплатно - Стоимость инструментальной лицензии: бесплатно - Минимальное количество лицензируемых рабочих мест: неограниченно - Срок действия инструментальной лицензии: неограниченно - Открытость кода: 100% - Стоимость продления тех. поддержки: бесплатно UNIX-подобная бесплатная операционная система,
обладающая монолитным ядром, которое управляет процессами, сетевыми функциями, периферией и
доступом к файловой системе. Драйверы устройств
либо интегрированы непосредственно в ядро, либо добавлены в виде модулей,
загружаемых во время работы системы. Отдельные программы, взаимодействуя с
ядром, обеспечивают функции системы более высокого уровня. Основные технические параметры: - Поддержка ARM
v7: нет - Поддержка «жёсткого» реального времени: да - Архитектура ядра: монолитное ядро - BSP для ARM: нет - Дилер в России: нет - Характер тех. поддержки: отсутствует - Состав поставки: неизвестно - Стоимость целевой лицензии, за шт.: бесплатно - Стоимость инструментальной лицензии: бесплатно - Минимальное количество лицензируемых рабочих мест: неограниченно - Срок действия инструментальной лицензии: неограниченно - Открытость кода: 100% - Стоимость продления тех. поддержки: бесплатно Микроядерная бесплатная операционная система жёсткого реального времени
(ОСРВ), которая выполняет Linux как полностью
вытесняемый процесс. RT-Linux реализует запуск из микроядра реального времени ядра Linux как задачи с наименьшим приоритетом. В RT-Linux все прерывания обрабатываются микроядром
реального времени, которое включает собственный планировщик задач, обработчик
прерываний и библиотечный код. В случае отсутствия обработчика реального
времени для какого-то прерывания, оно передаётся в Linux.
Фактически Linux является простаивающей (idle) задачей ОСРВ, запускаемой только в том случае, если
никакая задача не исполняется в реальном времени. При этом на Linux-задачу
накладываются некоторые ограничения, которые, впрочем, прозрачны для
программиста. Основные технические параметры: - Поддержка ARM
v7: да - Поддержка «жёсткого» реального времени: нет - Архитектура ядра: монолитное ядро -
BSP для ARM: Cortex-A15 - только для R-Car M2 от Renesas, анонсированы на 2014 год. Cortex-A8/A9 - BSP есть - Дилер в России: Quarta, Москва - Характер тех. поддержки: неудовлетворительная - Состав поставки: средство разработки и отладки Windows Embedded Platform Builder 7 EMB English, ОСРВ Windows
Embedded
Compact 7 - Стоимость целевой лицензии, за шт.: от $9 до $16 - Стоимость инструментальной лицензии: $1
295 - Минимальное количество лицензируемых рабочих мест: 1 - Срок действия инструментальной лицензии: бессрочный - Открытость кода: 45% - Стоимость продления тех. поддержки: бессрочная Это семейство
встраиваемых операционных систем Microsoft Windows для применения в специализированных устройствах. У Microsoft есть две линейки продуктов: настольные (обычные ОС типа Windows XP/Vista/7/8) и встраиваемые (Windows Embedded). В свою очередь Win Embedded делится на три пакета: 1. Windows Embedded 2. Windows Embedded Standart 3. Windows Embedded Compact Windows Embedded Enterprise тот же пакет, что настольные операционки, только отличается типом лицензирования. Т.е.
для установки на настольные ПК необходимо покупать обычную
ОС, а для установки на ПК, являющимся частью встраиваемой системы, необходимо
покупать Win Emb Enterprise. Данная система не позволяет осуществлять свою компоновку в
зависимости от необходимых компонентов. Спроектирована
для x86 архитектуры. Windows Embedded Standart является аналогом Windows Embedded Compact в корне отличается от двух
предыдущих вариантов. Она предназначена для работы с процессорами x86, ARM, MIPS и SH. В пакет входят средства разработки,
операционная система, драйверы BSP. Исходный код системы, по словам разработчиков,
открыт на 45%. Минимальный объём монолитного ядра после компоновки – 10 МБт. Очень капризная система в режиме жёсткого реального
времени. Целевые лицензии стоят от $10 (от
десяти долларов). Лицензии приобретаются для каждого лицензируемого
устройства, лицензионные наклейки поставляются пакетами по 10 и 100шт. Единственным поставщиком Windows Embedded Compact является компания Quarta в Москве. Для начала с Microsoft подписывается лицензионное
соглашение, потом Microsoft позволяет Quarta продать покупателю операционной
системы пакет лицензионных наклеек. Цены на средства разработки и
целевые лицензии по состоянию на январь 2014 года: - средство разработки лицензируется
на разработчика, цена лицензии: 814-00345 Win Emb Platform Builder 7 EMB English ESD OEI DVD $1 295,00 - инструментальные
лицензии: TNA-00022 Win Emb Compact Vertical 7 EMB
ESD OEI (C7E) Runtime $12,00 884-00364 Windows Emb Compact Pro 7 EMB ESD
OEI (C7P) Runtime $16,00 884-00369 Windows Emb Compact 7 EMB ESD
OEI (C7T) Runtime $8,70 Оплата производится в
рублях по курсу ЦБ+3% Существует
несколько редакций ОС, отличающихся набором компонентов, включаемых в образ.
Сравнение редакций можно посмотреть по следующей ссылке: http://www.quarta-embedded.ru/products/windowsembedded/windowsembeddedcompact7/components.html Microsoft предоставляет
возможность воспользоваться триальным средством
разработки, скачать его можно отсюда (необходим LiveID): http://www.microsoft.com/windowsembedded/en-us/downloads.aspx Пакет разработчика зависит от версии операционной системы и
может включать: - для Windows CE 6.0 Visual
Studio 2005 + Platform Builder 6.0 - для Windows Compact 7.0 Visual
Studio 2008 + Platform Builder 7.0 - для
Windows Embedded Compact 2013 Visual Studio Professional 2012 + Platform Builder 8.0 Оптимизация системы под архитектуру
процессора: - для Windows CE 6.0 ARM
v4 - для Windows Compact 7.0 ARM
v5, ARM v6, ARM v7 - для Windows Embedded Compact 2013 ARM
v7 Thumb2 Пакеты драйверов, входящие в состав
операционной системы: - для
Windows CE 6.0 http://msdn.microsoft.com/en-US/library/ee481059(v=winembedded.60).aspx - для
Windows Compact 7.0 http://msdn.microsoft.com/en-us/library/ee481059(v=winembedded.70).aspx - для
Windows Embedded Compact 2013 http://msdn.microsoft.com/en-us/library/ee481059.aspx Многоядерная
архитектура процессора поддерживается, начиная с Windows Embedded Compact 7.0, также, начиная с Windows Embedded Compact 7.0, максимальный поддерживаемый объём ОЗУсоставляет
3ГБайт. Минимальный объём ядра – 512 КБайт, однако
это не функциональная сборка. Сборка рабочего целевого образа составляет от 4
до 6 МБайт. Отдельно стоит
отметить, что такие версии операционной системы, как Windows RT и Windows Phone предназначены только для запуска на специализированных
устройствах и продаются только крупным OEM производителям. Контакты
компании-дистрибьютора: - организация: «Кварта
технологии» - местоположение: Россия, Москва - сайт: http://www.quarta.ru - электронная почта: mse@quarta.com software@quarta.com - телефон: +7
(495) 234-40-18 - персоналии: Всеволод
Корюхов, менеджер по работе с корпоративными клиентами, департамент дистрибуции ПО, добавочный телефон 309 Валерий Милых, служба технической поддержки, департамент Windows Embedded, электронная почта v.milykh@quarta.ru Какую ОС из семейства Windows Embedded выбрать? Приведённая ниже
блок-схема поможет Вам выбрать нужную ОС в
зависимости от поставленной задачи. Щёлкните мышкой на схеме для её
увеличения. Основные технические параметры: - Поддержка ARM v7: нет, ожидается релиз в 2015 году - Поддержка «жёсткого» реального времени: нет - Архитектура ядра: микроядро - BSP для ARM: нет, ожидается релиз в 2015 году - Дилер в России: RT Soft, Москва - Характер тех. поддержки: удовлетворительная - Состав поставки: ОСРВ, визуальная среда разработки,
кросс-компилятор с библиотеками - Стоимость целевой лицензии, за шт.: $200 (при покупке от 100 лицензий) - Стоимость инструментальной лицензии: $18 300, включая 1 год технической
поддержки - Минимальное количество лицензируемых рабочих мест: 1 - Срок действия инструментальной лицензии: бессрочный - Открытость кода: 100% кода могут быть открыты за $300 000 - Стоимость продления тех. поддержки: 25%
от стоимости инструментальной лицензии в год ($4 600) Unix-подобная
коммерческая операционная система реального времени с монолитным ядром,
разработанная для встраиваемых систем, совместимая со стандартами POSIX и, в
последнее время, с операционной системой Linux. LynxOS используется преимущественно в авиации, системах
управления промышленными процессами и в области телекоммуникаций. Схема
лицензирования LynxOS очень похожа на многие другие
ОСРВ. Для России действуют специальные цены: пакет разработчика (включая саму
ОСРВ, визуальную среду разработки, кросс-компилятор
с библиотеками) стоит $18300, включая один год техподдержки,
лицензия бессрочная. Можно запросить и вариант покупки по ежегодной подписке,
аналогично VxWorks. На каждое
целевое устройство потребуется Runtime лицензия в
виде наклейки. При количестве 100 штук стоимость одной
такой лицензии составит около $200. Контакты
компании-разработчика: - организация: Lynx Software Technologies,
Inc. - местоположение: США, Сан Хосе - сайт: http://www.lynx.com - телефон: +1
(408) 979-39-00 - персоналии: Lee
Cresswell, Sales Director, EMEA, рабочий телефон +44
1296 670 196 электронная почта lcresswell@lnxw.com Контакты
компании-дистрибьютора: - организация: ЗАО "РТСофт" - местоположение: Россия, Москва - сайт: http://www.rtsoft.ru - телефон: +7
(495) 742-68-28 - персоналии: Алексей
Валерьевич Исаев, директор бизнес-направления
системного ПО, добавочный телефон 2264 электронная почта isaev@rtsoft.msk.ru Григорий Иванов, служба технической поддержки, электронная почта ivanov_gg@rtsoft.msk.ru Основные технические параметры: - Поддержка ARM
v7: да - Поддержка «жёсткого» реального времени: да - Архитектура ядра: микроядро - BSP для ARM: Cortex-A8 - Дилер в России: Pro Soft, Санкт-Петербург - Характер тех. поддержки: хорошая, исправление конкретных замечаний
может быть введено самим пользователем,
но их лицензирование требует согласования с разработчиком ОС - Состав поставки: средства разработки, драйверы и
система в виде функций с открытым кодом (включая ядро), JTAG отладчик на уровне ядра - Стоимость целевой лицензии, за шт.: от $100 до $1 000 в зависимости от
количества, от 50 штук скидка 15% - Стоимость инструментальной лицензии: от $7’000 в зависимости от
комбинации host/target, ежегодно продлеваемая - Минимальное количество лицензируемых рабочих мест: 1 - Срок действия инструментальной лицензии: 1 год - Открытость кода: 100% в составе поставки - Стоимость продления тех. поддержки: входит
в стоимость инструментальной лицензии, ежегодно продлеваемая Коммерческая микроядерная
операционная система реального времени, разрабатываемая компанией Wind River Systems
(США), ориентированная на использование во встраиваемых компьютерах,
работающих в системах жёсткого реального времени. VxWorks
является системой с кросс-средствами разработки прикладного программного
обеспечения. Иначе говоря, разработка происходит на инструментальном
компьютере, называемом host, для последующего
применения его на целевой машине - target. В VxWorks
применяются два вида лицензий: инструментальная (development
license) и целевая (target
license). Инструментальная лицензия нужна одна на
проект и приобретается для комбинации host/target, например Sun/680x0 или
РС/iХ86. Целевых лицензий необходимо столько, на сколько
целевых компьютеров будет установлена VxWorks (10, 100, 1000, ...). Как правило, целевые
лицензии приобретаются оптом. Стоимость целевой лицензии от $50 до $1000 в
зависимости от количества приобретаемых целевых лицензий. Стоимость
инструментальной лицензии в зависимости от комбинации host/target составляет от $12000 до $30000. Список поддерживаемых BSP приведён по следующей
ссылке: http://www.windriver.com/products/bsp_web/bsp_architecture.html?architecture=ARM VxWorks лицензируется подобно
QNX, но имеет не пожизненную лицензию, а продлеваемую. По
сравнению с QNX при сравнительно малых
сроках разработки (1-2 года) дешевле может выйти использование VxWorks. В зависимости от
количества лицензий цена каждой целевой лицензии сильно падает: от 50 штук
скидка 15%. В состав пакета
входят: средства разработки, драйверы и система в виде функций с открытым
кодом (включая ядро). Техническая поддержка и обновление от $7000 в год. Есть JTAG,
позволяющий производить отладку на уровне ядра (просматривать состояние
процессов, семафоров, флагов и т.д.). Полнофункциональное
ядро может занимать от 200 КБайт. Контакты
компании-разработчика: - организация: Wind River Systems, Inc. - местоположение: США, Аламеда - сайт: http://www.windriver.com - телефон: +1
(510) 748-41-00 Контакты компании-дистрибьютора: - организация: «ProSoft» - местоположение: Россия, Санкт-Петербург - сайт: http://www.prosoft.ru - телефон: +7
(812) 448-04-44 - персоналии: Николай
Горбунов Основные технические параметры: - Поддержка ARM
v7: да, оптимизированная - Поддержка «жёсткого» реального времени: да - Архитектура ядра: микроядро -
BSP
для
ARM: Cortex-A8/A9/A15 - Дилер в России: SWD Software, Санкт-Петербург - Характер тех. поддержки: хорошая, исправление конкретных замечаний
по системе затруднено - Состав поставки: ОСРВ (ядро в виде бинарной
библиотеки), визуальная среда разработки и отладки QNX Momentics - Стоимость целевой лицензии, за шт.: от 4 500р ($140) без GUI Foton, до 9 900р ($310) с Foton, только кратно 10 шт, от 100 штук скидки - Стоимость инструментальной лицензии: 554 000р ($15 000) - Минимальное количество лицензируемых рабочих мест: 3 - Срок действия инструментальной лицензии: бессрочная - Открытость кода: ядро закрыто, драйвера BSP в основном открыты
(~90%) - Стоимость продления тех. поддержки: 89 000р
($2’800) в год для обновления системы POSIX-совместимая коммерческая
операционная система реального времени, предназначенная преимущественно для
встраиваемых систем. Считается одной из лучших реализаций концепции микроядерных операционных систем. По состоянию на январь
2014 года установлены следующие цены на составляющие ОС с НДС: комплект разработчика
QNX SDP Momentics 6.4.1/6.5.0, 3 рабочих места – 554 000 р.; техническая поддержка
с обновлением на 1 год –
89 000 р.; Примечание: год технической поддержки входит в состав
комплекта разработчика. Потом техподдержка в
минимальном объёме осуществляется бесплатно, но для обновления системы
необходимо платить 89 000 р. единица выпускаемого
изделия, версия 6.5.0 без графической
оболочки Foton –
7 000 р.; с графической
оболочкой Foton – 8 650 р.; единица выпускаемого
изделия, версия 6.4.1 без графической
оболочки Foton –
4 650 р.; с графической
оболочкой Foton – 9 900 р. Целевые лицензии
покупаются только по 10 шт. Физически целевые лицензии представляют
из себя наклейки,
которые должны либо наклеиваться на изделие, либо передаваться отдельно
вместе с изделием конечному заказчику. Количество наклеек (стикеров) должно совпадать с количеством изделий с
предустановленным ОС QNX. При тиражах 100 шт. и
более возможно предоставление скидки. Для получения скидки SWD Software необходимо провести переговоры с
компанией QSS, владельцем которой является компания RIM. В состав
комплекта разработчика операционная система входит в виде бинарных библиотек.
Открыть код ядра можно, если написать бумагу в RIM. Но ещё не было
прецедентов открытия кода. Для того,
чтобы иметь право тиражирования и устанавливать целевые лицензии, необходимо
приобрести как минимум один комплект разработчика, стоимость которого
составляет 554 000 рублей с НДС. В эту стоимость входит услуга обновлений и
техническая поддержка в течение года. Количество комплектов разработчиков,
которые необходимо приобрести, определяется количеством разработчиков. Один
комплект разработчика даёт право устанавливать QNX Momentics на 3 рабочих места одного разработчика. Это сделано
для того, чтобы разработчик имел возможность работать как на стационарном
рабочем месте, так и на переносном, например ноутбуке, или дома. Компания SWD Software проводит на своей
материальной базе профессиональное обучение в сертифицированном учебном центре.
С перечнем курсов и семинаров можно ознакомиться по следующей ссылке: http://swd.ru/index.php3?pid=4 При покупке N комплектов
разработчиков SWD Software бесплатно обучает N сотрудников компании, которая
приобрела инструментальную лицензию. Возможно обучение большего числа
сотрудников на платной основе. Стоимость обучения одного разработчика по
одному из курсов составляет 40 000 рублей. Trial лицензия
на 30 дней доступна по следующей ссылке: http://swd.ru/index.php3?pid=501 По данной ссылке
есть возможность скачать учебник "Первые шаги" на русском языке. Со списком
поддерживаемого оборудования можно ознакомиться по ссылке: http://www.qnx.com/developers/hardware_support Список пакетов
поддержки оборудования BSP доступны по ссылке: http://community.qnx.com/sf/wiki/do/viewPage/projects.bsp/wiki/BSPAndDrivers Специалисты SWD Software готовы оказать помощь в выдачи
теоретического заключения о совместимости оборудования с ОСРВ QNX. Для более
подробного исследования на совместимость специалисты SWD Software готовы провести тестирование в
рамках лаборатории SWD Software. Результатом тестирования
является акт о совместимости с ОСРВ QNX 6.x. По
всем техническим вопросам необходимо обращаться по адресу support.qnx@swd.ru Лицензирование
QNX4 осуществляется по следующей схеме: 1.
Приобретаются комплекты разработки SDK.
Стоимость наборов SDK составляет от 60 до
190 тыс. рублей. 2.
Лицензируются конечные изделия с QNX. Стоимость лицензии в
среднем составляет от 32 до 55 тыс. рублей за единицу изделия. Контакты
компании-разработчика: - организация: RIM, Inc. - местоположение: Канада, Оттава - сайт: http://www.qnx.com - телефон: +1
(613) 591-09-31 Контакты
компании-дистрибьютора: - организация: «SWD software» - местоположение: Россия, Санкт-Петербург,
Варшавская ул., д. 11, лит. А - сайт: http://www.swd.ru - телефон: +7
(812) 633-08-60, +7 (812) 633-08-62 - персоналии: Филиппов
Дмитрий, менеджер по продажам, телефон +7
(812) 611-07-51 +7 (812) 611-07-58 мобильный телефон +7 (981) 762-23-90 электронная почта d.filippov@swd.ru Владимир Кузнецов, руководитель отдела сервисов, технический специалист телефон +7
(812) 346-89-52 +7 (812) 346-89-56 доб. 111 электронная почта v.kuznetsov@kpda.ru Основные технические параметры: -
Поддержка ARM v7: да -
Поддержка «жёсткого» реального
времени: да -
Архитектура ядра: микроядро - BSP для ARM: Cortex-A8/A9 -
Дилер в России: нет -
Характер тех. поддержки: удалённая, тех. поддержка от
производителя (USA) -
Состав поставки: ОСРВ в виде исходного кода ядра и
драйверов -
Стоимость целевой лицензии, за шт.: на линейку продуктов – от $180 000
с TCP и
FS, от $270
000 с добавлением GUI, на CPU/платформу – от $235 000 с TCP и FS, от $350 000 с добавлением GUI - Стоимость инструментальной лицензии: используются сторонние средства
разработки и отладки - Минимальное количество лицензируемых рабочих мест: не ограничено - Срок действия инструментальной лицензии: бессрочный - Открытость кода: 100% в составе поставки - Стоимость продления тех. поддержки: бессрочная,
включена в стоимость продукта Коммерческая операционная
система реального времени, поставляемая в виде исходных файлов системы и
подключаемых библиотек. После трансляции представляет из
себя монолитную программу, которая записывается в энергонезависимую
память микроконтроллера. Micrium uC/OS -
это портируемое, модульное, многозадачное ядро ОС
реального времени, подходящее для создания систем с детерминированным
поведением. Функциональное распределение модулей приведено на рисунке. Поддерживаемые
платформы ARM: Cortex-A9 Cortex-A8 Cortex-M4 Cortex-M3 Cortex-M1 Cortex-M0 Cortex-R4 ARM11 ARM9 ARM7 Цена на составляющие компоненты ОС:
Примечания: [1] лицензия на линейку продуктов
позволяет использовать ОС в определённой серии выпускаемых приборов; [2] лицензия на CPU или платформу даёт право устанавливать ОС на приборы с одним и
тем же типом процессора. При рассчёте
окончательной стоимости ОС необходимо складывать цену отдельных её частей,
которые требуются для решения поставленной задачи. Например, если требуется
спроектировать встраиваемую систему, которая будет выпускаться в виде
определённой линейки проду, обеспечивать работу с
файловой системой и предоставлять доступ к сети Ethernet по протоколу TCP,
то стоимость ОС будет рассчитывается следующим
образом: uC/OS-II or III core + uC/FS v4 core + uC/TCP-IP core
= $37 500 + $25 000 + $52 500 = $115 000 Т.е. ориентировочная
стоимость требуемой конфигурации ОС будет составлять не менее $115 000. Контакты
компании-разработчика: - организация: Micrium, Inc. - местоположение: США, Вестон - сайт: www.micrium.com - телефон: +1 (954) 217-20-36 - персоналии: David Coon, Sales Representative, добавочный телефон 105, электронная почта david.coon@micrium.com Российского представительства компании нет. Главная / Обзор встраиваемых
операционных систем |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||