嵌入式linux中驱动和Qt如何用在一起
嵌入式linux中驱动的使用在QT中,驱动的使用教程都是编写一个小程序,但那都是命令型。如何在Qt中使用自己写的驱动?还有自己写过windows的qt串口,arm里的串口变个头文件就行了吗? 怎么没有一个回一下呢 难道没有人关心,从底层开发到上层开发的过程吗。 现在大多数所谓的Linux的嵌入式开发其实都是调用API去做开发,很少有人关注BSP层面应该如何用了,你最好去看看Linux的BSP部分应该怎么写。可能比在这里问强得多。wince的BSP部分的驱动编写很容易,没有弄过linux的。 QT中调用驱动也没有什么特殊的,还是像普通linux程序调驱动open/close一样的。 hihi66 发表于 2013-1-12 11:10 static/image/common/back.gif难道没有人关心,从底层开发到上层开发的过程吗。
我的理解是和QT没啥关系吧,有这个驱动或者模块,加载或者调用就行了,QT可以理解为一个很高级,加强了C++某些特性的库而已,本身和驱动开发没啥关系,你的嵌入式linux有某个驱动,就能在linux下访问了,没有,就要按照驱动开发的方式加到你的内核当中。 open -> ioctrl / read / write -> close 驱动必须实现字符设备或块设备等 ksws0482846 发表于 2013-1-12 16:35 static/image/common/back.gif
驱动必须实现字符设备或块设备等
我说的是在Qt中如何使用自己写的驱动啊,怎么加到QT里 wangzheyu 发表于 2013-1-12 16:22 static/image/common/back.gif
我的理解是和QT没啥关系吧,有这个驱动或者模块,加载或者调用就行了,QT可以理解为一个很高级,加强了C+ ...
我想问的是一般在Qt只是研究图形的,学驱动是只是说驱动怎么编,要是写一个流水灯的驱动,用一个图形界面控制。怎么把操作驱动的代码加到qt里。 hihi66 发表于 2013-1-12 17:05 static/image/common/back.gif
我想问的是一般在Qt只是研究图形的,学驱动是只是说驱动怎么编,要是写一个流水灯的驱动,用一个图形界面 ...
QT里面用open打开LED的驱动文件,用ioctl这种办法,不过还有更高效的办法,因为你问的问题比较浅,估计高级办法你会继续加问,所以我就不说了,我其实也只刚用3个月,现在已经开始做实用程序了。QT无非是做界面方便,然后有个叫槽的机制使程序能像WINDOWS那样事件驱动 如果你的意思是图形界面控制流水灯,那就是驱动实现控制方式,qt与驱动交流。就是我上面说的。
应用层是无法直接操作硬件的 ksws0482846 发表于 2013-1-12 17:17 static/image/common/back.gif
如果你的意思是图形界面控制流水灯,那就是驱动实现控制方式,qt与驱动交流。就是我上面说的。
应用层是无 ...
mmap是可以的,我用这方式,应用层操作任意6410的寄存器 NJ8888 发表于 2013-1-12 17:20 static/image/common/back.gif
mmap是可以的,我用这方式,应用层操作任意6410的寄存器
mmap参数是虚拟地址还是物理地址,是直接可以讲物理地址映射到用户空间吗?
我只是在学习内核,所以应用程序方面也没怎么了解 本帖最后由 NJ8888 于 2013-1-12 18:02 编辑
ksws0482846 发表于 2013-1-12 17:31 static/image/common/back.gif
mmap参数是虚拟地址还是物理地址,是直接可以讲物理地址映射到用户空间吗?
我只是在学习内核,所以应用 ...
fbb=open("/dev/mem",O_RDWR | O_SYNC);
map_base =(char *)mmap(0,4096,PROT_READ|PROT_WRITE,MAP_SHARED,fbb,0x7f008000);
virt_addr2 = map_base+0x824;
GLEDstate=*(volatile unsigned int *)(virt_addr2);
while(1)
{
GLEDstate^=0x00000002;
*(volatile unsigned int *)(virt_addr2)=GLEDstate;
}
上面示范了mmap在GPIO上的使用,无论内核还是应用都一样写 ,为了说明重点,还有初始化GPIO部分没添加,0x7f008000是6410 GPIO的物理基地址 说的意思是,qt里加上linux的些头文件,就能用想用命令形式一样操作是吗 mmap映射这种方法很方便啊,像裸机一样,有没有什么弊端啊 本帖最后由 NJ8888 于 2013-1-12 19:03 编辑
hihi66 发表于 2013-1-12 18:49 static/image/common/back.gif
mmap映射这种方法很方便啊,像裸机一样,有没有什么弊端啊
乱用的话啥都可能发生,比如多个线程用相同资源,总之你在应用层有了绝对控制权,可以把LINUX时钟片换成其他值,串口也换成其他非标波特(我就把串口换成1.58Mbaud,为了与1.5625Mbaud的DSP通讯),你可随时写看门狗,随时软件复位,还可改写显示控制器使之花屏并恢复(想想看一个应用程序一会花屏又恢复,是不是很奇妙)。。。。。。。。。。。。总之想干啥就干啥,完全无视OS屏障,又能享受OS带来的好处,比如完整的网络协议,等等---------------------这是我三个月自学期间的最大收获,据我所查,目前中文网络上没有其他人像我这样玩弄LINUX,有的话可能是我的帖子,呵呵{:lol:} hihi66 发表于 2013-1-12 18:28 static/image/common/back.gif
说的意思是,qt里加上linux的些头文件,就能用想用命令形式一样操作是吗
QT有自己进一步封装的头文件,可用方便应用开发,当然也可利用其他函数,LINUX代码开放了,想用那个拷进来 NJ8888 发表于 2013-1-12 17:57
fbb=open("/dev/mem",O_RDWR | O_SYNC);
map_base =(char *)mmap(0,4096,PROT_READ|PROT_WRITE,MAP_SHARE ...
学习了,有独创 Mark Linux mmap
页:
[1]