迅为4412开发板Linux驱动教程——编写简单应用调用驱动

发布者:阳关三迭最新更新时间:2021-12-03 来源: eefocus关键字:Linux驱动 手机看文章 扫描二维码
随时随地手机看文章

Linux驱动教程:http://pan.baidu.com/s/1c0hljUS


编写简单应用调用驱动——头文件

• 打印头文件

– include 调用打印函数printf

• 应用中调用文件需要的头文件

– #include 基本系统数据类型。系统的基本数据类型在32 编译

 

环境中保持为32 位值,并会在64 编译环境中增长为64 位值。

– #include 系统调用函数头文件。可以调用普通文件,目录,管

道,socket,字符,块的属性

– #include 定义了open函数

– #include 定义了close函数

– #include 定义了ioctl函数

• 调用的头文件是和编译器放在一起的

– 这里使用arm2009q3编译器,编译器使用arm-none-linux-gnueabi-gcc

• 在编译器目录下使用查找命令找到该头文件

– 例如#find ./ -name types.h

• 调用的函数

– open函数是返回文件描述符

– ioctl函数是应用向驱动传值

– close函数是关闭打开的文件

• 编写应用程序的代码,编译

– arm-none-linux-gnueabi-gcc -o invoke_hello invoke_hello.c -static

• 开发板中加载devicenode_linux_module驱动,运行应用


关键字:Linux驱动 引用地址:迅为4412开发板Linux驱动教程——编写简单应用调用驱动

上一篇:iTOP-4412开发板Linux系统下使用wifi模块配置
下一篇:迅为4412开发板Linux驱动教程——总线_设备_驱动注册流程详解

推荐阅读最新更新时间:2024-11-09 03:47

at91sam9g45 mcp2515 linux3.6.9驱动移植要点
平台at91sam9g45 linux版本 3.6.9 1 board-sam9m10g45ek.c 文件添加如下结构体 static struct mcp251x_platform_data mcp251x_info = { .oscillator_frequency = 8000000, .board_specific_setup = NULL,//&mcp251x_setup, .power_enable = NULL, //mcp251x_power_enable, .transceiver_enable = NULL, }; static struct spi_board_info can_spi_devices = {
[单片机]
Linux设备驱动开发 - 混杂设备驱动
混杂设备共享一个主设备号MISC_MAJOR(10),次设备号不同。 混杂设备本质上仍然是一个字符设备,所以混杂设备的操作跟字符设备基本相同。 在字符设备中,描述字符设备的结构体为struct cdev,在混杂设备中同样有一个描述混杂设备的结构体struct miscdevice。 1 struct miscdevice { 2 int minor; /* 次设备号 */ 3 const char *name; /* 设备名 */ 4 const struct file_operations *fops; /* 文件操作 */ 5 struct list
[单片机]
<font color='red'>Linux</font>设备<font color='red'>驱动</font>开发 - 混杂设备<font color='red'>驱动</font>
Linux2.6.32移植到MINI2440(2)添加Nand Flash驱动,修改分区
开发环境: 主机:fedora 14 虚拟机:vmware workstation 10 交叉编译工具:arm-linux-gcc 4.3.2 开发板:mini2440(2m nor ,64m sdram,256m nand) 一、添加头文件 在/arch/arm/mach-s3c2440/mach-mini2440.c中 vim mach_mini2440.c 添加进去如下头文件: #include linux/mtd/partitions.h #include linux/mtd/nand_ecc.h #include linux/mtd/mt
[单片机]
Linux设备驱动开发 - 字符设备驱动
struct cdev结构体: 1 struct cdev { 2 struct kobject kobj; /* 内嵌的kobject对象 */ 3 struct module *owner; /* 所属模块 */ 4 const struct file_operations *ops; /* 文件操作结构体 */ 5 struct list_head list; 6 dev_t dev; /* 设备号 */ 7 unsigned int count; 8 }; struct file_operations原形: 1 struct file_operations { 2 struct mod
[单片机]
<font color='red'>Linux</font>设备<font color='red'>驱动</font>开发 - 字符设备<font color='red'>驱动</font>
Linux驱动之中断处理体系结构简析
S3C2440中的中断处理最终是通过IRQ实现的,在Linux驱动之异常处理体系结构简析已经介绍了IRQ异常的处理过程,最终分析到了一个C函数asm_do_IRQ,接下来继续分析asm_do_IRQ,目标是推导出中断的处理过程。 看到asm_do_irq函数,它位于archarmkernelIrq.c中。它先根据irq中断号从irq_desc 数组中取出这个中断对应的desc结构体,irq中断号是根据INTOFFSET寄存器的值来确定的,这个寄存器里的值根据中断的来源不同会置位相应的位,它在调用C函数asm_do_IRQ之前被存放在r0中,在C函数中即是irq。 asmlinkage void __exception as
[单片机]
linux-2.6.32在mini2440开发板上移植-移植I2C-EEPROM 驱动
1 在内核中配置I2C 驱动 Linux-2.6.32.2 对S2C2440 的I2C 接口提供了完善的驱动,因此我们只需在内核中配置一下即可使用。 在内核源代码目录执行:make menuconfig,进入内核配置主菜单,依次选择进入如下子菜单: Device Drivers --- * I2C support --- I2C Hardware Bus support --- 如图,我们看到这里已经选择好了“ * S3C2410 I2C Driver”,这里的S3C2410 也可以适用于S3C2440,因为它们的I2C 端口及寄存器定义都是完全相同的。 以上配置所对
[单片机]
<font color='red'>linux</font>-2.6.32在mini2440<font color='red'>开发板</font>上移植-移植I2C-EEPROM <font color='red'>驱动</font>
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved