Keil µVision: новый чистый проект на ассемблере (продолжение)
Начало на
первой странице.
Вероятно вы уже знаете, что такое заголовочный файл для камешка.
Это файл на языке C, в котором содержатся имена периферии
и соотв. им адреса. Не нужно определять имена вручную, не нужно путаться в длинных HEX адресах.
Достаточно написать просто:
Atmel:
ldi R16, (1<<PB7)
out PORTB, R16
К пинам и портам мы обращаемся по имени. Точно так же сделано и в кортексах.
Но вот в чём дело, к сожалению СИ-шный файл заголовков не подхватывается ассемблером в Keil.
Я так и не смог разобраться, как его прицепить к ассемблеру. Пришлось сделать этот файл
вручную. В принципе, это сделать нетрудно, вычистив из оригинального файла
stm32f10x.h всякий мусор. В итоге, у меня получился файл
stm32f10x.asm,
который можно прикреплять к проекту и обращаться с периферией уже по-человечески,
то есть по имени.
Ещё неплохо бы сделать вот что, вы вероятно захотите разбить весь проект на
отдельные части, растолкав их по разным файлам. Создайте в каталоге с проектом папку inc.
Складывайте в неё ассемблерные файлы, а вставить их в проект можно директивой
GET.
GET C:\My Project\inc\external.asm
Упс.. И тут вы можете столкнуться с проблемой. К сожалению, Keil - он немножко туповатый,
и не понимает пути к файлу,
если в них содержатся пробелы. В этом случае, нужно указывать короткий путь к файлу в формате DOS.
Для получения короткого пути, воспользуйтесь утилитой
Path To Clipboard Валерия Доможирова.
Но более элегантно эту проблему можно решить, указав путь к папке с файлами
в настройках ассемблера. Для этого, зайдите в настройки по
ALT + F7.
На вкладке
Asm введите путь к папке с файлами в поле
Include Paths.
Можно ввести несколько путей через точку с запятой
;
Теперь директива
GET упрощается. Достаточно указать имя файла,
а путь к нему ассемблер ищет из Include Paths.
GET external.asm
Кстати, можно использовать даже русские имена файлов с пробелами.
У меня работает.
На этом вступительная часть заканчивается. Мы создали
новый чистый проект, который можно наполнять кодом. Продолжение - на страницах сайта
stm32asm.ru.
Желаю вам удачи и всяческого успеха в написании программ на ассемблере.
Для такого мощного и доступного ядра, как Cortex-M3!
p.s. с кейлом я знакомился с кортексами и делал первые шаги в познании архитектуры ARM.
Всё это было в прошлом, и я уже давно так не работаю.
Теперь - исключительно блокнот, на утилитах GCC.