"Вкусности" Keil uVision4.

О чем данная статья: о IDE Keil uVision4, точнее, о разных удобностях, которые она предоставляет программисту. Т.к. работаю с МК Silabs x51, в статье будут небольшие пояснения, как же заставить Keil работать с этими камешками. Для удобства, части текста, которые касаются х51, выделены курсивом.

Итак, Вы стали счастливым обладателем Keil uVision4. Установили среду, создали проект, написали код. А что дальше?
Начало работы с МК Silabs x51.
Для того, чтобы при создании проекта появилась возможность выбрать МК от Silabs необходимо установить драйвер SiC8051F_uVision.exe (у меня 3.40). Найти его можно тут. После создания проекта с нужным МК выполним следующие настройки:
1) выбираем Option for Target “xxx”(см. рис. 1);

2) в появившемся окне перейдем на вкладку Debug и выберем, где мы хотим отлаживать устройство. Для отладки на плате выбираем соответствующий пункт (см. рис. 2). Жмем Settings и выбираем порт, на котором висит программатор.
3) на вкладке Utilities выберем Use target driver for Flash programming и укажем драйвер от Silabs.

Теперь хотелось бы сказать пару слов о симуляции Silabs x51 в Keil. Для этого на вкладке Debug выберем этот самый симулятор. Поддерживает практически все контроллеры. Вот только есть одна проблема: для большинства МК поддержка дальше ядра не ушла. То есть ваша программа будет оттранслирована и даже начнет выполняться, но посмотреть состояние SFR (регистров, отвечающих за работу железа), работу прерываний (они просто не вызываются, симулятор ведь не знает о существовании таймера и т.д.) будет нельзя. Где-то я видел подробное описание, для какого МК в данной версии драйвера какое железо «создано виртуально», но, поискав на сайтах Silabs и Keil (честно искал, минут 20), найти не смог. Если кто найдет, отпишите в комментариях. Ладно, с х51 пока закончим, перейдем к самому Keil.


А дальше начинается болезненная процедура отладки. И ладно бы, если программа не большая, и писал её ты сам. Но когда надо разобраться с чужим кодом… Вот тут уже «блокнотоподобных» IDE вроде AVR Studio4 и Silabs IDE становится мало. Чем же Keil от них отличается? Попробую перечисли «удобности» по порядку, слева направо, сверху вниз. Если внешний вид и количество окон отличается от представленного на рисунках, это легко можно исправить, выбрав недостающие в меню View.
1.Управление проектом:
Вкладка Project – позволяет посмотреть файлы, включенные в проект. Здесь все как у всех.
Вкладка Functions – список функций, объявленных в файле. При клике на соответствующей функции она показывается в окне редактирования кода. Имеет 2 вида: функции показываются с привязкой к файлам или «в общей куче» в алфавитном порядке. Для переключения между представлениями нажимаем правой КМ в окне и выбираем Display Functions.
Вкладка Templates – позволяет быстро вставлять в код кусок текста. Возможно добавление своих и редактирование существующих шаблонов.


2. Окно кода:
Если нажать правой КМ на переменную или функцию и в появившемся контекстном меню выбрать Go to definition of…, курсор перепрыгнет на строку, в которой эта функция или переменная объявлена. Работает после сборки проекта.
3. Окно Browser:
Позволяет посмотреть, где в проекте используется макроопределение, переменная, функция. С настройками думаю все понятно.

4. После запуска отладки внешний вид IDE преображается. Каких-то особенных отличий и «удобностей» я не нашел. В общем как у всех. Правда в контекстном меню есть интересный пункт, называется Set access breakpoint at… Позволяет останавливать программу при обращении к заданной переменной. Правда, ни разу этим не пользовался.


P.S. Касательно настройки: по умолчанию Keil отображает комментарии на русском языке кракозябрами. Для исправление этого надо вызвать окно Configuration , выбрать Color and Fonts/ 8051: Editor C files, выбрать поочередно оба типа комментариев и указать Font Style – Normal. Там же можно настроить цвет, шрифт и другие украшательства.
  • +2
  • 26 августа 2011, 12:06
  • do_sl

Комментарии (16)

RSS свернуть / развернуть
Работал с программатором ЕС3 из под SilabsIDE и Keil. Для отладки больше понравилась IDE от Силаба.

С какими МК от Силаба работал?
0
  • avatar
  • Zov
  • 26 августа 2011, 12:52
F020 и F32*. А чем SilabsIDE понравился? Писал на С? У меня, например, от отсутствия поиска по функциям волосы дыбом становились! Пока найдешь нужную, забываешь, зачем искал )
0
Согласен, есть такое.Пишу на Си И ASM.Сама оболочка отладчика понравилась, а так Keil и только KEIL!!!
У 32х USB узал?
0
Нет, не приходилось.
0
Мне тоже нравится кейл. Только я работал с AT89S52, зато эмулируется не только ядро, но и периферия. Все хорошо в кейле, четко работает, не вываливается, не глючит (за многие годы разработчики успели его вылизать почти до совершенства), куча настроек, отличный компилятор, легко ломается :)
Да и сами МК с х51 ядром подкупают своей простотой архитектуры, дешевизной, отличным набором комманд (даже умножение и деление аппаратные), асмить под них — одно удовольствие.
А чем таким существенным отличаются силлабы, и чем их прошивать, и как — внутрисхемно или отдельно в программатор вставлять?
0
О! Силаб это можно сказать топовые МК среди х51.Ты почитай описание на какойто из них.Шьются внутрисхемно, интерфейс С2 или JTAG(разные МК Силаба поддерживают либо два этих режима либо только С2). Программаторы ЕС3, ЕС2 FlashBlaster2.Я описывал вкратце свое начало работы с этим МК Старт с Silab'ом
0
Однотактовое ядро, богатая периферия, частоты выше чем у иных армов (100МГц запросто). Oscill на одном из них сделан и этот МК справляется с АЦП на 32 мегасэмпла без всяких там ПЛИС. Местами оно пожалуй современные кортексы уделывает. И довольно недорого.
0
У них(Silab'a) есть МК кот.вполне можно применять для ЦОС — 100МГц тактовая.\
Аппаратно реализованное умножение 16х16.
Вопрос: в каких МК кроме х51 и Cortex-M3 есть аппаратная команда деления?
0
у STM8 есть умножение 8*8 и деление 16/8 и 16/16 битное
0
но у них до 24МГц тактовая
0
Да, эмулятор в кейле просто супер. Как-то пришлось срочно писать вечером функционал без железки. В эмуляторе отлаживал, пришел с утра, залил, работает) Правда функционал был небольшой, но все-равно приятно…
0
Создал блог про MCS-51.
Перекиньте туда эту статью и прочие про силабсовские МК.
0
  • avatar
  • Vga
  • 26 августа 2011, 14:07
Вот! Вот свершилось! И х51 уделили внимание.
0
Перенес.
0
А я играюсь тут с Si4010 — 433МГц передатчик со встроенным 8051-м МК. Отлично подходит для беспроводных брелков. Отлаживать можно до бесконечности в RAM. Но если уж собрался прошить — то только один раз! Программатор ToolStick, интерфейс C2.
0
У него одноразовая флеш? Давно ищу себе, у нас чет не могу найти(Украина).По какой цене брал?
P.S.Думаю статья о применении Силабовских радиочастотных приемопередатчиков на примере Si4010 была была бы интересна.Лично мне так да).
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.