資源簡介
本人在華清遠見培訓嵌入式期間整理的部分驅動代碼,方便初學者學習。

代碼片段和文件信息
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#define?I2C_RDWR?0x0707?
/*********定義struct?i2c_rdwr_ioctl_data和struct
?*?i2c_msg,要和內核一致*******/
struct?i2c_msg
{
unsigned?short?addr;
unsigned?short?flags;
unsigned?short?len;
unsigned?char?*buf;
};
struct?i2c_rdwr_ioctl_data
{
struct?i2c_msg?*msgs;
int?nmsgs;?
/*?nmsgs這個數量決定了有多少開始信號,對于“單開始時序”,取1*/
};
/***********主程序***********/
int?main()
{
int?fd?i;
struct?i2c_rdwr_ioctl_data?pm_data;
struct?i2c_msg?msgs[2];
if?((fd?=?open(“/dev/i2c-0“O_RDWR))?0)
{
perror(“open?error“);
exit(-1);
}
msgs[0].addr?=?0x2d;?//?tps659101?設備地址
msgs[0].flags?=?0;?//?write
msgs[0].len?=?2;?
msgs[0].buf?=?(unsigned?char?*)malloc(2);
msgs[0].buf[0]?=?0x33;?//vaux2?register?address
msgs[0].buf[1]?=?0xd;
pm_data.msgs?=?msgs;
pm_data.nmsgs?=?1;?
#if?1
if?(ioctl(fd?I2C_RDWR?(unsigned?long)&pm_data)?0)
{
perror(“ioctl?error?1“);
exit(-1);
}
printf(“write?over...\n“);
#endif
/*******************************************************************/
#if?0
usleep(100000);
msgs[0].addr?=?0x50;?//?at24c02a?設備地址
msgs[0].flags?=?0;?//?write
msgs[0].len?=?1;?
msgs[0].buf[0]?=?0x0;?//address?in?at24c02a
msgs[1].addr?=?0x50;?//?at24c02a?設備地址?
msgs[1].flags?=?1;?//?read
msgs[1].len?=?8;?//?len?for?read
msgs[1].buf?=?malloc(8);//??read?content
e2prom_data.msgs?=?msgs;
e2prom_data.nmsgs?=?2;?
if?(ioctl(fd?I2C_RDWR?(unsigned?long)&e2prom_data)?0)
{
perror(“ioctl?error?2“);
exit(-1);
}
for?(i=0;?i<8;?i++)
{
printf(“0x%x?“?msgs[1].buf[i]);
}
printf(“\n“);
#endif
close(fd);
return?0;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1837??2013-10-14?10:10??驅動開發\adc_power.c
?????文件????????378??2013-06-23?14:18??驅動開發\block\sbull\Makefile
?????文件???????8380??2013-06-20?16:16??驅動開發\block\sbull\sbull.c
?????文件??????42042??2013-06-26?15:16??驅動開發\dm9000.c
?????文件??????27403??2013-04-12?09:06??驅動開發\DM9000寄存器說明.docx
?????文件????????378??2013-06-23?14:18??驅動開發\driver\block\sbull\Makefile
?????文件???????8380??2013-06-20?16:16??驅動開發\driver\block\sbull\sbull.c
?????文件??????42042??2013-06-26?15:16??驅動開發\driver\dm9000.c
?????文件??????27403??2013-04-12?09:06??驅動開發\driver\DM9000寄存器說明.docx
?????文件???????1837??2013-10-14?10:10??驅動開發\driver\fs210_adc\adc_power.c
?????文件???????4114??2013-10-14?14:13??驅動開發\driver\fs210_adc\fs210_adc.c
?????文件???????6889??2013-10-12?14:11??驅動開發\driver\fs210_async\fs210_key_all.c
?????文件????????533??2013-10-12?14:11??驅動開發\driver\fs210_async\key_test_async.c
?????文件???????6050??2013-10-11?14:08??驅動開發\driver\fs210_key\fs210_key.c
?????文件????????402??2012-07-01?12:30??驅動開發\driver\fs210_key\key_test.c
?????文件???????2976??2013-10-12?16:03??驅動開發\driver\fs210_wtd\fs210_wdt.c
?????文件????????532??2013-10-12?16:03??驅動開發\driver\fs210_wtd\wdt_test.c
?????文件???????3267??2013-09-02?13:27??驅動開發\driver\pwm\fs210_pwm.c
?????文件????????171??2013-09-02?13:19??驅動開發\driver\pwm\fs210_pwm.h
?????文件???????1015??2013-09-02?13:17??驅動開發\driver\pwm\pwm_music.c
?????文件???????5048??2013-06-07?15:46??驅動開發\driver\pwm\pwm_music.h
?????文件???????1755??2013-10-14?16:52??驅動開發\driver\s5pv210_e2prom\e2prom_app_mode.c
?????文件???????8149??2013-10-15?10:39??驅動開發\driver\s5pv210_i2c\e2prom_test
?????文件???????1047??2013-10-15?11:57??驅動開發\driver\s5pv210_i2c\e2prom_test.c
?????文件???????3936??2013-10-15?11:57??驅動開發\driver\s5pv210_i2c\fs210_e2prom.c
?????文件??????94829??2013-10-15?10:39??驅動開發\driver\s5pv210_i2c\fs210_e2prom.ko
?????文件???????1755??2013-10-14?16:52??驅動開發\e2prom_app_mode.c
?????文件???????1121??2013-09-09?09:48??驅動開發\ex1-hello-world\hello.c
?????文件????????422??2012-07-04?11:05??驅動開發\ex1-hello-world\Makefile
?????文件????????474??2011-03-10?08:29??驅動開發\ex1-hello-world\README
............此處省略331個文件信息
評論
共有 條評論