Atollic truestudio

Atollic TrueSTUDIO

Интегрированная среда разработки программ для ARM-процессоров, включающая в себя GNU компилятор и отладчик.

Среда разработки Atollic TrueSTUDIO была создана на базе популярной платформы с открытым исходным кодом – Eclipse.

Программа включает в себя: редактор кода (с поддержкой языков C/C++ и ассемблера), менеджер проектов, C/C++ компилятор и систему сборки исходного кода (с возможностью параллельной компиляции), отладчик (с поддержкой функции многоядерной отладки), а также различные дополнительные инструменты для: анализа кода (в соответствии со стандартом кодирования MISRA-C), управления задачами, отслеживания изменений/обновлений, автоматического тестирования созданного кода.

Atollic TrueSTUDIO поддерживает множество ARM-ядер (семейств ARM9, ARM7, Cortex-A, Cortex-R, Cortex-M и т.д.

) от таких известных вендоров, как Atmel, Infineon, Freescale, NXP, Silicon Labs, Renesas, Spansion, STMicroelectronics, Toshiba, Texas Instruments и некоторых других. Также имеется поддержка двухъядерных и многопроцессорных устройств.

Официально среда разработки взаимодействует с отладчиками ST-LINK (и ST-LINK/V2) от STMicroelectronics, SAM-ICE от Atmel, Segger J-Link, OSJTAG и P&E Multilink.

Данная IDE располагает собственным мастером настройки, помогающим прописать все ключевые параметры разрабатываемого приложения: название и тип проекта, производителя чипа, семейство и модель микроконтроллера, модель применяемой отладочной платы, место размещения кода в памяти устройства и многое другое.

Исполняемый файл (main.c), представленный в инспекторе кода, по умолчанию формируется из шаблона, подготовленного для нескольких плат. Он содержит довольно много лишней информации, которую при желании можно удалить.

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

Во время работы процесса отладки на экран выводится различная полезная информация – фрагменты выполняемого в данный момент кода, фрагменты кода ассемблера, соответствующие выполняемой инструкции, значения текущих переменных. Среда разработки Atollic TrueSTUDIO генерирует файлы прошивки уникального формата – *.elf.

Данная среда разработки была написана специалистами компании Atollic. Организация была основана в 2003 году группой разработчиков встроенного ПО для автомобильной и аэрокосмической промышленности.

Помимо TrueSTUDIO компания Atollic предлагает следующие продукты: TrueANALYZER для анализа кода, TrueVERIFIER для тестирования программного обеспечения, TrueSTORE для распространения проектов через интернет.

Atollic TrueSTUDIO является коммерческим ПО и, следовательно, стоит денег. Однако разработчики дают возможность ознакомиться с их продуктом, представив бесплатную версию. Предложенный вариант среды разработки, TrueSTUDIO Lite, не имеет ограничений по времени пользования и размеру создаваемого кода.

Демоверсия включает откомпилированные динамические библиотеки и допускает разработку полноценных приложений. Однако в ней отсутствует поддержка С++ и расширенного программного инструментария, нет возможности для создания коллективной работы, в частности интеграции с системами контроля версий и управления ошибками/задачами.

Доступ к полным возможностям приложения можно получить путем покупки версий TrueSTUDIO Pro и TrueSTUDIO Premium.

Программа Atollic TrueSTUDIO представлена на английском языке. На начальном этапе установки софта предлагается выбрать английское, китайское, корейское или японское меню. Русификатора к данной IDE нет.

Приложение требует 2 ГБ оперативной памяти, около 4 ГБ свободного дискового пространства и подключение к интернету. Инсталляционный пакет включает в себя все необходимые библиотеки и драйверы сторонних производителей, полный набор справочной информации и технической документации на английском языке.

Кроме того, приложение поддерживает свыше 1150 бесплатных примеров проектов, которые можно легко загрузить из Сети.

Программное обеспечение было разработано для операционных систем семейства Microsoft Windows – XP, Vista и 7.

Распространение программы: платная. Есть бесплатная версия TrueSTUDIO Lite с рядом ограничений

Официальный сайт Atollic TrueSTUDIO: http://www.atollic.com

Скачать Atollic TrueSTUDIO

Обсуждение программы на форуме

Источник: http://cxem.net/software/atollic_truestudio.php

Микроконтроллеры Процессоры, проекты, программирование

Запуск IDE ничем не отличается от подобной процедуры для других программ. После двойного клика на иконку, первым делом появится окно Select Workspace, запрашивающее рабочую папку проекта. После выбора нужной папки открывается приглашение Atollic TrueSTUDIO, а затем рабочее окно среды программирования.

После открытия основного окна из выпадающего меню File, выбирается пункт New, в котором выделяется раздел Project и пункт C Project.

Открывается мастер настройки проекта, пошагово определяющий основные параметры. Самым важным является первое окно C Project, в котором вводятся имя проекта Project Name и его тип – Project Type. Последний пункт, при использовании плат от STMicroelectronics, должен равняться STM32 C Project.

Во втором окне мастера проекта, под названием TrueSTUDIO Build Settings, самым важным является пункт Evaluation Board, в котором необходимо выбрать название используемой отладочной платы, в данном случае STM32_Discovery. В оставшихся окнах настройки больше ничего менять не нужно.

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

Для отображения исполняемого файла в инспекторе кода следует открыть папку SRC, и выбрать файл main.c. Данный файл создается из шаблона, предназначенного для нескольких плат.

Поэтому в нем достаточно много определений, не нужных в первом проекте. При желании всю лишнюю информацию можно убрать.

Разработка первой программы

Для первого проекта использован набор библиотек stm32vldiscovery_package, поставляемых STMicrolectronics. Специально для платы STM32 Discovery существует библиотека STM32vldiscovery, в которой описаны функции работы с устройствами, расположенными на плате.

Программа для STM32 Discovery не использует никаких процедур работы с периферийными устройствами, кроме встроенных светодиодов. Мигание реализовано циклом задержки. Для этой цели можно использовать встроенные таймеры, но для простоты проекта они не задействованы.

/* Includes */#include #include “stm32f10x.h”#include “STM32vldiscovery.h”static __IO uint32_t TimingDelay;void Delay(uint32_t nTime);void TimingDelay_Decrement(void);/** Тело программы */int main(void){/** Настройка портов**/ STM32vldiscovery_LEDInit(LED3); STM32vldiscovery_LEDInit(LED4); STM32vldiscovery_LEDOff(LED3); STM32vldiscovery_LEDOff(LED4);/** Основной цикл **/ while (1) { STM32vldiscovery_LEDOn(LED3); STM32vldiscovery_LEDOff(LED4); Delay(500000); STM32vldiscovery_LEDOff(LED3); STM32vldiscovery_LEDOn(LED4); Delay(500000); }}/** Подпрограмма задержки**/void Delay(uint32_t nTime){ TimingDelay = nTime; while(TimingDelay != 0) { TimingDelay–; }

}

Запуск и отладка программы

После того как код набран, можно перейти к запуску и отладке программы. Делается это нажатием кнопки DEBUG (зеленый жучек) или клавиши F11. После этого программа откопилируется, и если все пройдет успешно, откроется окно настройки отладчика, в котором можно просто нажать Ok. Далее происходит запуск встроенной системы отладки, и прошивка программы в микроконтроллер.

Работа с отладчиком не отличается от других подобных систем. Например, нажимая кнопки пошагового исполнения F5 или F6 можно проследить работу программы по отдельным строкам кода, а после нажатия F8, контроллер начнет нормальное исполнение программы. В процессе отладки на плате мигает красный светодиод COM.

You have no rights to post comments

Источник: https://mcucpu.ru/index.php/stm32/69-stm32firstproject

1. Введение

Для уроков нам потребуются макетная плата, среда разработки и программатор. От выбора этих составляющих будет зависеть время разработки.

Выбор макетной платы.

На данный момент можно найти огромное количество различных макетных плат.

Производители предлагают нашему вниманию платы с минимальным набором элементной базы, в которых нет периферии, но выведена вся контактная группа МК.

Или же напичканные различной периферией, с помощью которых можно опробовать различные внешние устройства или разработать полноценный проект, а после спроектировать и развести свой вариант платы.

Для новичков часто советуют приобретать DISCOVERY от STMicroelectronics. Это хороший совет – такие макетные платы содержат неплохой набор часто используемой периферии. Естественно, они содержат разъемы для внешних соединений, на которые подведены выводы контроллера.

Так же, что является большим плюсом, на них встроен программатор ST-Link. Т. е. имея Discovery, вам уже не потребуется программатор. При этом, вы можете использовать программатор Discovery для прошивки других плат.

Со списком макетных плат вы можете ознакомиться на официальном сайте www.st.com.

STM32F4-discovery

Я же остановился на платах серии Open от китайской компании Waveshare. Преимуществом этих плат является модульность и довольно большой выбор “обвеса”.

Выбор среды разработки

По средам мы имеем несколько популярных вариантов:

  • IAR. Коммерческая. Бесплатная версия ограничена по объему исполняемого кода.
  • Keil uVision. Коммерческая. Бесплатная версия ограничена по объему исполняемого кода.
  • Atollic TrueStudio. Основана на Eclipse, но, тем не менее, является коммерческой.
  • CooCox IDE (CoIDE). Тоже основана на Eclipse, но бесплатна. Включает в себя всё для работы с ARM, позволяет докачивать необходимые библиотеки. Умеет работать с различными отладчиками.
  • Чистый Eclipse с плагином ARM и компилятором ARM-GCC.

Начинающим советую CoIDE. Данная среда имеет все необходимые инструменты для разработки, а так же довольно проста и удобна для работы.

Я работал с IAR и CoIDE, а сейчас остановился на Keil. И вряд ли когда нибудь буду работать в другой среде. Keil представляет собой отличный инструмент для разработки. Удобный, простой в настройке и понимании. Работает со всеми популярными программаторами, имеет менеджер библиотек и многие другие вкусняшки.

Выбор программатора

На данный момент существует множество различных программаторов для МК на базе ARM Cortex-M. Нам же для полноценной работы необходимо иметь возможность отладки, что позволит в реальном времени отслеживать работу программы для поиска неисправностей.

А теперь пробежимся по вариантам:

  • ST-LINK V2. Отладчик от STMicroelectronics. Поддерживается всеми популярными средами. На сайте производителя можно скачать необходимые для работы утилиты и драйвер. Шьет как МК STM32, STM8, так и МК других производителей на базе ARM Cortex-M по протоколам JTAG и SWD. Утилита для прошивки поддерживает только МК STM. Также этот программатор можно собрать самому.
  • CoLinkEx. Отладчик от CooCox. Так же имеет полный функционал и поддерживается популярными средами. Есть возможность собрать самому.
  • ULINK Pro. Отладчик от Keil.

Отладчиков довольно много, вопрос только в цене, доступности и поддержке средой. Я пользуюсь ST-LINK. И за все время работы с ним не испытывал каких либо проблем. Прошивал им в том числе и отечественные МК 1986ВЕ9х от компании Миландр.

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

Источник: http://stm32dev.ru/lessons/6-vvedenie.html

Начинаем работать в STM32CubeMX. Часть 3

Продолжаем цикл про основы работы STM32MXCube и программированию микроконтроллеров STM32.

→ Часть 1

→ Часть 2
В прошлых частях мы освоили базовые настройки микроконтроллера, работу с GPIO, таймером, DMA и DAC. В этой части мы познакомимся с ADC и USB.

Небольшое вступление к третьей части

Вначале я хочу сказать, что с этой части я буду использовать отладочную плату NUCLEO-F767ZI. Эта плата более доступна, чем STM32F746G Discovery, использует микроконтроллер в корпусе LQFP144, а не BGA, и сама плата более удобна для встраивания в разные DIY-проекты. Она имеет Ethernet и USB, а также JTAG-отладчик.

Недостатком платы является отсутствие LCD, но он нам пока не нужен. Хотя плата имеет другой микроконтроллер, все проекты из предыдущих частей переносятся на неё почти без изменений (нужно только поменять номера пинов). Также следует учесть, что на этой плате микроконтроллер тактируется источником 8 МГц.

Кварц для тактирования микроконтроллера предусмотрен схемой, но не распаян, сигнал 8 МГц снимается с JTAG-отладчика. Если ваш проект использует интерфейс USB, то желательно включать тактирование от HSE, а не от внутреннего RC-осциллятора, так как RC-осциллятор не обладает достаточной точностью и стабильностью частоты.

При попытке включить RC-осциллятор при наличии в проекте USB, STM32CubeMX выдаст предупреждение и предложит переключиться на HSE (то есть на внешний высокостабильный источник тактирования). Для того, чтобы задействовать внешний источник тактирования (8МГц) на вкладке PinOut следует в пункте RCC включить HCE и выбрать пункт BYPASS Clock Source.

На практике USB-интерфейс всё равно работает, даже от RC, но лучше не рисковать.

Я перевёл на эту плату проекты из предыдущих частей и залил их на гитхаб.

В комментариях к предыдущим частям были вопросы по поводу IDE. STM32CubeMX позволяет автоматически создавать проекты для различных IDE: IAR (EWARM), MDK ARM v4, MDK ARM v5, Atollic TRUEStudio, SW4STM32 и др.

Я пользуюсь Atollic TRUEStudio, который доступен для скачивания с официального сайта бесплатно. Также я проверил материал из предыдущих частей и внёс ряд поправок.

Хочу поблагодарить Shamrel за ценные комментарии к предыдущей части.

USB VCP

Одним из самых простых режимов работы USB является режим VCP — Virtual COM Port. Настройка работы с ним потребует от вас минимальных усилий.

В STM32CubeMX находим на вкладке Pinout раздел USB_OTG_FS и устанавливаем Mode=Device_Only:В разделе USB_DEVICE устанавливаем Class For FS IP в режим CDC VCP (Communication Device Class Virtual Com Port):Теперь нужно настроить конфигурацию тактирования так, чтобы частота USB составляла 48 MHz:Идём дальше, на вкладку Configuration, и отключаем параметр VBUS Sensing:Генерируем код и открываем проект в IDE. Находим файл usbd_cdc_if.c и в него вставляем следующее:static int8_t CDC_Receive_FS (uint8_t* Buf, uint32_t *Len)
{ /* USER CODE BEGIN 6 */ USBD_CDC_SetRxBuffer(&hUsbDeviceFS, &Buf[0]); CDC_Transmit_FS(Buf, *Len); USBD_CDC_ReceivePacket(&hUsbDeviceFS); return (USBD_OK); /* USER CODE END 6 */ }иuint8_t CDC_Transmit_FS(uint8_t* Buf, uint16_t Len)
{ uint8_t result = USBD_OK; /* USER CODE BEGIN 7 */ USBD_CDC_SetTxBuffer(&hUsbDeviceFS, Buf, Len); result = USBD_CDC_TransmitPacket(&hUsbDeviceFS); /* USER CODE END 7 */ return result;
}Здесь реализован режим эха: всё, что приходит в порт, мы немедленно отправляем обратно. Компилируем и прошиваем микроконтроллер. Затем подключаем разъём User USB платы к компьютеру. Система должна обнаружить новый COM-порт. Для Linux: проверяем ls /dev/tty*, появилось устройство /dev/ttyACM0. Проверяем, и здесь нас ждут ещё сюрприз: отказано в доступе. Нужно добавить себя в группу dialout:sudo adduser user dialout(где user — ваше имя пользователя)

Для работы с устройством в Windows вам понадобится скачать и установить драйвер. Для работы в OS X и Linux специальный драйвер не нужен.

Запускаем (например) Putty, настраиваем параметры порта. Они должны совпадать с параметрами, указанными в свойствах порта (см. «диспетчер устройств/порты»). Пробуем открыть порт в Putty и что-то послать в порт:Если порт не открывается, можно попробовать выйти из режима отладки в IDE и перезапустить плату. Всё должно заработать.

Дополнение от desinerSTM:

Как мы увидели, работа с USB в режиме виртуального COM-порта очень проста. Единственный недостаток этого режима — очень низкая скорость передачи данных. Интерфейс USB в режиме Full Speed обеспечивает до 12 Мбит/c, в режиме High Speed — до 480 Мбит/c, но VCP ограничивает скорость жалкими 128 кбит/c. Можно сделать высокую скорость передачи данных, но пока отложим это до следующего раза.

АЦП

Сейчас попробуем запустить АЦП, получить с него значения и отправить на компьютер, реализовав очень простой (и очень медленный) «осциллограф». Чтобы было интереснее, мы подадим на АЦП синусоидальный сигнал, сформированный ЦАП. Так как мы уже делали это в прошлой части, я просто скопирую код в новый проект (с небольшими изменениями, которые большой роли не играют).

Сначала немного об АЦП, встроенном в микроконтроллер. Микроконтроллер STM32F767ZI имеет три 12-разрядных АЦП, типа SAR (последовательного приближения), имеющие производительность до 2 MSPS (млн. выборок в секунду). Этот тип АЦП отличается высокой скоростью преобразования, но меньшей точностью, чем сигма-дельта АЦП. Вход опорного напряжения VREF соединён с VDDA, и, через индуктивность, с VDD.

Таким образом, опорное напряжение в нашем случае равно 3,3В. Особенностью SAR ADC является использование на входе схемы выборки-хранения, содержащей конденсатор. В момент выборки значения сигнала конденсатор подключается ко входу и заряжается до величины входного сигнала.

Если источник сигнала будет иметь слишком большое внутреннее сопротивление, конденсатор не успеет зарядиться полностью, и мы получим заниженное значение. Этот и другие моменты использования АЦП изложены в [1]. АЦП данного микроконтроллера имеет множество режимов работы [2], мы рассмотрим только один из них.

Попробуем получить одновременно два значения сигнала с двух АЦП, строго синхронно, и записать их в буфер через DMA. Итак, создаём новый проект, добавляем в него уже готовый код для генерации синусоиды на DAC и для USB VCP (через него мы будем отсылать данные на компьютер). Далее (проводами) соединяем выход ЦАП с входами АЦП1 и АЦП2.

Для того, чтобы как-то различать сигналы на аналоговых входах, я соединил АЦП1 c ЦАП напрямую, а АЦП2 — через делитель напряжения на переменном резисторе, чтобы можно было менять амплитуду сигнала.

Осторожно, аналоговая схемотехника!Если вы будете подавать на вход АЦП сигнал от внешнего источника, следует помнить, что сигнал на любом входе микроконтроллера должен быть ограничен значениями 0 — Vcc, что в большинстве практических случаев приводит к необходимости сдвига и усиления (или ослабления) сигнала.

Также следует учесть, что в микроконтроллерах STM32 используются АЦП последовательного приближения (SAR), которые потребляют от источника сигнала довольно большой ток в момент измерения, и требуют источника сигнала с низким импедансом.Рис. 1. Схема выборки-хранения SAR ADC (не из STM32, но совершенно аналогичный) В моменты выборки сигнала конденсаторы (рис.

1) подключаются ко входу АЦП и должны зарядиться до полного уровня сигнала за очень короткое время, потребляя при этом значительный ток. Если источник сигнала будет иметь большое сопротивление, они не успеют зарядиться, и показания АЦП будут неверными. На практике это означает, что мы должны в большинстве случаев использовать внешний буферный усилитель.

Так как сегодня мы сосредоточимся на программных аспектах задачи, мы можем обойтись без усилителя, но следует помнить, что без усилителя показания АЦП будут существенно искажены, и в реальных проектах он нужен.Рис. 2. Схема выборки-хранения вызывает провалы уровня сигнала на входе АЦП. К сожалению, в документации STM32 эти вопросы рассмотрены слабо, но я могу порекомендовать руководство [3].

Если читателям будет интересно, я могу рассмотреть основы схемотехники аналоговых узлов сопряжения сигналов с АЦП в следующей статье.Нам нужны будут в нашем проекте два таймера. Один из них будет задавать период работы ЦАП, второй — АЦП. Настроим аналого-цифровой преобразователь на работу в двухканальном режиме с одновременной выборкой. Выборка будет происходить по таймеру TIM2.

Полученные значения будут складываться в буфер с помощью DMA. Мы будем использовать однократный режим работы DMA (есть также циклический, с ним мы уже познакомились при изучении ЦАП). После того, как буфер заполнится значениями с АЦП, мы копируем его содержимое в другой буфер (с некоторой обработкой), передаём его через USB и запускаем процесс снова.

Также для отладки и индикации режима работы мы используем два порта GPIO, к которым подключены светодиоды. Итак, у нас создан проект, в который мы добавили DAC и таймер TIM1. Ещё нам нужно добавить ADC1 (вход IN9), ADC2 (вход IN12) и таймер TIM2. Также нам понадобится USB_OTG_FS.

Настраиваем ADC1 на работу в режиме одновременной выборки, с запуском по таймеру 2:ADC2 при этом настраивается автоматически:Настраиваем DMA:Обращаем внимание, что размер передаваемых данных Word, а не Half Word, т.к. за один раз передаются данные с двух АЦП, упакованные в 32-битное слово. Настраиваем таймер TIM2:USB настраиваем так же, как мы это уже делали. Генерируем код.

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

Запуск цепочки таймер-ADC-DMA: //start adc HAL_ADC_Start(&hadc2); HAL_ADCEx_MultiModeStart_DMA(&hadc1, (uint32_t *)adc_buf, ADC_BUF_SIZE); HAL_TIM_Base_Start_IT(&htim2);Обработчик прерывания:void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
{ HAL_TIM_Base_Stop(&htim2); HAL_ADC_Stop(&hadc2); HAL_ADCEx_MultiModeStop_DMA(&hadc1); const int threshold = (1 = threshold) //the trigger condition { memcpy(vcp_buf, adc_buf + i + 1, VCP_BUF_SIZE * sizeof(uint32_t)); vcp_buf[0] |= 0x80000000; //mark the first sample in the frame CDC_Transmit_FS((uint8_t*)vcp_buf, VCP_BUF_SIZE * sizeof(uint32_t)); } } HAL_GPIO_WritePin(GPIOB, GPIO_PIN_7, 0); } //restart adc HAL_ADC_Start(&hadc2); HAL_ADCEx_MultiModeStart_DMA(&hadc1, (uint32_t*)adc_buf, ADC_BUF_SIZE); HAL_TIM_Base_Start_IT(&htim2); //led flashing static int cnt = 0; if((cnt++) % 128 == 0) { HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_14); //Toggle the state of pin }
}Почему мы не можем передать через USB непосредственно содержимое исходного буфера? Так как скорость VCP слишком мала, мы не сможем передавать весь поток данных с АЦП. Мы захватываем кусок сигнала, передаём его «наверх», потом захватываем следующий кусок и т. д. Если мы не предпримем специальных мер, то в порт будут передаваться случайные фрагменты исходного сигнала. Поэтому нужно сделать программный аналог «триггера», как у цифрового осциллографа. Мы будем передавать в порт не рандомный фрагмент, захваченный АЦП, а кусок сигнала после возникновения некоторого условия. Таким условием может быть пересечение сигналом некоторого уровня в направлении снизу вверх: sample0_0 < threshold && sample0_1 >= threshold, где threshold — порог срабатывания. Именно для этого мы делаем буфер АЦП в два раза больше буфера VCP, и просматриваем его до середины в поисках такого условия. Если условие не наступило, не отправляем в порт ничего, и запускаем следующий цикл АЦП. DMA упаковывает сигналы с двух АЦП в одно 32-битное слово. Не будем менять этот формат, просто добавим единицу в старший разряд первого отчёта в буфере, чтобы ПО верхнего уровня могло распознать начало «кадра»:vcp_buf[0] |= 0x80000000;Для отображения сигнала на компьютере я написал маленькую программу на C#:Она в основном собрана из компонентов в Visual Studio и содержит минимум кода. Её исходники также доступны на Github.

Что дальше

В следующей части мы рассмотрим интерфейс Ethernet и немного операционную систему реального времени FreeRTOS.

Ссылки

Исходники проектов к всему циклу статей можно скачать на github. Все проекты сделаны для платы Nucleo F767ZI и используют IDE Atollic TRUEStudio.

[1] AN2834 Application note. How to get the best ADC accuracy in STM32 microcontrollers

[2] AN3116 Application note. STM32’s ADC modes and their applications
[3] Cookbook for SAR ADC Measurements. Freescale Semiconductor. AN4373

Благодарю за внимание, о замеченных ошибках и опечатках прошу сообщать в личку. Продолжение следует.

Источник: https://habr.com/post/323674/

atollic-truestudio видео

8 меc назад

Webinar archive from 16 February 2016.

8 меc назад

Excerpted from a webinar.

6 меc назад

Find out more information about STM32: http://bit.ly/STM32-generic For Atollic: http://bit.ly/Atollic This is a video to show how easy it is to generate a simple …

7 меc назад

В видео кратко рассматривается работоспособность IDE TrueSTUDIO, которая теперь является официальной для STM….

3 лет назад

STM32F4 Discovery Board – NewProject in Atollic TrueSTUDIO.

4 лет назад

This is a short video tutorial on how you can use watchpoints in Atollic TrueSTUDIO. This example illustrates how a watchpoint is setup to help us find a stack …

3 лет назад

A short video showing how to Download a binary into the target board and perform a reset without debugging the code. This can be done by creating a debug …

9 меc назад

What should users of Atollic TrueStudio do in regards to the company being bought by SGS Thomson? Is it time to flee?

1 нед назад

Setting project Atollic Truestudio Paths, Symbols Debug.

5 лет назад

This is a tutorial showing how system faults (hard faults; bus faults, usage faults, memory management faults) can be automatically analyzed in order to simplify …

5 лет назад

This short video tutorial demonstrates how to perform software tracing with Serial Wire Viewer in Atollic TrueSTUDIO on a Cortex-M3/4 device.

5 лет назад

This short video tutorial demonstrates how to perform data tracing with Serial Wire Viewer in Atollic TrueSTUDIO on a Cortex-M3/4 device.

5 лет назад

This is a tutorial on how to use the integrated Subversion client within Atollic TrueSTUDIO for ARM. The following operations will be discussed: -Examine file …

2 нед назад

Begin with Atollic Truestudio to create first project for STM32.

3 меc назад

안녕하세요 M-HIVE ChrisP 입니다. 오늘부터 새롭게 “HAL 드라이버, CubeMX, TrueSTUDIO를 이용한 STM32F4 속성으로 따라하기” 강좌를 진행합니다. 본 영상은.

6 меc назад

В видео показан процесс создания проекта в TrueSTUDIO для микроконтроллера STM32F746 для последующей работы с LTDC.

7 лет назад

Atollic TrueSTUDIO® is the premier C/C++ development tool for embedded developers, reducing time to market and increasing efficiency in your next …

3 лет назад

STM32F4Discovery Tutorial 2 – Getting Started www.logicvoltage.com In this tutorial we will get an in depth knowledge about the technical things of embedded …

4 меc назад

Neste tutorial apresentaremos dois exemplos de conversão e configuração de projetos na IDE Atollic TrueStudio. Maiores informações: …

7 меc назад

TrueStudio STM32'ye tam desteği olan profesyonel bir platformdur. Yakın zamanda Lite ve Pro farkının kaldırılması ve ücretsiz hale getirilerek TrueStudio …

Источник: https://youtuberu.ru/video/atollic-truestudio

Ссылка на основную публикацию
Adblock
detector
",css:{backgroundColor:"#000",opacity:.6}},container:{block:void 0,tpl:"
"},wrap:void 0,body:void 0,errors:{tpl:"
",autoclose_delay:2e3,ajax_unsuccessful_load:"Error"},openEffect:{type:"fade",speed:400},closeEffect:{type:"fade",speed:400},beforeOpen:n.noop,afterOpen:n.noop,beforeClose:n.noop,afterClose:n.noop,afterLoading:n.noop,afterLoadingOnShow:n.noop,errorLoading:n.noop},o=0,p=n([]),h={isEventOut:function(a,b){var c=!0;return n(a).each(function(){n(b.target).get(0)==n(this).get(0)&&(c=!1),0==n(b.target).closest("HTML",n(this).get(0)).length&&(c=!1)}),c}},q={getParentEl:function(a){var b=n(a);return b.data("arcticmodal")?b:(b=n(a).closest(".arcticmodal-container").data("arcticmodalParentEl"),!!b&&b)},transition:function(a,b,c,d){switch(d=null==d?n.noop:d,c.type){case"fade":"show"==b?a.fadeIn(c.speed,d):a.fadeOut(c.speed,d);break;case"none":"show"==b?a.show():a.hide(),d();}},prepare_body:function(a,b){n(".arcticmodal-close",a.body).unbind("click.arcticmodal").bind("click.arcticmodal",function(){return b.arcticmodal("close"),!1})},init_el:function(d,a){var b=d.data("arcticmodal");if(!b){if(b=a,o++,b.modalID=o,b.overlay.block=n(b.overlay.tpl),b.overlay.block.css(b.overlay.css),b.container.block=n(b.container.tpl),b.body=n(".arcticmodal-container_i2",b.container.block),a.clone?b.body.html(d.clone(!0)):(d.before("
"),b.body.html(d)),q.prepare_body(b,d),b.closeOnOverlayClick&&b.overlay.block.add(b.container.block).click(function(a){h.isEventOut(n(">*",b.body),a)&&d.arcticmodal("close")}),b.container.block.data("arcticmodalParentEl",d),d.data("arcticmodal",b),p=n.merge(p,d),n.proxy(e.show,d)(),"html"==b.type)return d;if(null!=b.ajax.beforeSend){var c=b.ajax.beforeSend;delete b.ajax.beforeSend}if(null!=b.ajax.success){var f=b.ajax.success;delete b.ajax.success}if(null!=b.ajax.error){var g=b.ajax.error;delete b.ajax.error}var j=n.extend(!0,{url:b.url,beforeSend:function(){null==c?b.body.html("
"):c(b,d)},success:function(c){d.trigger("afterLoading"),b.afterLoading(b,d,c),null==f?b.body.html(c):f(b,d,c),q.prepare_body(b,d),d.trigger("afterLoadingOnShow"),b.afterLoadingOnShow(b,d,c)},error:function(){d.trigger("errorLoading"),b.errorLoading(b,d),null==g?(b.body.html(b.errors.tpl),n(".arcticmodal-error",b.body).html(b.errors.ajax_unsuccessful_load),n(".arcticmodal-close",b.body).click(function(){return d.arcticmodal("close"),!1}),b.errors.autoclose_delay&&setTimeout(function(){d.arcticmodal("close")},b.errors.autoclose_delay)):g(b,d)}},b.ajax);b.ajax_request=n.ajax(j),d.data("arcticmodal",b)}},init:function(b){if(b=n.extend(!0,{},a,b),!n.isFunction(this))return this.each(function(){q.init_el(n(this),n.extend(!0,{},b))});if(null==b)return void n.error("jquery.arcticmodal: Uncorrect parameters");if(""==b.type)return void n.error("jquery.arcticmodal: Don't set parameter \"type\"");switch(b.type){case"html":if(""==b.content)return void n.error("jquery.arcticmodal: Don't set parameter \"content\"");var e=b.content;return b.content="",q.init_el(n(e),b);case"ajax":return""==b.url?void n.error("jquery.arcticmodal: Don't set parameter \"url\""):q.init_el(n("
"),b);}}},e={show:function(){var a=q.getParentEl(this);if(!1===a)return void n.error("jquery.arcticmodal: Uncorrect call");var b=a.data("arcticmodal");if(b.overlay.block.hide(),b.container.block.hide(),n("BODY").append(b.overlay.block),n("BODY").append(b.container.block),b.beforeOpen(b,a),a.trigger("beforeOpen"),"hidden"!=b.wrap.css("overflow")){b.wrap.data("arcticmodalOverflow",b.wrap.css("overflow"));var c=b.wrap.outerWidth(!0);b.wrap.css("overflow","hidden");var d=b.wrap.outerWidth(!0);d!=c&&b.wrap.css("marginRight",d-c+"px")}return p.not(a).each(function(){var a=n(this).data("arcticmodal");a.overlay.block.hide()}),q.transition(b.overlay.block,"show",1*")),b.overlay.block.remove(),b.container.block.remove(),a.data("arcticmodal",null),n(".arcticmodal-container").length||(b.wrap.data("arcticmodalOverflow")&&b.wrap.css("overflow",b.wrap.data("arcticmodalOverflow")),b.wrap.css("marginRight",0))}),"ajax"==b.type&&b.ajax_request.abort(),p=p.not(a))})},setDefault:function(b){n.extend(!0,a,b)}};n(function(){a.wrap=n(document.all&&!document.querySelector?"html":"body")}),n(document).bind("keyup.arcticmodal",function(d){var a=p.last();if(a.length){var b=a.data("arcticmodal");b.closeOnEsc&&27===d.keyCode&&a.arcticmodal("close")}}),n.arcticmodal=n.fn.arcticmodal=function(a){return e[a]?e[a].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof a&&a?void n.error("jquery.arcticmodal: Method "+a+" does not exist"):q.init.apply(this,arguments)}}(jQuery)}var debugMode="undefined"!=typeof debugFlatPM&&debugFlatPM,duplicateMode="undefined"!=typeof duplicateFlatPM&&duplicateFlatPM,countMode="undefined"!=typeof countFlatPM&&countFlatPM;document["wri"+"te"]=function(a){let b=document.createElement("div");jQuery(document.currentScript).after(b),flatPM_setHTML(b,a),jQuery(b).contents().unwrap()};function flatPM_sticky(c,d,e=0){function f(){if(null==a){let b=getComputedStyle(g,""),c="";for(let a=0;a=b.top-h?b.top-h{const d=c.split("=");return d[0]===a?decodeURIComponent(d[1]):b},""),c=""==b?void 0:b;return c}function flatPM_testCookie(){let a="test_56445";try{return localStorage.setItem(a,a),localStorage.removeItem(a),!0}catch(a){return!1}}function flatPM_grep(a,b,c){return jQuery.grep(a,(a,d)=>c?d==b:0==(d+1)%b)}function flatPM_random(a,b){return Math.floor(Math.random()*(b-a+1))+a}