Keil µVision: новый чистый проект на ассемблере


Итак, вы накопили 6 тысяч долларов и приобрели лицензию на программный пакет RealView MDK ARM от компании Keil. Поздравляю! Надеюсь, он принесёт вам много радости. А теперь, попробуем содать новый проект на ассемблере. Что называется, с нуля.

Запустите программу. Возьмите меню Project -> New µVision Project..




Первым делом, программа попросит указать папку на диске, где в дальнейшем будут находиться файлы вашего проекта. Выберите папку и введите имя проекта. Например, new. Нажмите кнопку Сохранить




На следующнем экране будет предложено выбрать камешек, для которого создаётся проект. Вполне возможно, что это будет STM32F103RET6. Выбираем! Справа отображается список вкусностей выбранного камешка. Нажимаем OK




В качестве бесплатной услуги, вам будет предложено скопировать в проект Startup Code, предназначенный для Си. Отказываемся, нажмите кнопку Нет.




И, о чудо! Проект создан. Всё готово. Автоматически создан проект Target 1, а в нём группа файлов Source Group 1. В дальнейшем, вы можете переименовать их.




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




Создадим новый текстовый документ и назовём его new.asm.




Что бы добавить его в проект, вернёмся в окно Keil и сделаем двойной щелчёк на папке Source Group 1.




Откроется окно добавления файлов в проект. Дайте двойной щелчёк по файлу new.asm. И теперь, с виду ничего не произошло. Но это не так! Закройте окно выбора файлов, нажмите Close.




Раскройте Source Group 1 и в ней вы увидите файл. Он добавился!




На этом чудеса не заканчиваются! Двойной щелчёк по файлу и он откроется на редактирование! Ну вот, теперь уже действительно, можно работать!!




Наполним наш ассемблерный файл смыслом. Для этого, скопируйте в него следующий код:

STACK_TOP EQU 0x20000100

    PRESERVE8
    THUMB
            
    AREA RESET, CODE, READONLY

    ; Это таблица векторов прерываний
    ; Если прерывания не используются,
    ; таблицу можно сократить до двух строк
    DCD STACK_TOP ; Указатель на вершину стека
    DCD Start ; Вектор сброса

    ENTRY

; Начало программы
Start    PROC

; Первая строчка кода на ассемблере
; Бесконечный цикл
loop
    B loop

    ; Конец программы
    ENDP

    ; Конец файла
    END



Это уже целая программа. Оттранслируем её. Нажмите клавишу F7.




Ухх! Невероятно! Целых 12 байт!! Итак, новый чистый проект на ассемблере создан. Всё готово к тому, что бы наполнять его кодом. Но для начала, настроим среду. Об этом читайте дальше.