Расширьте свою сеть медицинского обслуживания и безопасности за пределы вашего дома и убедитесь, что
безопасность и благополучие близких, скачав приложение CMC Critical Medical Care Medical сегодня.
Прямые оповещения означают более быстрое время отклика с оперативными обновлениями респондентов, поэтому вы знаете, что это поможет
действительно в пути.
Приложение экстренной помощи CMC Critical Medical Care соединяет вас с общенациональной сетью
частное вооруженное реагирование и службы экстренной медицинской помощи одним нажатием кнопки. Вы также можете:
Создавайте группы из членов семьи, друзей и коллег по работе, чтобы
безопасность и благополучие
Запускайте вооруженный ответ и оповещения о неотложной медицинской помощи для себя или любой из вашей группы
члены
Пригласите друзей и семью присоединиться к вашим группам
Поделитесь своим текущим местоположением с участниками вашей группы
Добавить иждивенцев в свой основной аккаунт
Конференция от CMC The Capital в Сингапуре , что интересного ?
Подпишитесь на премиум-услуги от имени своих иждивенцев с помощью одного простого ежемесячного
оплата
Смотрите в режиме реального времени с уведомлением в приложении, кто приходит к вам на помощь
Отправляйте оповещения друзьям и семье о помощи
Общайтесь в приложении с участниками вашей группы в безопасной среде
Создавайте гео-огороженные территории, чтобы обеспечить безопасность близких
Перейдите к любому участнику ваших групп
Последнее обновление
1 сент. 2021 г.
Карты и навигация
Безопасность данных
В этом разделе разработчики могут указать, как приложения собирают и используют данные. Подробнее о безопасности данных…
Источник: play.google.com
C компилятор ARM
CMC-ARM C компилятор для микроконтроллеров ARM и Cortex разработан фирмой Фитон.
- C компилятор удовлетворяет требованиям стандарта ANSI/ISO 9899-1990;
- Включает в комплект поставки заголовочные файлы с описаниями регистров специального назначения (SFR) наиболее популярных микроконтроллеров ARM и Cortex;
- Включает библиотеки для режимов ARM и Thumb;
- Поддерживает использование функций ARM и Thumb в одном файле исходного текста;
- Обеспечивает эффективную поддержку переключения режимов ARM/Thumb;
- Поддерживает режим встроенного ассемблера и специфические функции архитектуры ARM (функции прерывания, форматы регистров SFR, битовые операции);
- Поддерживает стандарт арифметики с плавающей точкой IEEE-754 для операций с двойной и одинарной точностью;
- Поддерживает генерацию кода для векторного сопроцессора с плавающей точкой (VFP);
- Формирует расширенную символьную информацию для поддержки отладки по исходному тексту.
C компилятор CMC-ARM
- Обеспечивает реализацию языка С:
- Полное соответствие стандарту ANSI/ISO 9899-1990
- Некоторые расширения ISO 9899-1999, в частности:
Актуальное видео-руководство по установке программы Reptilicus
- строчные комментарии в стиле С++
- макросы с переменным числом параметров
- синтаксис перечислений (enumerations) и списков инициализаторов
- Расширения, удобные при разработке ПО встраиваемых систем:
- бинарные константы
- автоматический вызов специальных функций в прологе/эпилоге
- размещение переменных по абсолютным адресам
- управление инициализацией статических переменных
- Платформо-зависимые расширения для реализации:
- обработчиков прерываний
- мониторных функций
- Набор встроенных функций для доступа к ресурсам процессора и генерации специальных инструкций
- Встроенный ассемблер
- ARM-7
- ARM-9
- Cortex-M3
- Cortex-M1
- Cortex-M0
- Эффективная поддержка переключения режимов ARM/Thumb
- Возможность использования функций ARM и Thumb в одном файле исходного текста
- Библиотеки для всех режимов, включая interworking
- Эффективное распределение локальных и временных переменных
- Оптимизация высокоуровневого промежуточного представления
- Платформо-зависимые низкоуровневые оптимизации
- Полная стандартная библиотека (free-standing implementation)
- Арифметика с плавающей точкой (стандарт IEEE-754) для операций с двойной и одинарной точностью
- Заголовочные файлы с описаниями регистров специального назначения (SFR) наиболее популярных микроконтроллеров Миландр, Philips/NXP LPC2000, Atmel SAM7x, STMicroelectronics ST7xx, OKI ML67Qx и др.
- EABI (опциональная)
- Размещение и выравнивание данных базовых и агрегатных типов
- Соглашение по использованию регистров и стека
- Конвенция вызовов
- Операции с volatile объектами
- Опционально – генерация формата elf
- CMSIS
- Частичная поддержка нестандартных расширений языка, используемых распространенными C компиляторами
Сравнение качества кода некоторых C компиляторов
Ниже представлены результаты тестирования следующих C компиляторов:
- IAR V5.41.2.21793 (IAR)
- Raisonance Ride7 v7.22.09.0203 GCC v4.3.2 (GCC)
- CMC-ARM (Фитон)
Сравнение для режимов ARM и Thumb проводилось на наборе исходных файлов, включающем:
- тесты из набора Raisonance Benchmark;
- стандартные dhrystone и whetstone.
Сравнение для Cortex-M3 проводилось на демонстрационном проекте STM32_Demo (STMicroelectronics), включающем 48 исходных файлов. Все C компиляторы тестировались в режиме максимальной оптимизации по размеру кода.
Особенности программирования на C для микроконтроллеров ARM
Фактически язык C является стандартным языком программирования встроенных систем, и компилятор C является составной частью любой интегрированной среды разработки. Поэтому мы рассмотрим некоторые особенности реализации языка C для целевой платформы ARM и сравним несколько компиляторных пакетов, входящих в состав популярных средств разработки для встроенных систем, в том числе:
- IAR Embedded Workbench (IAR Systems);
- Real View MDK (ARMKeil);
- CM-ARM (российская фирма «Фитон»);
- GNU – GCC, входит в состав среды разработки в качестве основного
- (например, RIDE компании Raisonance, CrossWorks компании Rowley Associates и др.)
- или дополнительного (MDK, CMARM) компиляторного пакета;
- ICCV7 (Image Craft).
Практически все компиляторы для целевой платформы ARM удовлетворяют стандарту ATPCS
(ARM Thumb Procedure Call Standard), разработанному компанией – разработчиком ядра.
В стандарте описаны требования к представлению основных типов данных, использованию стека и
конвенция вызова функций.
Ядро ARM использует классическую архитектуру load/store, т.е. в качестве операндов могут использоваться только значения, загруженные в 32разрядные регистры процессора. Поэтому хотя в системе команд представлены операции чтения из памяти и записи в память со всеми целочисленными типами данных, в том числе со знаковым и без знаковым расширением, при операциях с 8 и 16разрядными локальными переменными (char или short), необходимость преобразования типов может приводить к
заметному увеличению размера кода. Например, для функции:
будет сгенерирован следующий код:
MOV R1,R0,LSL #16 ;помещаем знаковый бит в старший разряд
MOV R1,R1,ASR #16 ; знаковое расширение
соответствующий код будет состоять из одной инструкции
Поэтому в отличие от 8разрядных архитектур, рекомендуется по возможности использовать тип int для параметров и локальных переменных, которые размещаются в регистрах.
Распределение регистров в соответствии со стандартом ATPCS приведено в таблице 2.
Как следует из таблицы, одновременно функция может содержать не более 14 локальных регистровых переменных, включая параметры (R0R11, R12 и R14). Остальные локальные переменные размещаются в памяти (стеке). Доступ к размещённым в памяти данным является более затратной операцией, и по возможности его следует избегать.
Принимая во внимание особенности конвенции вызовов и распределения регистров, можно сформулировать следующие простые правила оптимизации размера кода:
если количество скалярных параметров функции не превышает 4, они будут передаваться через егистры;
если необходимо передать в функцию более четырёх параметров, следует запаковать их в структуру и на неё передавать указатель;
не следует использовать более десяти локальных переменных одновременно (при условии, что у функции четыре параметра);
следует избегать функций с переменным числом параметров.
Влияние выравнивания на размещение структур в памяти
Из-за выравнивания занимаемый структурой размер зависит от порядка, в котором члены структуры разных типов входят в состав структуры, например:
будет занимать в памяти 12 байт:
Та же самая структура, объявленная как
будет занимать 8 байт, поскольку при таком размещении не требуется дополнительных байтов для выравнивания внутри структуры.
Если для работы с регистрами специального назначения МК используются структуры с битовыми полями, что позволяет сделать код для операций с отдельными разрядами периферийных устройств хорошо читаемым и легко поддерживаемым, следует обратить внимание на реализацию работы с битовыми полями в конкретном компиляторе.
Так, C компилятор ARM — GCC имеет такую особенность: если битовое поле не выходит за пределы одного байта, для операций с этим битовым полем всегда используются «оптимальные» байтовые инструкции
чтения и записи, что может приводить к Data Abort при обращении к регистрам периферии размером в 4байтное слово.
По стандарту языка C битовые поля имеют тип int.
Такие C компиляторы ARM, как IAR, RVCT, CMARM поддерживают расширение языка C, позволяющее описывать битовые поля любым базовым целочисленным типом.
При этом выравнивание ячейки памяти, в котором поле находится, и обращение к битовому полю определяется типом. Если битовое поле описано как short, то и для обращения к нему компилятор всегда будет использовать соответствующие инструкции чтения и записи полуслова;
если оно описано как int – компилятор C будет использовать только инструкции чтения и записи слова.
Более подробно этот механизм описан в документации на компиляторы.
Представление памяти микроконтроллера
Существенным моментом, связанным даже не с C компилятором, а с компоновщиком и средой разработки, является представление карты памяти микроконтроллера (ROM/Flash, RAM, отображаемые в память регистры периферийных устройств, векторы прерываний) программными средствами и механизм управления размещением кода и данных в физической памяти.
Как правило, распределение памяти для МК одного производителя сохраняется от одного семейства МК к другому: размеры физической памяти изменяются, но стартовые адреса для памяти одного и того же типа остаются неизменными. Микроконтроллеры разных фирм с архитектурой ARM, даже с одинаковыми
ядрами ARM, значительно отличаются друг от друга. Поэтому на практике могут оказаться существенными следующие особенности ПО: поддерживается ли МК конкретного производителя средой разработки, насколько наглядно и просто можно модифицировать распределение памяти, насколько гибко компилятор и компоновщик могут управлять размещением сегментов с кодом и данными.
Например, для компоновщика GNU конфигурация ld и размещение сегментов (секций) в памяти задаётся с помощью довольно сложного языка сценария и не обладает достаточной гибкостью.
Следует иметь в виду, что в системе команд ARM/Thumb есть инструкции знакового и без знакового умножения, но отсутствуют инструкции деления (оно реализуется программно). Поэтому рекомендуется вместо операций деления использовать операции сдвига.При разработке систем реально го времени следует принимать во внимание, что инструкции ARM являются «атомарными», т.е. исполнение инструкции не может быть прервано обработчиком прерывания.
Если в одной инструкции осуществляется запись в большое число регистров, использование инструкций чтения и записи группы регистров может существенно увеличивать время реакции на возникновение прерывания. Эти инструкции обычно генерируются компилятором в прологе и эпилоге функций с целью сохранения и восстановления регистров, используемых для размещения локальных переменных функции (за исключением регистров R0R3 и R12, которые являются scratch регистрами).Во избежание таких задержек следует сокращать количество локальных переменных в функции (тогда почти все они могут быть размещены в scratch регистрах).
Кроме того, некоторые компиляторы имеют специальное средство, позволяющее ограничить число сохраняемых/восстанавливаемых регистров.
Какой C компилятор выбрать
Внедрение процессорного ядра ARM в 32 разрядные микроконтроллеры (МК) для встраиваемых систем и фактическое превращение архитектуры ARM в промышленный стандарт привели к тому, что аппаратные и программные средства разработки для этих МК предлагают практически все фирмы, выпускающие подобные продукты.Доступность и качество средств разработки и отладки являются важным фактором при принятия решения о переходе на новую платформу, поэтому рассмотрим их более подробно.
Для процессоров ARM в настоящей момент существует множество программных средств разработки (компиляторов, отладчиков, интегрированных сред программирования), от свободно распространяемого программного обеспечения (проект GNU) до интегрированных пакетов, предлагаемых крупнейшими мировыми компаниями – производителями средств разработки для встроенных систем, такими как IAR Systems или ARM.При обсуждении средств разработки ПО для встраиваемых приложений мы будем ориентироваться на задачи, выполняемые в реальном времени без применения операционных систем, что соответствует типичному использованию 8 разрядных микроконтроллеров.
IAR EWARM 4.41A компании IAR Systems.
Продуманная оболочка с хорошими возможностями разработки и отладки, имеет единый интерфейс для различных семейств микропроцессоров. Среда работает только с собственным C компилятором IAR, подробно и качественно документирована, содержит много примеров.
Keil mVision3 компании Keil.
Входит в состав KeilARM Real View MDK. Простая в освоении оболочка, хорошо известная разработчикам систем на основе целевой архитектуры MCS51. В состав пакета входит свежая версия C компилятора от компании ARM RVCT
3.0 (Real View Compilation Tools), но среда также предусматривает интеграцию с собственным компилятором от Keil, с компилятором GNU для ARM (gcc) и с более ранней версией компиляторного пакета от ARM, ADS (ARM Development Suite).
Имеются некоторые трудности при установке на один компьютер нескольких пакетов mVision для разных семейств микроконтроллеров.
CM-ARM. Среда разработки компании «Фитон».
Работает с собственным C компилятором CMC-ARM и с C компилятором GCC; Предусмотрена возможность интеграции с C компилятором IAR. Простая в освоении, хорошо оснащённая оболочка, имеющая русский интерфейс.
Визуализированная настройка распределения памяти: можно задать неограниченное число областей памяти ROM/RAM/Flash и управлять размещением сегментов.
Кроме того, CM-ARM может использоваться самостоятельно в качестве отладчика.
Среда работает с собственным C компилятором и, в отличие от остальных, не содержит встроенного симулятора отладчика.
Кроме того, демоверсия C компилятора плохо документирована и не поддерживает генерацию кода в режиме Thumb.
И, наконец, если вы предпочитаете сэкономить на компиляторе и прочих программных средствах разработки, – используйте проект GNU: в Сети можно найти достаточно компактные библиотеки для встроенных систем на основе микроконтроллеров ARM различных производителей.
Однако использование свободно распространяемых средств – это всегда лотерея. Они, как правило, слабо документированы и имеют «под водные камни», некоторые из которых были упомянуты выше.
Для всех коммерческих компиляторных пакетов, которые мы рассмотрели, существуют демоверсии.
Дистрибутив пакета GCC имеется как в исходных кодах, так и в бинарном виде. Практически все демоверсии снабжены многочисленными приме рами для микроконтроллеров ARM различных производителей, что позволяет самостоятельно оценить удобство работы с конкретным пакетом и выбрать тот, который подходит именно вам.
Для принятия окончательного решения следует провести анализ средств отладки.
Литература
1. Polastre J., Szewczyk R., Culler D. Computer Science Department. Univ. of California,
4. Wilbrink J. Facilitation the Migration from 8bit to 32bit Microcontrollers. ECE, February, 2005.
5. http://www.arm.com , http://www.nxp.com , http://www.atmel.com , http://mcu.st.com , http://www.analog.com , http://www.ti.com , http://www2.okisemi.com .
7. IAR Systems, www.iar.se .
8. RealView MDK, www.keil.com/arm .
9. Компания Фитон, www.phyton.ru.
10. CrossWorks for ARM, www.rowley.co.uk/arm/ .
11. Image Craft, http://www.imagecraft.com/ .
115088, Москва, БЦ Бизнес-квартал IQ-Park, Угрешская ул, дом 2, стр. 57, офис 403 В
тел.: 8 (495) 780-9251 (многоканальный)
Источник: www.phyton.ru
Советы по открытию файла CMC
Не удается открыть файл CMC? Ты не единственный. Тысячи пользователей ежедневно сталкиваются с подобными проблемами. Ниже вы найдете советы по открытию файлов CMC, а также список программ, поддерживающих файлы CMC.
CMC расширение файла
Comic Collector Collection Data |
Bitz Pixelz BV. Другие файлы состоит из # ЧИСЛА # похожих файлов. Comic Collector Collection Data появляется в операционных системах 1 как функциональный файл. Эти системы состоят из Windows, хотя иногда его можно найти в другой системе, но он не будет работать.
Для обработки этого файла рекомендуется использовать Comic Collector. Это программа, созданная Bitz Pixelz BV и установить. Шаг 4. Проверьте наличие следующих проблем с файлом CMC.Если описанные выше действия не помогли, вы можете предположить, что сам файл неправильный. Это может быть связано с самим файлом, самые чистые проблемы: Файл пустой или неполныйРазмер затронутого файла может быть меньше 0 КБ или меньше ожидаемого. Чаще всего это вызвано проблемой при загрузке файла CMC. Файл следует загрузить еще раз, убедившись, что процесс завершился правильно. CMC файл зараженСамая частая причина здесь — компьютерные вирусы. Выполните проверку на вирусы с помощью доступного и актуального антивирусного программного обеспечения. Если это невозможно, вы можете использовать онлайн-сканер. Сканирование должно охватывать весь компьютер, а не только файл CMC, который мы хотим открыть. Однако помните, что не каждый зараженный файл CMC можно восстановить, поэтому важно регулярно делать резервные копии. Файл находится в другой версииЭто может произойти, особенно когда программа разрабатывается динамически и структура файлов CMC меняется со временем. На своих веб-сайтах разработчики обычно предлагают бесплатные решения таких проблем, например, в виде программы преобразования или более старой версии программы. Файл поврежденПричин неудачи может быть много. Метод ремонта должен быть адаптирован к типу файла и повреждению. Некоторые программы предлагают возможность восстановления данных из поврежденных файлов CMC. Вы можете восстановить файл из резервной копии или использовать Bitz https://file.tips/ru/extension/cmc» target=»_blank»]file.tips[/mask_link]
Загрузка ...
|