Samsung_tiny4412(驱动笔记03)----字符设备驱动基本操作及调用流程

发布者:EtherealGrace最新更新时间:2025-01-15 来源: cnblogs关键字:Samsung  tiny4412 手机看文章 扫描二维码
随时随地手机看文章

                    } else if (!cdev_get(p))

                        ret = -ENXIO;

                    spin_unlock(&cdev_lock);

                    cdev_put(new);

                    if (ret)

                        return ret;


                    ret = -ENXIO;

                    //把字符设备驱动的file_operations保存在file结构里

                    filp->f_op = fops_get(p->ops);

                    if (!filp->f_op)

                        goto out_cdev_put;


                    if (filp->f_op->open) {

                    //调用file_operations结构的open成员

                        ret = filp->f_op->open(inode, filp);

                        if (ret)

                            goto out_cdev_put;

                    }


                    return 0;


                out_cdev_put:

                    cdev_put(p);

                    return ret;

                }


[1] [2] [3]
关键字:Samsung  tiny4412 引用地址:Samsung_tiny4412(驱动笔记03)----字符设备驱动基本操作及调用流程

上一篇:Samsung_tiny4412(驱动笔记04)----volatile,container_of,file_operations,file,inode
下一篇:Samsung_tiny4412(驱动笔记01)----linux 3.5,U-Boot,Busybox,SD卡启动环境搭建

推荐阅读最新更新时间:2026-02-23 12:00

Samsung_tiny4412(驱动笔记03)----字符设备驱动基本操作及调用流程
/*********************************************************************************** * * 字符设备驱动基本操作及调用流程 * * 声明: * 1. 本系列文档是在vim下编辑,请尽量是用vim来阅读,在其它编辑器下可能会 * 不对齐,从而影响阅读. * 2. 以下所有的shell命令都是在root权限下运行的; *******************************************************************************
[单片机]
Samsung_tiny4412(驱动笔记10)----mdev,bus,device,driver,platform
/*********************************************************************************** * * mdev,bus,device,driver,platform * * 声明: * 1. 本系列文档是在vim下编辑,请尽量是用vim来阅读,在其它编辑器下可能会 * 不对齐,从而影响阅读. * 2. 由于本人水平有限,很难阐述清楚bus device driver platform的关系 * 所以强烈要求您详细参考本次提供的预热文章. * **********
[单片机]
Samsung_tiny4412(驱动笔记02)----ASM with C,MMU,Exception,GIC
/**************************************************************************** * * ASM with C,MMU,Exception,GIC * * 声明: * 1. 本系列文档是在vim下编辑,请尽量是用vim来阅读,在其它编辑器下可能会 * 不对齐,从而影响阅读. * 2. 以下所有的shell命令都是在root权限下运行的; * 3. 文中在需要往文件中写入内容的时候使用了如下2方式: * 1.如果文件不存在,创建文件;如果存在,以覆盖的方式往文件中添加内容: *
[单片机]
tiny4412学习笔记-将uboot、zImage、文件系统烧到emmc中
1、首先还是要将u-boot写入SD卡中从SD卡启动。 使用读卡器将SD插入电脑中,使用umount卸载u盘, fdisk -l显示其挂载点为 /dev/sdb1 切换到/home/bunfly/images/uboot_tiny4412/sd_fuse/tiny4412目录下,执行./sd_fusing.sh /dev/sdb 拨动最右边开关选择从SD卡启动。 附加编译过程:   1.进入开发板提供的源码文件包,解压uboot源码包。   cd /home/bunfly/source_code/   tar xf uboot_tiny4412-20130729.tgz   2.进入uboot文件夹,更改uboot中t
[单片机]
<font color='red'>tiny4412</font>学习<font color='red'>笔记</font>-将uboot、zImage、文件系统烧到emmc中
搭建Tiny4412的Qt交叉开发调试环境
前言 最近在学习Tiny4412下的Qt编程。第一步,首先得搭建好交叉开发调试环境。几经折腾之后,总算基本完成。兹整理一下期间的笔记,发到博客上,作为总结。也希望我入过的坑,其他人避免再入 。 另外提一点(也是事后查网才了解到的),目前业界流行Yocto/OpenEmbedded框架,很多厂商使用这个框架来构建分发开发板的BSP(包括kernel,rootfs,toolchain、gdb、库以及qt的库等),用户可以直接基于该BSP来搭建Qt交叉开发环境,从而免去自己搭建环境时所遇到的诸如依赖库缺失、toolchain版本不匹配等问题,节约了不必要的时间成本。相关案例非常多,“参考资料2~5”里列了几个例子(都未经验证,仅供参考)
[单片机]
搭建<font color='red'>Tiny4412</font>的Qt交叉开发调试环境
Tiny4412在Ubuntu下给MiniTools添加快捷方式
root@ubuntu:~/tiny4412/MiniTools-20140317# ls -l total 38008 -rw-r--r-- 1 root root 10716 Mar 29 2013 icon.png -rwxr-xr-x 1 root root 9895 Sep 12 2013 language-cn.qm -rwxr-xr-x 1 root root 37878393 Mar 17 2014 MiniTools -rwxr-xr-x 1 root root 1010312 Mar 17 2014 MiniTools_x64 -rwxr-xr-x 1 root root 292 May 15 201
[单片机]
<font color='red'>Tiny4412</font>在Ubuntu下给MiniTools添加快捷方式
tiny4412 串口驱动分析三 --- log打印的几个阶段之内核自解压
开发板:tiny4412ADK+S700 4GB Flash 主机:Wind7 64位 虚拟机:Vmware+Ubuntu12_04 u-boot:U-Boot 2010.12 Linux内核版本:linux-3.0.31 Android版本:android-4.1.2 内核自解压时期的串口打印 在zImage格式的内核启动时会自解压内核,此时打印信息如下: Uncompressing Linux... 这句话是在arch/arm/boot/compressed/misc.c中: void decompress_kernel(unsigned long output_start, unsigned lo
[单片机]
<font color='red'>tiny4412</font> 串口<font color='red'>驱动</font>分析三 --- log打印的几个阶段之内核自解压
tiny4412 串口驱动分析四 --- 修改默认的串口输出
开发板:tiny4412ADK+S700 4GB Flash 主机:Wind7 64位 虚拟机:Vmware+Ubuntu12_04 u-boot:U-Boot 2010.12 Linux内核版本:linux-3.0.31 Android版本:android-4.1.2 tiny4412默认是从uart0来输出和读取信息的,而tiny4412上留了两个串口,分别对应的是uart0和uart3,下面我们修改配置,使控制终端从uart0变成uart3 修改u-boot配置 在前面分析u-boot串口驱动的时候发现,在tiny4412.h中定义了 #define CONFIG_SERIAL0 1 然后再初始化串口的时候会根据这个
[单片机]
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

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