omap3開發系列—— 中斷
小狼@內部中斷定義
在/arch/arm/plat-omap/include/mach/irqs.h中,如:如果要用gpio作為中斷呢?#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
先看/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);
只要給gpio156乙個低電平,即可觸發中斷。static irqreturn_t test_interrupt(int irq,void *dev_id,struct pt_regs * regs)^m
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...