穿prada的008
获得 0 次赞
帮助过0人
论坛里应该有一部分人是想学驱动,却不知道该怎么入门吧,在这里我教大家写一个helloworld的简单随linux内核加载的驱动。 1.首先在/kernel/drivers下建一个新的文件夹hello,在文件夹里添加四个文件分别是hello.c,hello.hkconfig,makefile, hello.c文件里也有注释,这个文件主要就是为了注册和初始化设备文件以及定义驱动接口,主要是用啦file_operations这个结构体,大家想了解驱动可以先了解这个,这个程序里的注释可以帮助大家理解下一个简单驱动的结构 2.修改kconfig,内容如下 3.修改makefile,内容如下 4.返回dirvers目录下修改kconfig,在最后加一句:source"drivers/hello/kconfig" 5.修改makefle文件,在里面添加一句 obj-$(config_hello_test) += hello/ 6.返回kernel目录下,执行makemenuconfig 在/driver路径下找到设备,选定(注:这里设备的名字和我们之前写的kconfig有一定的关系,修改kconfig的相应的参数,可以改变menu下的名字) ,然后返回 makekernel.img 7,然后创建测试文件,在driver目录下创建目录hellotest,加入两个文件test和android.mk 然后mm,在sdk/out/target/product/rkpx2/system/bin目录下找到测试文件,(如mm无法执行,可在根目录下执行下sourcebuild/envsetup.sh) 8.最后测试下结果,在window目录下,用adb工具把测试文件push进板中,然后在文件所在的位置给文件赋上权限,执行chmod777 test 执行./testhello 或./testgoodbye可看到结果如下,即驱动可成功加载
rayeager px2板子root后就可以使用adb wireless工具调试啦,无需连接usb线,通过wifi连接使用完整的adb功能! adb wireless能够让手机用无线来取代usb连接而使用adb工具,需要root.adb(android debug bridge)是android提供的一个通用的调试工具,借助这个工具,我们可以管理设备或手机模拟器的状态. 还可以进行以下的操作: 1.快速更新设备或手机模拟器中的代码,如应用或android系统升级. 2.在设备上运行shell命令. 3.管理设备或手机模拟器上的预定端口. 4.在设备或手机模拟器上复制或粘贴文件. adb wireless工具:
反复查阅资料,确认android只需要在kernel中开启uvc支持就能正常使用该标准的摄像头,现在不能使用是怎么回事呢?在多次实现无果后,john只要向chipspark的攻城狮求助。很快,他们就给出了解决方案。具体操作如下: 1、menuconfig选择uvc:(开启kernel的uvc特性) device drivers ---> multimedia support ---> video capture adapters ---> v4l usb devices ---> usb video class (uvc) uvc input events device support 2、menuconfig去选soc:(调整rksoc的支持) device drivers ---> multimedia support ---> video capture adapters ---> rockchip supported soc cameras ---> < > rkxx camera sensor interface driver 3、替换librk_on2.so/camera.rkpx2board.so库:(附在后面) adb push librk_on2.so /system/lib/ adb push camera.rkpx2board.so /system/lib/hw/ adb的操作方式为,先解压附件提供的adb文件夹到电脑的任意目录,随后px2连上电脑,电脑上打开adb文件夹,在文件夹空白处按住shift并点击鼠标右键,选择“在此处打开命令窗口” okay 按照刚才的配置编译好kernel,刷入开机~ usb摄像头完美呈现!附上luck8742的测试效果图: 简单总结下这个问题的处置,其实px2作为android的开发板,其本身具备支持uvc标准摄像头的能力,只是在kernel的配置上需要进一步的开启。同时,rk本身对uvc的摄像头,尤其是这次遇到的c270这类采用mpeg编码的摄像头有相应解码的库文件,通过进一步更新库文件即可实现对uvc摄像头的支持哦~!感谢攻城狮的快速反应,感谢广大芯客的大力支持。希望可以跟大家分享更多,谢谢
rayeager px2开发板具有非常强大的多媒体处理能力,如果需要调用硬件加速针对普通媒体文件/码流进行解码,只需按照安卓标准调用多媒体相关接口即可。 针对一些行业用户的特殊需求,rayeager px2实际上也开放了接口可以对h.264等裸码流进行解码。 这里提供一份代码即可实现h.264裸码流的解码,如果您具有一定的android系统开发经验,很快就能理解并进行相关改写。使用方法: 在px2的android编译环境根目录下将代码解压,并进入chipspark_px2_h264_decoder文件夹,执行以下命令进行编译: mm -b 即可生成可执行文件,路径为:out/target/product/rkpx2/system/bin/vpu_apidemo 将该文件通过adb推送到px2开发板上,并注意chmod 777赋予执行权限。 在adb shell中通过以下命令执行解码: ./vpu_apidemo -i h264码流文件 -coding 7 其中-coding 7表示该文件为h.264编码,实际上该代码经过修改可以解码很多其它类型码流甚至进行编码工作。通过logcat可以看到相关的解码状态。 相关接口api在这个路径:/hardware/rk29/libon2/vpu_api.h 代码:
rayeager px2增强版采用rockchip px2处理器,内置双核arm cortex-a9核心,内存1gb ddr3@400mhz,最高运行频率1.4ghz,配备mali-400 mp4 gpu,支持opengl es 1.1/2.0和openvg 1.1,同时支持arm ds-5 streamline性能分析工具,支持xbmc以及最新android 4.4.2,lcd、vga、hdmi,拥有95个扩展引脚,包括gpio、i2cx3、spi、cif、rgb、saradc、hsadc、uart、pwmx2、ts等常见接口。在安防、智能家居、导航仪、车载电子、点播系统等方面均可应用,领域广泛。 电路图:
基于px2编译的一个gpio控制的demo apk 功能:控制gpio_0_d4的引脚状态 备注:gpio引脚默认为high 算是抛砖引玉吧 考虑先用红外控制 顺带熟悉红外接口~