开发可统计单词个数的Android驱动程序(3)

发布者:平和宽容最新更新时间:2024-10-21 来源: cnblogs关键字:Android  驱动程序 手机看文章 扫描二维码
随时随地手机看文章

1.  get_word_count函数将mem数组中第1个为“”的字符作为字符串的结尾符,因此在word_count_write函数中将 mem[count]的值设为“”,否则get_word_count函数无法知道要统计单词数的字符串到哪里结束。由于mem数组的长度为 10000,而字符串最后一个字符为“”,因此待统计的字符串最大长度为9999。

2.  单词数使用int类型变量存储。在word_count_write函数中统计出了单词数(word_count变量的值),在 word_count_read函数中将word_count整型变量值分解成4个字节存储在buf中。因此,在应用程序中需要再将这4个字节组合成 int类型的值。

十、编译、安装、卸载Linux驱动程序

      在上一节word_count驱动程序已经全部编写完成了,而且多次编译测试该驱动程序。安装和卸载word_count驱动也做过多次。 word_count驱动与read_write目录中的驱动一样,也有一个build.sh和3个与平台相关的脚本文件。这些脚本文件与6.3.5节的 实现类似,这里不再详细介绍。现在执行build.sh脚本文件,并选择要编译的平台。然后执行下面两行命令查看日志输出信息和word_count驱动 模块(word_count.ko)的信息。

# dmesg |tail -n 1

# modinfo word_count.ko

如果显示如图6-12所示的信息,表明word_count驱动工作完全正常。

本书的脚本文件都是使用insmod命令安装Linux驱动的,除了该命令外,使用modprobe命令也可以安装Linux驱动。insmod和 modprobe的区别是modprobe命令可以检查驱动模块的依赖性。如A模块依赖于B模块(装载A之前必须先装载B)。如果使用insmod命令装 载A模块,会出现错误。而使用modprobe命令装载A模块,B模块会现在装载。在使用modprobe命令装载驱动模块之前,需要先使用depmod 命令检测Linux驱动模块的依赖关系。

# depmod  /root/drivers/ch06/word_count/word_count.ko

depmod命令实际上将Linux驱动模块文件(包括其路径)添加到如下的文件中。

/lib/modules/3.0.0-16-generic/modules.dep

使用depmod命令检测完依赖关系后,就可以调用modprobe命令装载Linux驱动。

# modprobe word_count

使用depmod和modprobe命令需要注意如下几点:

1. depmod命令必须使用Linux驱动模块(.ko文件)的绝对路径。

2. depmod命令会将内核模块的依赖信息写入当前正在使用的内核的modules.dep文件。例如,笔者的Ubuntu Linux使用的是Linux3.0.0.16,所以应到3.0.0-16-generic目录去寻找modules.dep文件。如果读者使用了其他 Linux内核,需要到相应的目录去寻找modules.dep文件。

3. modprobe命令只需使用驱动名称即可,不需要跟.ko

[1] [2]
关键字:Android  驱动程序 引用地址:开发可统计单词个数的Android驱动程序(3)

上一篇:Android培训班(86)内核运行之前的引导程序
下一篇:开发可统计单词个数的Android驱动程序(2)

推荐阅读最新更新时间:2024-11-09 20:36

坑爹,6G安卓弱于2G苹果,Android和IOS真正内幕
 众所周知苹果要比一般Android手机流畅,市面上6核、8核安卓手机随处可见,专卖 店也各种鼓吹6G8G的运行内存。下面就随嵌入式小编一起来了解一下相关内容吧。 坑爹,6G安卓弱于2G苹果,Android和IOS真正内幕 自从苹果手机火了之后,这么多年最不少见的就是满大街的各种PK苹果机型,即使是三星即将上市的ATIV S8,三星对其市场非常看好,搭配6G内存并号称将“秒杀”iphone8,“秒杀”这一网络术语近年来在互联网中用途广泛,如果你能真正认识“秒杀” 一词,不难理解号称“秒杀”某某产品,均是比不过某某产品,仅仅是接近而已,为什么这么多Android系统的手机产品都比不过搭配IOS系统的一家苹果公司呢?很少有人会
[嵌入式]
2018年Android、WinPhone均价相当,微软爆发力强
        研究机构IDC 28日公布,2014年全球智慧型手机出货量预估将年增23.1%至12亿支、2018年年度出货量预估将达18亿,使得2013-2018年平均复合年增率(CAGR)达到12.3%。IDC手机团队研究经理Ramon Llamas指出,从现在到2018年这段期间印度、印尼、俄罗斯等主要新兴市场智慧型手机出货量预估将呈现倍增。此外,2018年中国智慧机出货量预估将占该年度全球数量近三分之一比重。 IDC预估今年全球智慧机均价(ASP)将年减6.3%至314美元、2018年进一步下探267美元。就作业系统而言,IDC预估Android平台今年均价为254美元、2018年下探215美元。Android手机今年出货
[手机便携]
华为向安卓开发者发邀请,在自家应用商店上架App
据外媒消息,华为正在鼓励安卓应用开发者在自家应用商店上架App,从而将自家应用市场作为Google Play Store的替代品。 华为在发给安卓开发者的邮件中指出,华为在过去两年中推出的3.5亿部手机上都有自己的应用商店(其中一半是在供向海外市场的),App Gallery(华为应用商店)每月有2.7亿活跃用户。 邮件中华为表示,我们意识到您的Android应用程序XXX还没有在我们的AppGallery中发布;为了保证您的应用程序能够被我们的用户顺利使用,华为承诺为您提供全面的支持,帮助您将您的应用程序发布到我们的AppGallery中。因此,我们想邀请您免费加入我们的56万开发者社区。 此外,在谷歌Play
[手机便携]
硬核联盟和安卓松动 或从「苹果税」让步开始
上周,苹果宣布要将小型开发者缴纳的APP Store费用削减一半。此举意味着,未来这些开发者的新项目在App Store的佣金会由30% 降低到15%,规则的修改将在2021年1月1日开始启动。 不过,这一重大优惠政策的实施有一个前提:只针对那些年收入不超过100万美元的⼩型企业或个体开发者。 消息放出之后,第一时间让人想起前不久因为对 “苹果税”不满而不惜让《堡垒之夜》退出 iOS 生态的 epic(其现在正试图通过云游戏方式曲线回归 iOS)。epic 显然不是那类年收入在百万美元以下的小型企业或个体开发者,所以,《堡垒之夜》短期之内依然无法通过正常渠道回归。 即便如此,苹果能够对自己从2007年至今坚持了13年的 “苹果
[手机便携]
硬核联盟和<font color='red'>安卓</font>松动 或从「苹果税」让步开始
Android 8.0正式版确定本月发布:时间暂定21日
    Android O正式版何时推送,成为目前不少安卓用户关注的重点,从时间安排上来看,本月谷歌一定是会推出的。   爆料大神evleaks刚刚在自己的Twitter上爆料称,Android 8.0正式版预计会在下下周发布,准确时间极有可能是8月21日。   8月21日是美国的日全食,而之前Android Police主编也曾暗示,谷歌打算在日全食这一天发布安卓8.0正式版,这样会让大家印象更深刻。   其实从侧面来看,Android 8.0正式版的工作已经基本搞定,就差选个满意的日子推送了。对于要升级Android 8.0的用户来说,新系统其实更多的是提升使用体验,比如谷歌花费很大精力,优化了8.0续航(后台程序强力监控)。
[手机便携]
一加8系列迎来ColorOS 12公测:基于安卓12开发!
近日,一加8系列进行了的基于安卓12进行开发的ColorOS 12公测系统推送,此次推送将是一加所有公测推送中,量级最大的一次。 据悉,此次更新推送的用户还将包含原本的ColorOS 12的内测用户,以及此前报名公测申请,并通过审核的用户。 而从一加与OPPO此前的惯例来看,在公测版系统进入测试版流程后,过一段时间就是全量的正式版推送,预计一加8/8T/8 Pro普通用户不会等太久也能用上ColorOS 12了。 相比此前的系统,ColorOS 12加入了跨屏互联功能,并引入了全新的响应式设计系统,并在自由浮窗,隐私权限等方面做出了相应的优化提升。 但同时,根据一加官方公告的消息,当前的公测版系统已经出现了一些Bug。 当
[手机便携]
一加8系列迎来ColorOS 12公测:基于<font color='red'>安卓</font>12开发!
OK6410A 开发板 (八) 28 linux-5.11 OK6410A 进程之间的区别
进程是什么 单核系统上同一时间内,只有一个进程(进程A)在跑,该进程占用了 1.cpu的所有寄存器资源 2.cp15协处理器的所有寄存器资源 其他的进程都在内存中,也就是说 进程 B /进程 C 等 其实就是内存中的一组数据 那么这组数据是什么 这组数据 应该是 TCB TCB 从上到下包括什么 1.pt_regs (18*4 B) // 用于 系统调用 2.栈 8KB - 18*4 - (sizeof(thread_info)) - (sizeof(task_struct)) // 用于内核线程执行 3.thread_info (sizeof(thread_info))=528B // 用于 调度 4.task_s
[单片机]
s3c6410的UART设备驱动(1)
1、 这段话摘于《设备驱动开发详解》 在使用串口核心层这个通用串口tty驱动层的接口后,一个串口驱动要完成的主要工作: (1)、定义uart_driver、uart_ops、uart_port等结构体的实例并在适当的地方根据具体硬件和驱动的情况初始化它们,当然具体设备的驱动可以将这些结构体在新定义的xxx_uart_driver、xxx_uart_ops、xxx_uart_port之内。 (2)、在模块初始化是调用uart_register_driver和uart_add_port注册UART驱动并添加端口,在模块卸载时调用uart_unregister_driver和uart_remove_one_port以注销
[单片机]
s3c<font color='red'>6410</font>的UART设备驱动(1)
小广播
设计资源 培训 开发板 精华推荐

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

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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