- Android系統級深入開發
- 韓超 梁泉
- 579字
- 2018-12-29 13:39:40
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橋)的方式。
推薦閱讀
- Flutter開發實戰詳解
- R語言經典實例(原書第2版)
- Java:Data Science Made Easy
- Learn WebAssembly
- Mastering Python Networking
- 零基礎入門學習Python(第2版)
- TypeScript 2.x By Example
- Building Slack Bots
- Learning Bootstrap 4(Second Edition)
- Learning Cocos2d-JS Game Development
- Laravel Design Patterns and Best Practices
- 算法超簡單:趣味游戲帶你輕松入門與實踐
- Docker on Windows
- HTML5程序設計基礎教程
- Manage Your SAP Projects with SAP Activate