VDK: атрибуты файла Печать
Добавил(а) microsin   

VDK-приложения обычно велики по размеру и могут требовать наличие внешней памяти (SDRAM, FLASH). Чтобы помочь разделить приложение на отдельные части, и пометить код, предназначенный для внутренней памяти, VDK имеет несколько атрибутов файлов, которые используются в библиотеках выполнения кода в реальном времени (runtime libraries).

Примечание: атрибуты файлов задаются в исходном коде и подключаемых файлах с помощью директивы #pragma file_attr.

Все библиотеки VDK и TMK собраны с атрибутами prefersMem=internal и prefersMemNum=30; с дополнительным атрибутом ADI_OS=VDK в случае библиотек VDK или ADI_OS=TMK в случае библиотеки TMK. Файлы в библиотеках VDK могут иметь и другие атрибуты для осуществления разбиения приложения VDK на различные области памяти. Файл VDK может иметь один или большее количество таких атрибутов, в зависимости от функций, которые определены в файле. Ниже приведен список атрибутов, которые относятся к VDK.

DeviceDrivers
DeviceFlags
ErrorHandling
Events
HeapMarshaller
HistoryAndStatus
ISR
MemoryPools
Messages
MP_Messages
Mutex
OS_Component=DeviceDrivers
OS_Component=DeviceFlags
OS_Component=Events
OS_Component=MemoryPools
OS_Component=Messages
OS_Component=MP_Messages
OS_Component=Mutex
OS_Component=Regions
OS_Component=Semaphores
OS_Component=Threads
OS_Internals
PoolMarshaller
Regions
RoundRobin
Semaphores
Startup
System
Threads

Многие относящиеся к VDK атрибуты файлов показывают компоненты VDK, которые связаны с относящимися к ним API функциям, находящимся в исходном файле. Два атрибута добавляются ко всем таким файлам: атрибут, обозначающий вид компонента (например, Semaphores), и атрибут OS_Component со значением определенного компонента (например OS_Component=Semaphores). Вот атрибуты компонента:

OS_Component=DeviceDrivers
OS_Component=DeviceFlags
OS_Component=Events
OS_Component=MemoryPools
OS_Component=Messages
OS_Component=MP_Messages
OS_Component=Mutex
OS_Component=Regions
OS_Component=Semaphores
OS_Component=Threads

Также некоторые файлы VDK имеют дополнительные атрибуты, чтобы указать специальный тип компонента, отличающийся от атрибутов, приведенных выше.

RoundRobin. Этот атрибут устанавливается совместно с атрибутом Threads. Помеченный им код будет линкован только если в приложении имеются приоритеты round-robin.

HeapMarshaller. Этот атрибут устанавливается совместно с атрибутом MP_Messages. Помеченный им код будет линкован только если в приложении имеются сообщения между процессорами, и сообщения передаются через кучу.

PoolMarshaller. Этот атрибут также устанавливается совместно с атрибутом MP_Messages. Помеченный им код будет линкован только если в приложении есть сообщения между процессорами, и сообщения передаются через пул.

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

ISR. Функции и макросы, которые обычно вызываются из уровня обработки прерывания, и должны поэтому по возможности находиться во внутренней памяти (SRAM).

OS_Internals. Эти функции используются внутри VDK, и они по возможности также должны быть размещены во внутренней памяти.

System. Функции, которые могут читать или изменять свойства приложения, такие как свойства таймера или маска прерываний.

Startup. Функции, используемые VDK перед запуском функции Run() в самом приоритетном потоке с автоматическим запуском (boot thread).

ErrorHandling. Функции, обрабатывающие ошибки VDK, такие как DispatchThreadError() API

HistoryAndStatus. Функции, используемые механизмом записи в лог истории ошибок VDK или API, используемым для получения информации, отображаемой в окне состояния VDK (отладочное окно VDK Status window).

[Ссылки]

1. VisualDSP++ 5.0 Kernel (VDK) User’s Guide site:analog.com.