ADSP设备驱动和系统服务简介

    在Visual DSP++开发DSP过程中,应用好系统软件自带的设备驱动程序和系统服务程序,能快速的开发应用程序,不用写底层的驱动,十分方便。

 

    (1)ADI已经把所有有关DSP芯片的所有驱动及服务都已经构架好了,只要了解了其框架,写应用程序就像搭积木一样简单,首先简单介绍一下文件组成:

    ":/Program Files/Analog Devices/VisualDSP 5.0/Blackfin/include/services"下是所有系统服务头文件所在地,一般在应用程序里加一句"#include <services/services.h>"就可以了。

    ":/Program Files/Analog Devices/VisualDSP 5.0/Blackfin/lib/src/services"下是所有系统服务源文件所在地,如果调试程序可以把相应的服务程序复制到工程文件下,然后在加入工程就可以进入服务内部进行调试。

    ":/Program Files/Analog Devices/VisualDSP 5.0/Blackfin/include/drivers"下是所有设备驱动头文件所在地,一般在应用程序里加一句"#include <services/services.h>"和相应的驱动头文件如"#include <drivers/sport/adi_sport.h>"就可以把SPORT驱动加入到工程。

    ":/Program Files/Analog Devices/VisualDSP 5.0/Blackfin/lib/src/drivers"下是所有设备驱动源文件所在地,如果调试程序可以把相应的驱动程序复制到工程文件下,然后在加入工程就可以进入驱动内部进行调试。

 

 

    (2)下面简单介绍一下系统服务:

    系统服务对不同的芯片提供了统一的接口,是位于应用程序的最底层,实现的也是芯片最底层的功能,如设置IO口为输出则只需调用FLAG系统服务函数adi_flag_SetDirection,就可以了,非常简单。不同的服务程序之间有相互的联系和初始化顺序。

    联系如图所示:

 

    初始化顺序:

    1.Interrupt control service
    2.External bus interface unit
    3.Power management service
    4.Port control (if applicable)
    5.Deferred callback service
    6.DMA manager service
    7.Programmable flag service
    8.Timer service
    9.Real-time clock service
    10.Semaphore service

    初始化程序可以使用ADI提供的系统服务层初始化文件(adi_ssl_Init.c 与 adi_ssl_Init.h),在头文件设置宏定义就可以了。

 

    (3)下面简单介绍一下设备驱动:

    设备驱动也提供了统一的接口,对设备驱动的操作如同对文件操作一样简单,也可以对设备驱动进行控制,只要调用下面这几个函数就可以了,

adi_dev_Close
adi_dev_Control adi_dev_Init
adi_dev_Open adi_dev_Read
adi_dev_Terminate
adi_dev_Write 。

    设备驱动在程序中的位置如下图所示:

 ADSP设备驱动和系统服务简介_第1张图片

 

    (4)具体的内容请详细阅读ADI公司的《Device Drivers and System ServicesManual for XXX Processors》。

你可能感兴趣的:(ADSP设备驱动和系统服务简介)