27.4. Использование макроопределений для прерываний и точек останова
Автоматизировать задание точек останова и процедуры определения прерываний можно, соответственно, с помощью системных макроопределений (макросов) _setSimBreak и_order Interrupt. Они могут быть выполнены макрокомандой установки execUserSetupQ.
Файл SetupAdvanced.mac может быть дополнен вызовами системных макроопределений задания точек останова и процедуры определения прерываний, как показано ниже:
SimulationSetup() {...
_interruptID =__orderlnterrupt( "IRQ", 4000, 2000, 0, 0, 0, 100 );
iff -1 == _interruptID ) {
_message "ERROR: failed to order interrupt";
}
_breakID = _setSimBreak( "UARTRBRTHR", "R", "AccessO" );
}
Если заменить файл SetupSimple.mac, используемый в описанном выше примере, на файл с вызовами системных макроопределений задания точек останова и процедуры определения прерываний, то установка точек останова и определение прерываний будут автоматически производиться при запуске C-SPY. Таким образом, при симуляции отпадет необходимость вручную заносить значения в диалоговые окна Interrupts и Breakpoints.
Примечание. Прежде чем загрузить файл SetupAdvanced.mac, необходимо предварительно удалить заданную точку останова и прерывание.
ГЛАВА 28
РАБОТА С МОДУЛЯМИ БИБЛИОТЕК
В данной главе помимо общих сведений на конкретном примере будет показано, как создать библиотечные модули и как объединить прикладной проект с библиотечным проектом.
28.1. Использование библиотек
В ходе работы над большим проектом, у разработчика, как правило, накапливается целая коллекция полезных подпрограмм, которые впоследствии можно использовать и в других приложениях. С тем, чтобы не транслировать эти подпрограммы всякий раз, когда в них возникнет необходимость, разработчик может сохранить их как объектные файлы, которые оттранслированы, но не скомпонованы. Коллекция подпрограмм в отдельном объектном файле называется библиотекой. Рекомендуется использовать библиотечные файлы для создания коллекций связанных подпрограмм, образующих драйверы устройства.
В состав IAR Embedded Workbench входит программа построения библиотек IAR XAR Library Builder™. IAR XAR Library Builder™ позволяет следующим образом управлять библиотеками:
• изменять тип модулей с PROGRAM на LIBRARY и наоборот;
• добавлять или удалять модули из библиотечного файла;
• создавать листинг имен модулей, имен точек входа и т. д.
Пример — программа Main.s79
Программа Main.s79 с помощью подпрограммы max устанавливает содержимое регистра R1 равным максимальному из значений регистров R1 и R2. Директива EXTERN объявляет max как внешний символ, разрешенный на время компоновки. Копия программы находится в каталоге arm\tutor.
Библиотечные подпрограммы
Две библиотечных подпрограммы образуют отдельно собираемую (ассемблируемую) библиотеку. Она состоит из подпрограммы max, вызываемой из main, и соответствующей ей подпрограммы min. Обе эти подпрограммы оперируют содержимым регистров Rl, R2 и возвращают результат в R1. Файл, содержащий эти библиотечные подпрограммы, называется Maxmin.s79, а его копия
НА ГЛАВНУЮ | | ЧТО ТАКОЕ PIC ? | | ПРОГРАММАТОР | | ПРОЕКТЫ | | СТАТЬИ | | ССЫЛКИ | | КАРТА САЙТА |