Руководство По Keil На Русском

Posted on
  1. Рашен Тудей Новости На Русском
  2. Реслинг На Русском

Вступление я поделился личными впечатлениями о полученном мною наборе и запрограммировал контроллер демонстрацонным проектом с помощью MT-LINK (так же был предоставлен). Теперь, когда мы детально рассмотрели весь комплект, настало время начать его осваивать. Для нетерпеливых — итог. Создаем пустой проект в Keil 5 для К1986ВЕ92QI. Для начала следует создать чистый проект. Можно конечно использовать демонстрационный проект как основу, но проект с номером «2» так и не запустился, а в проекте «3» почему-то в меню выбора контроллера чистый лист. Это меня как-то насторожило.

Проекта с номером «1» нет в принципе. Заходим в Project - New uVision Project. 2. Создаем папку для проекта (в пути не должно быть русских букв), пишем имя (так же на английском) и сохраняем. Выбираем наш контроллер. В появившемся окне просто жмем «Ок».

Честно сказать, мне никогда не удавалось настроить проект через этот редактор так, чтобы все скомпилировалось с 1-го раза. Всегда приходилось что-то менять. Чаще всего оказывалось, что проще сделать самому. В левом верхнем углу появилось дерево проекта.

Теперь нам нужно создать необходимые подкатегории. Для этого по самой верхней папке жмем правой кнопкой мыши и выбираем «Manage Project items».

6. В данном меню 2 раза нажимаем левой кнопкой мыши на папку, название которой хотим изменить и пишем то, что хотим. Опять же, лучше на английском. Для добавления новый папок служит иконка слева от «красного крестика». Нам понадобятся минимум 4 папки:. 1.

Под пользовательские данные (наши файлы). Под драйвера LCD (те, что в комплекте). Для кода работы с Flash. Под SMSIS и подобие SPL. После того, как переименовали все папки, жмем «ОК».

Каталог должен иметь примерный вид. Далее нам нужно достать все эти файлы. Брать мы их будем из рабочего демонстрационного проекта. Только сейчас заметил, что проект был написан под keil 2. Это меня немного поразило. Еще одним интересным фактом стало то, что между демонстрационным проектом «2» и «3», судя по информации последнего изменения — прошло 3 месяца.

Keil uVision - среда. По ссылке ниже. Среда разработки Keil uVision представлена на английском языке.

  • 1 Цель работы.
  • Итак, тащим Keil с оффсайта www.keil.com Чтобы не шариться там, сразу двигаем на анкетку, заполняем ее и получаем ссылку на скачивание. Скачали, ставим, запускаем. Открывается главное окно Keil.. Обзорное описание вкусняшек STM32 на русском языке. Читать всем, чтобы знать кого нам подсунули. ARM IDE Keil Описание.. А то делаю как в руководстве проект, и он сразу для флэша, а мне бы сначала в RAMe. Пробую менять память на RAM, но отладчик туда не пишет.
  • Создание нового проекта для микроконтроллера STM32 в Keil, библиотеки Standard Peripheral Library и CMSIS.. Наверняка где-то в пути к файлу пробелы или русские буквы. Николай говорит в 14:40.

Причем к нашему времени ближе работающий проект. Из него и будем брать файлы (где достать этот демонстрационный проект – сказано в предыдущей статье-обзоре). Скопировать нужно выделенные файлы. Причем main.c (как и любые свои файлы) лучше убрать в отдельную папку.

Я для этого создал папку User и туда поместил main.c (его мы изменим и будем базироваться на нем). Далее нам нужно добавить файлы библиотеки в проект. Добавление происходит следующем образом. Щелкаем правой кнопкой по нужной папке в дереве проекта и выбираем «Add Existing Files to Group ‘Имя группы’». В открывшемся окне нужно выбрать тип файлов «All files (.)».

После чего выбрать 1 или выделить несколько файлов. Добавить нужно:. 1. В папку User - «User - main.c». Это наш самый главный файл. Чуть изменив его, мы начнем писать свой код именно в нем. В папку Flash - «flash - MilFlash.c».

Здесь хранится библиотека для работы с Flash контроллера. В папку LCD - «mlt - mltlcd.c». Библиотека работы с LCD, который установлен на плате. В папку SMSISandDrivers - «Libraries 1986BE9xStdPeriphDriver src - все файлы.c». Тут хранится аналог SPL у STM32. Проще говоря, это «обертки», которые позволяют не вдаваясь в структуру контроллера управлять его периферией (выводы, uart и т. В папку SMSISandDrivers - « Libraries CMSIS CM3 DeviceSupport 1986BE9x startup arm - startup1986be9x.s».

Это файл «стартап». Тут прописаны все «вектора переходов». Иначе говоря, по любому прерыванию (к примеру, нажатие кнопки) контроллер возвращается к этой таблице и смотрит, куда ему перейти, чтобы выполнять код дальше. В папку SMSISandDrivers - «Libraries CMSIS CM3 DeviceSupport 1986BE9x startup arm - system1986BE9x.c». Итогом должно стать такое дерево. Далее нам нужно немного почистить файл main.c. Для этого кликаем на него щелчком левой мыши в дереве каталога.

Удаляем все, кроме оболочки функции main и #include файлов. Должно остаться так.

Рашен Тудей Новости На Русском

Как можно было заметить, около самого верхнего #include файла стоит крестик. Keil просто не видит данного файла. Для того, чтобы исправить это, мы должны указать ему, где ему брать этот файл. Для этого жмем Alt+F7. В открывшемся окне переходим во вкладку C/C. Маленькое отвлечение.

Русском

В будущем я часто буду использовать приемы, которые keil не будет понимать по умолчанию. Для того, чтобы исправить это, нужно нажать галочку около надписи «C99 Mode». Это даст возможность писать на более совершенном стандарте языка Си, чем это можно было делать изначально. Далее следует нажать на прямоугольник с «» внутри. Справа около строчки с подписью «Include Paths». В открывшемся окне нажимаем на иконку с прямоугольником, слева от крестика.

Это создаст пустую строку. В правом углу созданной строчки жмем на «». После чего указываем нужную папку, в которой лежат интересующие нас файлы. После этого жмем «ОК».

Папка будет добавлена. Необходимо добавить все эти пути. Если вы заметили, то все ссылки кроме одной – относительные. То есть идут от корневого каталога. Но 1 идет начиная от «C: ». Это ссылка на сам каталог с проектом.

Его тоже следует указать. Жмем «ОК» и переходим в файл main.c. Компилируем простейшую программу. Вставим в функцию main бесконечный цикл с увеличением счетчика на 1. Теперь наш файл должен выглядеть так.

Не забываем о том, что в конце каждого файла должна быть пустая строка. Keil считает это как предупреждение, которое частенько действует на нервы. Конечно компилироваться будет, но сам факт предупреждения – настораживает. На этом настройка закончена. Мы можем перекомпилировать наш проект нажав F7.

Если все прошло хорошо, ты мы увидим это. Теперь осталось лишь в настройках настроить J-LINK и можно заливать. О том, как его настраивать – было подробно рассказано в предыдущей статье. J-LINK видит чип и без подключения дополнительного питания, а так же позволяет отлаживать чип.

Так что внешнее питание не особо нужно. При переходах по строкам кода видно, как мелькает подцветка экрана. Настраиваем ножку контроллера для работы со светодиодом Пробежавшись по оглавлению документации, я не увидел ничего про тактирование переферии, поэтому сразу же принялся настраивать ее. Вспоминая обо всех ужасах SPL в плане настройки портов ввода-вывода в STM32, мысль об использовании библиотек, шедших в комплекте, отпала сразу же. Да и не хорошо это, вот так сразу, не успев поиграться с регистрами, прятаться за библиотеками, в которых, кстати, не исключены ошибки.

Для начала поймем, какой именно порт нам нужно настроить. В «Отладочная плата 1986ВЕ92У, К1986ВЕ92QI (MDR32F9Q2I) Печатная плата 1986EvBrdLQFP64» есть файл 1986EvBrd64Rev2.pdf, в котором приведена схема платы. На ней мы можем увидеть, что 2 светодиода подключены к пинам PC0 и PC1.

Не придется мучиться со смещением. Очень понравилось, что у Миландра вся информация о линейке чипов в одном документе. В STM32 очень путался в документах Взглянем на схему порта ввода-вывода. Чем-то отдаленно напоминает схему порта у STM32. Не увидев ничего, что бы бросилось в глаза, идем настраивать регистры. Так как я не знал, как именно Миландр назвал свои порты, я полез в библиотеку настройки портов.

Там увидел следующее. Ну и чуть выше. Убедившись, что адрес порта C совпадает с адресом в датащите, я создал новую функцию в файле main.c (Обязательно выше функции main! Иначе придется описывать прототипы функции в.h файле. А это лишние пока что заморочки.). Начинаю писать PORTC- (по привычке), зажимаю ctrl+пробел и вижу следующее.

Вот это уже знакомая картина. Очень обрадовался.

Далее начал смотреть, какие регистры нужно изменить. Нам нужен светодиод на порту «0», так что можем записать: PORTC-RXTX = 1; Этим мы переводим 0-й бит порта в 1. Тем самым зажигая диод на порту 0.

Но перед его включением стоит его настроить Так что данное действие выполняем в последнюю очередь,. У нас выход, так что: PORTC-OE = 1; Оставляем без изменений, так как по умолчанию везде нули. А вот тут нам нужен цифровой: PORTC-ANALOG = 1; Подтяжка нам не нужна, так что, пропускаем. Ну и это нам тоже не надо А вот тут нам нужно выбрать скорость. По умолчанию – все. Выбираем медленный фронт. Для светодиода его вполне хватит: PORTC-PWR = 1; Ну и последний регистр.

Вообще неведомая для меня ранее вещь. С этим еще предстоит разобраться.

Ну вот, с настройкой мы закончили. НО, если мы сейчас зашьем этот код, то у нас ничего не заработает.

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

Нам нужны порты. Это вполне подходит под описание «периферийные блоки».

Ищем этот регистр и вот. Оставалось только понять, как в keil называется этот регистр. Так как в библиотеках толком ничего не нашел, то пошел подбором. В итоге выяснилось, что он именуется RSTCLK. Ну а дальше нам нужно лишь записать «1» в нужный блок.

RSTCLK-PERCLOCK =(1 Configuration. И там сменить кодировку, как показано на рисунке. После чего нажать «ОК». Мигаем светодиодом Теперь напишем код, который будет с помощью цикла мигать светодиодом.

Зашиваем и радуемся! Скорость взята по опыту мигания светодиодом на STM32. Светодиод мигает с частотой примерно раз в секунду. Вроде бы ничего не упустил. Советую этот проект сразу же заархивировать. Чтобы потом использовать как заготовку. Еще раз напоминаю.

В настройках проекта есть одна ссылка к директории проекта относительно «C: ». Так что проект будет работать лишь по тому же пути, что и в статье. Вы легко можете сменить путь и свободно пользоваться. Спасибо sguwenka за исправления. Метки:.

Добавить метки Пометьте публикацию своими метками Метки необходимо разделять запятой. Например: php, javascript, адронный коллайдер, задача трех тел. А что тут сложного? Все примитивно.

Это же не ардуина! Подробно рассмотрена настройка универсальной IDE, а сам «способ мигать» элементарный. Тем, кто делает паузы через «нужное количество» nop, честно говоря, хочется руки по отрывать. Тут используются таймеры Дергать ногой можно было вообще в обработчике (правда за это, то же некоторые по рукам бьют), либо (что самое правильное) написать менеджер, который бы вызывался с определенной периодичностью, проверял состояние флага и выполнял инверсию (либо другие нужные действия) ноги.

А то, что «не для начинающих» видно из названия статьи. Раз уж вы переходите с STM32 на отечественного производителя, то и про таймеры и про прерывания должны знать. Тем, кто делает паузы через «нужное количество» nop, честно говоря, хочется руки по отрывать. Тут используются таймеры В следующей статье рассмотрено именно мигание с использованием SysTick.

После будет с использованием таймера. А после и ОС.

Не все сразу. Дергать ногой можно было вообще в обработчике (правда за это, то же некоторые по рукам бьют), либо (что самое правильное) написать менеджер, который бы вызывался с определенной периодичностью, проверял состояние флага и выполнял инверсию (либо другие нужные действия) ноги. В будущем будет рассмотрена связь с ОС. В которой все это будет. Меня вот что интересует. Почему в то время как сегодня в стране вроде как взят курс на собственное ПО для всего и вся, военная контора ориентирует пользователей на Keil и IAR?

Руководство

Легальные дистрибутивы которых от них стоят очень и очень приличных денег, а главное разрабатываются в странах вероятного противника. Очень странный подход для настоящих джидаев. Может они хотят нанести максимальный урон врагу используя не лицензионные копии? Вообще я к продукции обоих этих фирм хорошо отношусь, но надоело пользоваться лекарствами, а покупка их софта слишком дорогое для меня удовольствие.

В результате перешёл на бесплатный кокос. Зловреда вряд ли, но вот например эти системы проектирования в один прекрасный момент могут выйти из строя или информацию собирать А если честно то это уже дело принципа. Большинство политических решений за последние полтора года обусловлено далеко не здравым смыслов. И уж если гнуть эту политику и дальше, то непонятно почему чиновники должны работать на офисных программах с открытым кодом а оборонщики, которые делают свои кристаллы использовать системы разработки своих противников, при том что существуют не плохие системы с открытым исходным кодом. Странно как то всё это. Записывайте, пожалуйста, их где-нибудь.

Я с радостью внесу правки и укажу, кем они были сделаны. Ну и слишком много в проекте GUI-возни и возни с IDE Ее больше не будет.

Мы настроили Keil 5 и проект в нем. Теперь можно начать программировать. Если и будет что по настройке — то это мелочи, которые я мог упустить. Что и то и другое к самой теме «посвящения в работу с микроконтроллером» относится весьма и весьма относительно Лично для меня это была самая большая проблема.

Руководство По Keil На Русском

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

У меня возникла такая же мысль. Например, чтобы мне сейчас импортозаместиться, мне нужно купить зарубежную ОС и зарубежные среды разработки. Тем самым финансово поддержать «вероятного противника». Взять «отечественную» ОС (например какой-нибудь AltLinux) и начать разрабатывать под отечественный МК нельзя.

Причём для импортных МК вполне успешно можно заниматься разработкой под отечественной ОС. Теоретически даже наверное под ОС Эльбрус можно пересобрать тулчейны для разработки например для STM32 или MSP430. Но здесь сам МК нужно покупать у «вероятного противника». Так что получается, что в результате импортозамещения нет никакой разницы с этой точки зрения.

Реслинг На Русском

Где-то здесь нарушена логика, т.к. Логично что русский МК должен программироваться из русской ОС.

Читал на форуме Миландра, что они не занимаются разработкой инструментальных средств под Linux, но «интересуются данным направлением». Интересно, кто-нибудь здесь знает как у них обстоят дела с этим направлением сейчас? Да думается, никто бы не возражал, если бы дела обстояли так, что все дружно перебираются на своё ПО, потому что оно полностью написано и потому что оно самое-пресамое во всём белом свете. Но пока ж нету, так что о чём тут говорить? Думается, можно на обычном gcc скомпилировать программу. Можно допилить какое-нибудь свободное ПО, чтобы оно составило конкуренцию ПО «вероятного противника».

Можно даже внаглую не поддерживать вероятного противника рублём. Конечно, будет совсем неплохо, если своими силами получится сделать среду разработки лучше, чем «зарубежные аналоги». Ещё лучше — если такой средой начнут пользоваться по всему миру, потому что она хорошая. Но думается, такие вещи в одночасье не делаются. Вся статья написана в духе «это какое-то шаманство, но делайте так — и всё заработает», особенно вот эта фраза: Сознательно не удаляю ту часть файлов, которую не использую, потому что некоторые важные файлы, хоть и косвенно, но ссылаются на них. Поэтому лучше скопировать все. Надо было разорбраться и чётко написать, почему эти файлы и где используются.

Вы уж определитесь, нужные это файлы или не нужные. Магические числа, «непонятно откуда», но внезапно и удачно всплывающие имена полей структур Больше напоминает первое знакомство человека с системой. ИМХО очень плохой подход — копировать из библиотеки отдельные файлы для использования. Надо наоборот учить людей, что лучше подключать целую готовую библиотеку, желательно предварительно слинкованную статически! И не надо будет её каждый раз компилировать вместе со всем проектом.

Неиспользуемые файлы исключать из списка компиляции Keil умеет, через свойства по ПКМ на файле. Tutorial таким быть не должен. А вообще, солидарен с мнениями комментаторов, что лучше под open-source IDE изучать разработку. Тем более, более универсальные среды. Сам пишу под все МК в Eclipse, в том числе под 1986ВЕ9х. А Вас, уважаемый, не смущает дата, указанная на этом прайсе?

Осень 2013 года. А так же то что в 2014 году надо было ждать пол года чтобы получить всего навсего один экземпляр из этого прайса по цене в два раза выше, да ещё долго объяснять зачем он нужен? Вы видно мало имели дел с нашими производителями. Я работал бренд менеджером в фирме торгующими электронными компонентами и у меня есть очень хорошие знакомые в службе продаж Ангстрема. Вы даже представить себе не можете насколько разные подходы у первых и вторых.

Я ещё мы как то раз пробовали заложить в наши изделия керамические резонаторы от того же Ангстрема, которые тоже были в прайсе и по весьма хорошей цене. Кстати и качество было удовлетворительное. Не хочу даже вспоминать, что из этого вышло. Честно говоря я буду очень рад, если вы заложите эти контроллеры в своё изделие. Уверен что после этого на Хабре появится очень интересная статья. Вся статья написана в духе «это какое-то шаманство, но делайте так — и всё заработает», особенно вот эта фраза: Сознательно не удаляю ту часть файлов, которую не использую, потому что некоторые важные файлы, хоть и косвенно, но ссылаются на них. Поэтому лучше скопировать все.

Да, действительно. Звучит не очень хорошо. Магические числа, «непонятно откуда», но внезапно и удачно всплывающие имена полей структур Больше напоминает первое знакомство человека с системой. Честно сказать, про эту фичу нигде ранее не читал (ни в одном уроке, во время изучения мною STM32, об этом написано не было). Поэтому решил напомнить о ней. Посчитал, что лишним не будет.

ИМХО очень плохой подход — копировать из библиотеки отдельные файлы для использования. Надо наоборот учить людей, что лучше подключать целую готовую библиотеку, желательно предварительно слинкованную статически! И не надо будет её каждый раз компилировать вместе со всем проектом. Неиспользуемые файлы исключать из списка компиляции Keil умеет, через свойства по ПКМ на файле. Сообщил, что копируем всю библиотеку. Объяснил, за что отвечает каждый добавленный файл.

Желательно предварительно слинкованную статически! После того, как 1 раз компилируешь проект — библиотеки при последующей компиляции не изменяются. Tutorial таким быть не должен. Только начинаю писать. Просто не хочется, чтобы накопленный опыт пропал. Рад любым правкам. Просто так случается, что со временем забываешь, как работают собственные библиотеки И когда-то очевидные вещи кажутся ужасно непонятными.

Это одна из причин написания этой серии статей. А вообще, солидарен с мнениями комментаторов, что лучше под open-source IDE изучать разработку. Тем более, более универсальные среды. Сам пишу под все МК в Eclipse, в том числе под 1986ВЕ9х. Мне очень по душе Keil.

Чем-то он пленил меня. С Eclipse так и не смог наладить контакт. Но это уже индивидуальные особенности. Keil не накладывает ограничений на обучение. 32-х киллобайт вполне хватает на то, чтобы беспрепятственно изучить контроллер и начать разрабатывать интересные вещи.