Предыдущая Следующая

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, а его копия


Предыдущая Следующая






Warning: include(./news.php) [function.include]: failed to open stream: No such file or directory in /var/www/picprof/data/www/picprof.com/book/book4_267.html on line 142

Warning: include(./news.php) [function.include]: failed to open stream: No such file or directory in /var/www/picprof/data/www/picprof.com/book/book4_267.html on line 142

Warning: include() [function.include]: Failed opening './news.php' for inclusion (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/picprof/data/www/picprof.com/book/book4_267.html on line 142