OMAP3開發系列 中斷

2021-06-28 15:11:16 字數 2675 閱讀 7673

omap3開發系列—— 中斷

小狼@內部中斷定義

在/arch/arm/plat-omap/include/mach/irqs.h中,如:

#define int_34xx_bench_mpu_emul 3

#define int_34xx_st_mcbsp2_irq 4

#define int_34xx_st_mcbsp3_irq 5

#define int_34xx_ssm_abort_irq 6

#define int_34xx_sys_nirq 7

#define int_34xx_d2d_fw_irq 8

#define int_34xx_prcm_mpu_irq 11

#define int_34xx_mcbsp1_irq 16

#define int_34xx_mcbsp2_irq 17

#define int_34xx_mcbsp3_irq 22

#define int_34xx_mcbsp4_irq 23

#define int_34xx_cam_irq 24

#define int_34xx_mcbsp5_irq 27

#define int_34xx_gpio_bank1 29

#define int_34xx_gpio_bank2 30

#define int_34xx_gpio_bank3 31

#define int_34xx_gpio_bank4 32

#define int_34xx_gpio_bank5 33

#define int_34xx_gpio_bank6 34

#define int_34xx_usim_irq 35

#define int_34xx_wdt3_irq 36

#define int_34xx_spi4_irq 48

#define int_34xx_sha1md52_irq 49

#define int_34xx_fpka_ready_irq 50

#define int_34xx_sha1md51_irq 51

#define int_34xx_rng_irq 52

#define int_34xx_i2c3_irq 61

#define int_34xx_fpka_error_irq 64

如果要用gpio作為中斷呢?

先看/arch/arm/plat-omap/include/mach/gpio.h檔案:

#define omap_gpio_irq(nr) (omap_gpio_is_mpuio(nr) ? ih_mpuio_base + ((nr) & 0x0f) : ih_gpio_base + (nr))
用法舉例:

假定使用gpio14作為中斷輸入,則可以使用如下**得到irq號:
omap_gpio_irq(14);
同時,檔案需要包含檔案。

使用乙個gpio作為中斷之前,需要進行請求,同時還需要設定方向,參考arch/arm/plat-omap/debug-devices.c檔案中的使用範例:

smc91x_resources[1].start = gpio_to_irq(gpio);

smc91x_resources[1].end = gpio_to_irq(gpio);

status = gpio_request(gpio, "smc91x irq");

if(status < 0)

gpio_direction_input(gpio);

乙個簡單的能觸發中斷的範例:

先需要在mux.c和mux.h中設定gpio156:

增加:

mux_cfg_34xx("gpio156", 0x18c, omap34xx_mux_mode4 | omap34xx_pin_input_pullup)/* for gpio156 */

增加: gpio156,

初始化:

//for test jp9 gp156 omap_cfg_reg(gpio156);//

gpio_request(156,"jp156 reset_reg");

gpio_direction_input(156);

set_irq_type(omap_gpio_irq(156),irq_type_level_low);

enable_irq(gpio_to_irq(156));

申請中斷:

request_irq(omap_gpio_irq(156),&test_interrupt,0,"reg_rest",null);
中斷處理函式:

static irqreturn_t test_interrupt(int irq,void *dev_id,struct pt_regs * regs)^m

只要給gpio156乙個低電平,即可觸發中斷。

mysql 開發基礎系列3

如果要用來表示年月日,通常用date 來表示。如果要用來表示年月日時分秒,通常用datetime 表示。如果只用來表示時分秒,通常用time 來表示。timestamp表示格式 yyyy mm dd hh mm ss。如果只是表示年份,可以用year 來表示。date,datetime,time是常...

Windows UWP開發系列 3D變換

在win8.1中,引入了乙個planeprojection可以實現3d變換,但它的變換方式比較簡單,只能實現基本的旋轉操作。在windows 10 uwp中,引入了乙個更加強大的3d變換transform3d,系統缺省內置了兩中變換方式 perspectivetransform3d和composit...

iOS9系列 3DTouch開發

3dtouch 是ios9系統系統下,在iphone6s iphone6s plus 手機上才能夠使用的功能。熟練使用後,發現還是很便捷的。但是模擬器是不支援這個手勢的。只能在真機上進行測試,但是有大神在github開源了乙個外掛程式,以便在模擬器上使用sbshortcutmenusimulator...