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. |