1.分析S3C2440的LED控制
看CPU的芯片中LED有四个PIN控制的,GPB5-GPB8,2440有九组GPIO,要写驱动
GPBA....GPBJ ,有三个寄存器来控制这GPBCON, GPBDAT, GPBUP
Register Address R/W Description Reset Value
GPBCON 0x56000010 R/W Configures the pins of port B 0x0
GPBDAT 0x56000014 R/W The data register for port B Undef.
GPBUP 0x56000018 R/W Pull-up disable register for port B 0x0
Reserved 0x5600001c
上拉电阻和下拉电阻,上拉电阻就是固定高电平,下拉就是和地接固定为低电平
LED1 GBP5
LED2 GBP6
LED3 GBP7
LED4 GBP8
上面的是基本知识。。。
首先要理解linux驱动的架构。
搭建的框架是
module_init(dev_init);------》驱动程序的入口
module_exit(dev_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("FriendlyARM Inc.");
dev_init中调用->杂项设备(misc device)
杂项设备也是在嵌入式系统中用得比较多的一种设备驱动,其实misc_register就是用主标号10调用register_chrdev()的。
字符设备就是以字符作为顺序访问的设备,如键盘,鼠标