官术网_书友最值得收藏!

6.2.1 OMAP平臺部分的移植

OMAP平臺部分的移植內容在arch/arm/plat-omap/目錄中,其中include目錄為OMAP這種平臺的頭文件。

arch/arm/plat-omap/目錄中的KConfig文件用于配置OMAP平臺的各種內容,包含了CONFIG_ARCH_OMAP3等選項。

arch/arm/plat-omap/目錄中的Makefile內容如下所示:

    # 通用的支持
    obj-y := common.o sram.o clock.o devices.o dma.o mux.o gpio.o \
          usb.o fb.o vram.o vrfb.o io.o
    obj-m :=
    obj-n :=
    obj-  :=
    # OCPI interconnect support for 1710, 1610 and 5912
    obj-$(CONFIG_ARCH_OMAP16XX) += ocpi.o
    obj-$(CONFIG_OMAP_MCBSP) += mcbsp.o
    obj-$(CONFIG_OMAP_IOMMU) += iommu.o iovmm.o
    obj-$(CONFIG_CPU_FREQ) += cpu-omap.o
    obj-$(CONFIG_OMAP_DM_TIMER) += dmtimer.o
    obj-$(CONFIG_OMAP_BOOT_REASON) += bootreason.o
    obj-$(CONFIG_OMAP_COMPONENT_VERSION) += component-version.o
    obj-$(CONFIG_OMAP_GPIO_SWITCH) += gpio-switch.o
    obj-$(CONFIG_OMAP_DEBUG_DEVICES) += debug-devices.o
    obj-$(CONFIG_OMAP_DEBUG_LEDS) += debug-leds.o
    i2c-omap-$(CONFIG_I2C_OMAP) := i2c.o
    obj-y += $(i2c-omap-m) $(i2c-omap-y)
    # OMAP mailbox framework
    obj-$(CONFIG_OMAP_MBOX_FWK) += mailbox.o
    obj-$(CONFIG_OMAP_PM_NOOP) += omap-pm-noop.o
    obj-$(CONFIG_OMAP_PM_SRF) += omap-pm-srf.o \
                      resource.o

在OMAP平臺的配置中,基本的內容直接進行編譯,例如common.c,sram.c,clock.c, devices.c,dma.c等。而例如CPU_FREQ ,MCBSP,GPIO_SWITCH等內容屬于可選的,根據配置選項進行編譯。

arch/arm/plat-omap/include為OMAP平臺的頭文件目錄,其中包含兩個子目錄:mach和dspbridge。

mach是OMAP相關頭文件,這個目錄中的很多文件的功能是這個硬件平臺在Linux中移植中約定俗成的名稱,例如dma.h表示DMA信息的頭文件,irqs.h是中斷信息相關的頭文件,gpio是通用輸入輸出接口的相關頭文件。

由于OMAP3系列的處理器比較復雜,因此其中一部分功能做成了“庫”的形式,這些庫的頭文件也在當前目錄中,它們在各個驅動中可以被調用,例如:display.h中包含了一些和顯示子系統(DSS)相關的數據結構和接口,其中一些內容如下所示:

    struct omap_dss_board_info {
        int (*get_last_off_on_transaction_id)(struct device *dev);
        int num_devices;
        struct omap_dss_device **devices;
        struct omap_dss_device *default_device;
    };
    int omap_dss_start_device(struct omap_dss_device *dssdev);
    void omap_dss_stop_device(struct omap_dss_device *dssdev);
    int omap_dss_get_num_overlay_managers(void);
    struct omap_overlay_manager *omap_dss_get_overlay_manager(int num);
    int omap_dss_get_num_overlays(void);
    struct omap_overlay *omap_dss_get_overlay(int num);

這部分接口的具體實現,則在驅動程序的相關目錄drivers/video/omap/dss/display.c中完成。

dspbridge目錄是和控制DSP相關的頭文件。由于OMAP是包含了ARM和DSP的雙核處理器,為了在ARM方面控制DSP,TI目前采用了dspbridge(DSP橋)的方式。

主站蜘蛛池模板: 安陆市| 常德市| 宁远县| 六安市| 子洲县| 绩溪县| 玉林市| 房山区| 牡丹江市| 定安县| 图木舒克市| 绥滨县| 上犹县| 威海市| 信丰县| 葫芦岛市| 南靖县| 分宜县| 石阡县| 江永县| 阳泉市| 苗栗县| 尖扎县| 英超| 凤翔县| 罗平县| 四川省| 阳朔县| 长乐市| 贡山| 灌阳县| 牡丹江市| 靖边县| 临江市| 那曲县| 莫力| 岑溪市| 新巴尔虎右旗| 延长县| 德州市| 自贡市|