at91sam9XXX的Linux驱动开发记录——暂定更新

来源:互联网 发布:中国移动手机oa软件 编辑:程序博客网 时间:2024/06/10 19:38

开贴记录一些驱动开发过程中的东西


开发前准备:驱动的开发离不开源码包,在linux源码包中对system type进行设置后,选择了什么芯片基于源码包编译的就是什么芯片的驱动。



头文件说明:驱动的开发肯定会涉及到芯片寄存器的操作。源码包中对哪种芯片进行了配置、编译,那么利用该源码包编译时头文件的目录就只想该芯片的相关头文件目录。

<linux/xxxx> 源码包根目录/include/linux

<asm/xxxx源码包根目录/arch/arm/include/asm    这里ARM跟配置有关,也可能是其他的

<mach/xxx源码包根目录/arch/arm/mach-xxxx/include/mach



一、相关函数

找相关外设的头文件时,对于at91sam9xxx这类芯片,直接看他的datasheet,再用里面的外设简写去源码包里相应的文件夹内找就可以了。例如要找操作timer的头文件,at91sam9g20的datasheet中timer counter的简写是TC,那么在arch/arm/mach-at91/include/mach对应at91_tc.h


在mach/gpio.h包含了at91sam9xxx IO的相关操作函数,对应的.c文件位于arch/arm/mach-at91中。

at91_set_gpio_input(unsigned pin, int use_pullup)   将对应IO初始化为输入,pullup为1使能上拉,为0不使能

int at91_get_gpio_value(unsigned pin)         设为输入后读取IO的值

int at91_set_gpio_value(unsigned pin, int value)        设为输出后设定IO的值

int __init_or_module at91_set_deglitch(unsigned pin, int is_on)     配置IO的“干扰滤波器”,【mostly used with IRQ handling】


在mach/gpio.h包含了at91sam9xxx  Timer/定时器的相关操作函数,对应的.c文件位于arch/arm/mach-at91中。


二、驱动调用

调用open函数打开设备的时候,后面的属性参数会影响对相关函数的调用。例如O_WRONLY(只写)情况下,对read函数的调用是不起作用的。即使调用了,也不会执行。

O_RDONLY——只读                      O_WRONLY——只写             O_RDWR——读写

这个可以参考这里 http://dev.yesky.com/468/7601968.shtml


三、中断

【在 linux 3.0 以后  ,原/kernel/irq/chip.c  中  set_irq_type 函数名称 变更为:  irq_set_irq_type,  其他函数也类似】

set_irq_type这个函数位于<linux/irq.h>


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 睾丸皮肤痒破了怎么办 鸡儿下面了蛋痒怎么办? 射精后小腹胀该怎么办 手压伤了有淤血怎么办 手挤压伤了肿了怎么办 手被挤压肿了怎么办 手砸伤了肿了怎么办 手被机器压伤了怎么办 上眼皮眼睛肿了怎么办 上眼皮内有淤血怎么办 种睫毛眼睛红痛怎么办 一只眼睛变红了怎么办 黑眼球缺了一角怎么办 眼镜度数配高了怎么办 孩子近视800度可怎么办 儿童眼睛近视怎么办才能恢复正常 小孩眼睛近视怎么办才能恢复正常 3岁宝宝近视怎么办啊 6个月婴儿近视怎么办 近视眼的人老了怎么办 一千多度的近视怎么办 近视镜片磨花了怎么办 眼镜镜片磨花了怎么办 戴眼镜鼻梁有印怎么办 狗狗发烧怎么办最有效 狗狗感冒怎么办最有效 狗狗发烧去医院怎么办 眼睛里长了虫子怎么办 吃了没熟的猪肉怎么办 没熟的鸡肉吃了怎么办 狗狗大便有绦虫怎么办 吃了有虫的猪肉怎么办 米猪肉吃了会怎么办 吃了鱼的寄生虫怎么办 鱼身体里有线虫怎么办 幼猫半夜一直叫怎么办 猫半夜4点叫不停怎么办 眼睛里长了黄斑怎么办 眼睛周围长小疙瘩怎么办 眼睛被手机砸了怎么办 眼睛被东西砸了怎么办