【Android源码 栏目提醒】:网学会员为广大网友收集整理了,在Ubuntu上为Android系统内置C可执行程序测试Linux内核驱动程序 - 老罗的Android之旅 - 博客频道 - CSDN - 其它资料,希望对大家有所帮助!
CSDN首页 资讯 论坛 博客 下载 搜索 更多 您还未登录! 登录 注册 帮助 老罗的
Android之旅 爱生活,爱
Android 目录视图 摘要视图 订阅 个人资料 新版论坛系列介绍之二——功能介绍篇 SDCC软件开发者大会:编程马拉松团队火热招募中 用开源IaaS构建自己的云——OpenStack征稿启事 5折限时抢购移动开发者大会门票! 在Ubuntu上为
Android系统内置C可执行程序测试Linux内核驱动程序 分类:
Android 2011-06-27 22:00 13064人阅读 评论59 收藏 举报 在前一篇文章中,我们介绍了如何在Ubuntu上为
Android系统编写Linux内核驱动程序。
在这个名为hello的 Linux内核驱动程序中,创建三个不同的文件节点来供用户空间访问,分别是传统的设备文件/dev/hello、proc系 统文件/proc/hello和devfs系统属性文件/sys/class/hello/hello/val。
进一步,还通过cat命令来直接访问/proc/hello Luoshengyang 和/sys/class/hello/hello/val文件来,以验证驱动程序的正确性。
在这一篇文章里,我们将通过自己编写的C可执行 程序来访问设备文件/dev/hello。
可能读者会觉得奇怪,怎么能在
Android系统中用C语言来编写应用程序呢?
Android系统上的应用程序不都是Java应用程序吗?其实是可以的,读者不妨用adb shell命令连上
Android模拟 器,在/system/bin目录下可以看到很多C可执行程序,如cat命令。
今天,我们就来学习一下怎么在
Android系统 中添加用C语言编写的可执行程序吧。
一. 参照在Ubuntu上为
Android系统编写Linux内核驱动程序一文,准备好Linux驱动程序。
使用
Android模拟器 访问:570674次 加载包含这个Linux驱动程序的内核文件,并且使用adb shell命令连接上模拟,验证在/dev目录中存在设备文件 积分:6823分 hello。
排名:第368名 二. 进入到
Android源代码工程的external目录,创建hello目录: 原创:54篇 转载:0篇 译文:0篇 评论:2130条 USER-NAMEMACHINE-NAME:/
Android cd external USER-NAMEMACHINE-NAME:/
Android/external mkdir hello 博客公告 本博客所有文章均为原创,欢 三. 在hello目录中新建hello.c文件: 迎交流,欢迎转载;转载请勿 篡改内容,并且注明出处,禁 止用于商业目的,谢谢! cpp 1 0. icue sdoh nld ltti.gt 博客专栏 2 0. icue sdi.gt nld lttlbh 3 0. icue fnlh nld ltct.gt 老罗的
Android 4 0. dfn EIENM /e/elquot eieDVC_AEquotdvhlo 之旅 5 0. n anit rc hr rv itmin agca ag 文章数:54篇 6 0. 阅读量: 7 0. n d 1 itf - 570061 8 0. n a itvl0 9 0. d pnDVC_AE _DR f oeEIENMORW 0 1. ff 1 id - 1 1. rnfquotald o pn eie s/quot EIENM pitFie t oe dvc .nDVC_AE 2 1. eun 1 rtr - 阅读排行 3 1. 4 1. 29659 5 1. 在Ubuntu上下载、编译和安装
Android最新源代码 rnfquoted rgnl au:n pitRa oiia vle/quot 26283
Android应用程序启动过程源代码分析 6 1. edf vl iefvl rad ampaszoa 7 1. rnfquotd//quot a pit.nnvl 22999 在Ubuntu上为
Android系统编写Linux内核驱动程序 8 1. a vl5 22398
Android进程间通信(IPC)机制Binder简要介绍和学习计划 r n f quot r t v l e t . n n v l D V C _ A E 9 1. pitWie au d o s//quot a EIENM 20561
Android硬件抽象层(HAL)概要介绍和学习计划 0 2. rtd vl iefvl wiefampaszoa 19842 1 2. 在Ubuntu上下载、编译和安装
Android最新内核源代码(Linux Kernel) 2 2. rnfquoted h au gi:n pitRa tevleaan/quot 15958 在Ubuntu上为
Android增加硬件抽象层(HAL)模块访问Linux内核驱动程序 3 2. edf vl iefvl rad ampaszoa 15476
Android应用程序键盘(Keyboard)消息处理机制分析 4 2. rnfquotd//quot a pit.nnvl 15206 Service Manager成为
Android进程间通信(IPC)机制Binder守护进程之路 5 2. lsd coef 14966 6 2. eun rtr 0 在Ubuntu为
Android硬件抽象层(HAL)模块编写JNI方法提供Java访问硬件服务接口 7 2. 评论排行 这个程序的作用中,打开/dev/hello文件,然后先读出/dev/hello文件中的值,接着写入值5到/dev/hello中去,blog.csdn.net/luoshengyang/article/details/6571210 1/8
Android应用程序启动过程源代码分析 250 最后再次读出/dev/hello文件中的值,看看是否是我们刚才写入的值5。
从/dev/hello文件读写的值实际上就是我们 127 虚拟的硬件的寄存器val的值。
在Ubuntu上下载、编译和安装
Android最新源代码 119 在Ubuntu上为
Android系统内置Java应用程序测试Application Frameworks层的硬件服务 110 四. 在hello目录中新建
Android.mk文件:
Android应用程序键盘(Keyboard)消息处理机制分析
Android博客文章整理 101 LOCAL_PATH : call my-dir 95 在Ubuntu上下载、编译和安装
Android最新内核源代码(Linux Kernel) 86 在Ubuntu上为
Android系统编写Linux内核驱动程序 include CLEAR_VARS 83 在Ubuntu上为
Android增加硬件抽象层(HAL)模块访问Linux内核驱动程序 66
Android系统的开机画面显示过程分析 LOCAL_MODULE_TAGS : optional 60
Android系统在新进程中启动自定义服务过程(startService)的原理分析 LOCAL_MODULE : hello 最新评论 LOCAL_SRC_FILES : call all-subdir-c-files 在Ubuntu上为
Android增加硬件抽象层(HAL)模块访问Linux内核驱动程序 cofspring2012: include BUILD_EXECUTABLE Luoshengyang:谢谢楼主这么 及时回复哦,之前不知道为什么 注意,BUILD_EXECUTABLE表示我们要编译的是可执行程序。
重新打包之后还是不对,刚才又 重新... 五. 参照如何单独编译
Android源代码中的模块一文,使用mmm命令进行编译: 在Ubuntu上为
Android增加硬件抽象层(HAL)模块访问Linux内核驱动程序 Luoshengyang: cofspring2012:这个权限没能 设置好,只有root用户有读写权 USER-NAMEMACHINE-NAME:/
Android mmm ./external/hello 限。
编译成功后,就可以在out/target/product/gerneric/system/bin目录下,看到可执行文件hello了。
Android应用程序与SurfaceFlinger服务的关系概述和学习计划 Luoshengyang: LakeFollow:10月底的样子, 多谢支持啊! 六. 重新打包
Android系统文件system.img:
Android应用程序与SurfaceFlinger服务的关系概述和学习计划 LakeFollow: 罗老师,可以透露 USER-NAMEMACHINE-NAME:/
Android make snod 一下你的书,具体什么时候出来 吗?我也要买一本、、、纸质的 书,看起来,没那么吃力、、、 这样,重新打包后的system.img文件就包含刚才编译好的hello可执行文件了。
...
Android应用程序与SurfaceFlinger服务的关系概述和学习计划 七. 运行模拟器,使用/system/bin/hello可执行程序来访问Linux内核驱动程序: xiaolong662007: 罗老师又更新 了啊 USER-NAMEMACHINE-NAME:/
Android emulator -kernel 在Ubuntu上为
Android增加硬件抽象层(HAL)模块访问Linux内核驱动程序 cofspring2012: ./kernel/common/arch/arm/boot/zImage amp Luoshengyang:谢谢楼主热心 回复哦,我之前是有重新编译init 模块的,不过,ramdis... USER-NAMEMACHINE-NAME:/
Android adb shell
Android应用程序键盘(Keyboard)消息处理机制分析 Luoshengyang: xukai7:我明白 rootandroid:/ cd system/bin 你的问题。
有一点可能你需要再 理解一下。
UI线程被唤醒之后, 不一定是返回到Jav... rootandroid:/system/bin ./hello
Android应用程序键盘(Keyboard)消息处理机制分析 xukai7: 罗老师,有一个问题我一 直很纠结:1 UI线程是一个 Read the original value: looper循环的闭合框架,如果正 处于block状... 0.
Android应用程序与SurfaceFlinger服务的关系概述和学习计划 mvpstevenlin: 期待新作!!!! Write value 5 to /dev/hello.
Android应用程序与SurfaceFlinger服务的关系概述和学习计划 Luoshengyang: xlinz:多谢支 持。
UI的东西其实是很多的,而 Read the value again: 且还比较复杂,不过去学习它还 是值得的,毕竟在移动平... 5. 看到这个结果,就说我们编写的C可执行程序可以访问我们编写的Linux内核驱动程序了。
介绍完了如何使用C语言编写的可执行程序来访问我们的Linux内核驱动程序,读者可能会问,能不能在
Android的Application Frameworks提供Java接口来访问Linux内核驱动程序呢?可以的,接下来的几篇文章中, 我们将介绍如何在
Android的Application Frameworks中,增加Java接口来访问Linux内核驱动程序,敬请期待。
上一篇:在Ubuntu上为
Android系统编写Linux内核驱动程序 分享到: 下一篇:在Ubuntu上为
Android增加硬件抽象层(HAL)模块访问Linux内核驱动程序 顶 踩 22 0 查看评论 28楼 jeffade 2012-07-18 10:46发表 你好,我编译的时候出现一下错误。
不知博主能否给些建议。
谢谢blog.csdn.net/luoshengyang/article/details/6571210 2/8 make:进入目录/home/weide/share/
android/
android_gingerbread make: 没有规则可以创建“out/target/product/generic/obj/EXECUTABLES/myled_intermediates/LINKED/myled”需要的 目标“out/target/product/generic/obj/lib/crtbegin_dynamic.o”。
停止。
27楼 gzzaigcn 2012-07-10 11:41发表
android的终端下面当然可以跑C程序,楼主分析的很好 26楼 lqxandroid2012 2012-07-09 16:20发表 不错,不错,我还以为只能在linux kernel下写呢。
不过是我们脑子太僵硬,HAL 就是c语言写的,这样写肯定可以的了。
呵 呵。
不过楼主是原生态,
android,我的S5pv210的
android2.3 居然不支持 mmm ./external/hello .