搜索找到 33 个匹配

xuehuazhou
周二 8月 14, 2012 3:19 pm
版面: 四海同心QNX论坛
主题: QNX下如何将大量数据快速写入至硬盘文件中
回复总数: 2
阅读次数: 2865

Re: QNX下如何将大量数据快速写入至硬盘文件中

xtang 写了:预先准备一个大文件,然后往里写,应该会快一点...
还有这么一说?
xuehuazhou
周四 8月 09, 2012 11:44 am
版面: 四海同心QNX论坛
主题: QNX下如何将大量数据快速写入至硬盘文件中
回复总数: 2
阅读次数: 2865

QNX下如何将大量数据快速写入至硬盘文件中

请问论坛中的各位大大,对于qnx怎么才能够快速将大量数据写入至硬盘中,我试过fwrite()和write(),测试发现其速度大概就20M左右,这个与sata硬盘的速度相距甚远,sata的写入速度应该在数百兆左右。请问还有什么方式可以写入文件呢,而且保证写入的速度很快。PS.对于QNX的本地的DMA模式已开启,有劳各位大大指点,在此谢过。
xuehuazhou
周三 6月 27, 2012 2:41 pm
版面: 四海同心QNX论坛
主题: 急!!!求助QNX死机问题
回复总数: 1
阅读次数: 1753

Re: 急!!!求助QNX死机问题

应该你程序导致,应该是其一直占用CPU0,导致界面与网络等进程无法获得CPU时间片,导致假死的情况。你可以尝试下将你的程序绑定在非CPU0的核上,看看是什么情况?
xuehuazhou
周五 5月 18, 2012 9:21 am
版面: 四海同心QNX论坛
主题: 系统貌似死机怎么查原因?
回复总数: 2
阅读次数: 2144

Re: 系统貌似死机怎么查原因?

QNX master 写了:在一个工控机上运行QNX和一些应用程序,运行大概10分钟键盘鼠标就没反应了,ping也ping不通,除了硬盘存储数据没有对硬件访问的程序,只有写网络socket通信程序,怎么查死机原因呢?
尝试下,将你的程序绑定在非CPU0上运行试试,可能是你的程序一直占用着CPU0导致的假死。
xuehuazhou
周四 2月 23, 2012 11:42 pm
版面: 四海同心QNX论坛
主题: 请教论坛的各位大大以及唐老师,QNX下一个奇怪的问题:一个函数中,多加条语句,耗时明变少了;少条语句,耗时却明显增多了?
回复总数: 2
阅读次数: 2088

Re: 请教论坛的各位大大以及唐老师,QNX下一个奇怪的问题:一个函数中,多加条语句,耗时明变少了;少条语句,耗时却明显

机器人 写了:猜测一下
有可能是系统调度引起的问题

虽然汇编看起来是变长了,但是如果系统没有调度,一直顺着走完了

有时候虽然代码短,但是中间系统跑去干其他事情了,时间就长了
不太可能啊。这个线程一直占着CPU不放呢,期间没有别的事件发生哈。
xuehuazhou
周四 2月 23, 2012 10:32 pm
版面: 四海同心QNX论坛
主题: qnx6.5启动镜像制作问题
回复总数: 1
阅读次数: 1842

Re: qnx6.5启动镜像制作问题

我的开发环境是Linux,有一块CF卡装在second primery通道,在制作qnx启动镜像过程中,有几个问题不是很明白 1、我在linux下用cfdisk分区了并设为启动,但是这样作的启动盘启动不起来?后来在qnx环境中用fdisk将CF卡进行了分区,设为启动,然后再在linux中用dinit -f xxx.ifs -h /dev/sdb1制作启动盘,这样就可以启动了,请问ipl-diskpc1和ipl-diskpc2的区别,pc2可以用 dinit -b /dev/xxx写到CF卡中,但是pc1是什么时候写入CF卡中呢?用dd命令吗?怎么操作 请问这中间有什么道道吗? 2、那个dis...
xuehuazhou
周四 2月 23, 2012 10:00 pm
版面: 四海同心QNX论坛
主题: 请教论坛的各位大大以及唐老师,QNX下一个奇怪的问题:一个函数中,多加条语句,耗时明变少了;少条语句,耗时却明显增多了?
回复总数: 2
阅读次数: 2088

请教论坛的各位大大以及唐老师,QNX下一个奇怪的问题:一个函数中,多加条语句,耗时明变少了;少条语句,耗时却明显增多了?

(02.24更新) 基本确定问题所在:应该是编译器优化掉的缘故,我将多加赋值语句的程序的工程分别开启与关闭编译器优化,获得的结果正好是起初问题中提到的时间上的差异,谢谢诸位的关注 唐老师以及各位论坛的大大,我现在遇到一个奇怪的问题:在一个函数中,多一条语句执行的时间却比少一条语句耗时多得多: 大致情况如下:在Main函数中执行一个死循环,死循环中多次执行一个函数,当该函数中加入一条赋值语句(data = 5000000;) 时,耗时减少;反之少了那条语句,耗时却明显变多了,这个是为何呢?照理说,反过来才对哈。系统为QNX6.5 ,硬件为X86架构; Main 函数中死循环如下: while(1...
xuehuazhou
周一 12月 19, 2011 10:38 am
版面: 四海同心QNX论坛
主题: 请问Xtang以及各位大大,关于PCI/PCIE传输的速度问题。
回复总数: 4
阅读次数: 2605

Re: 请问Xtang以及各位大大,关于PCI/PCIE传输的速度问题。

xtang 写了:你引用的源码是最基本的memcpy(),是按字节考贝的。

真的memcpy(),一般都做了优化,使用汇编,并尽可能使用32bit来copy。(当然要考虑开始和结束的字节对齐)

QNX上没有别的memcpy()函数,所以你要么使用QNX的memcpy命令。要么开发你自己的128位的memcpy()命令。
:D ,自己搞个memcpy,估计效率未必高。请问下关于QNX是否支持PCIe么?还是说PCIe只能当成PCI使用呢?看下comquter 大大的说的,貌似QNX不支持PCIe特有的功能?
xuehuazhou
周一 12月 12, 2011 3:30 pm
版面: 四海同心QNX论坛
主题: 请问Xtang以及各位大大,关于PCI/PCIE传输的速度问题。
回复总数: 4
阅读次数: 2605

Re: 请问Xtang以及各位大大,关于PCI/PCIE传输的速度问题。

对于x86来说,PCI的IO操作需要用in/out,而MEMORY则可以直接读写,包括memcpy()等数据块操作.对于其他平台,由于没有IO的概念,IO和MEMORY都可以直接读写.实际上现在大多数PCI卡都不需要IO操作了. 从软件角度来说,PCI与PCIE不同的是中断产生的方式,PCIE支持基于消息传递的中断,也支持传统的PCI中断,但QNX的系统一般只支持传统模式,所以PCI驱动与PCIE驱动没什么不同. 你好,请问关于memorycpy()的话,是按照32位来操作的么?只是处理的节奏紧凑些,还是说,按照我给块一次性传递过去呢?因为我看了下关于memcpy()网上的一些源码。我看了下...
xuehuazhou
周四 12月 08, 2011 11:32 pm
版面: 四海同心QNX论坛
主题: 请问各位大大,我这个中断线程耗时太多,是什么缘故呢?
回复总数: 11
阅读次数: 4218

Re: 请问各位大大,我这个中断线程耗时太多,是什么缘故呢?

啊,你这个是x86吧。 中断0在x86里是时钟中断,你的程序是线程中断,当kernel退出 (InterruptWait() exit) ,进入到线程处理中时,中断0可以打断你的处理,经过三个程序处理后,才会回到你的线程。所以当中有一个长停顿。 如果你不需要网络,可以把那两个占用中断0的进程杀掉,(slay io-pkt-v4-hc qconn)应该情况会好转。 如果你需要io-pkt-h4-vc, 那你只有自己改ISR,你的中断优先级应该高于中断0,它就无法打断你的处理了。 ISR时间过长,确实会影响系统。但是如果你的中断处理确实需要高速响应,那是无法回避的。常用的方法是用ISR,在ISR...
xuehuazhou
周二 12月 06, 2011 7:35 pm
版面: 四海同心QNX论坛
主题: 请问各位大大,我这个中断线程耗时太多,是什么缘故呢?
回复总数: 11
阅读次数: 4218

Re: 请问各位大大,我这个中断线程耗时太多,是什么缘故呢?

确实有点诡异。你要量的是interruptwait_exit 和 interruptwait_enter之间的时间。 比如 Evt#564353和Evt#564360,这个相当于931.381 - 931.376 = 0.005 (ms) 这个看上去还是挺靠谱的。而四根黑线的前两根,则是931.374 - 931.349 = 0.025 (ms) 则大了5倍。不太确信是什么原因。从Event ID来看,这两个事件中间还有约10个事件发生,你可以查一下time line,看看这些有没有关连性。 你的中断源的频率有多高?你的线程优先级足够高,唯一可以挡住你的线程的,就是内核无法正常退出(因为中断...
xuehuazhou
周三 11月 30, 2011 7:22 pm
版面: 四海同心QNX论坛
主题: 请问各位大大,我这个中断线程耗时太多,是什么缘故呢?
回复总数: 11
阅读次数: 4218

Re: 请问各位大大,我这个中断线程耗时太多,是什么缘故呢?

嗯,看上去好象是在RUNNING。Thread2 当中的几根黑线是什么事件? 还有一个是我注意到你的Thread2有CPU绑定,先把这个绑定去除(Thread2可以任意CPU执行),还会是同样结果吗? xtang,你好,Thread2当中的4根黑线是4个Interruptwait()的exit与enter ,照理应该不会有两个interruptwait 的enter哈?挺奇怪的,详细的信息如下图所示: http://i44.tinypic.com/ekffqg.jpg 按照你说的,将CPU核绑定解除了,还是会出现这样的情况,只是黑线少了两条(应该分别是Interruptwait() exit...
xuehuazhou
周二 11月 29, 2011 8:37 pm
版面: 四海同心QNX论坛
主题: 请问各位大大,我这个中断线程耗时太多,是什么缘故呢?
回复总数: 11
阅读次数: 4218

Re: 请问各位大大,我这个中断线程耗时太多,是什么缘故呢?

对于我们所使用的进程中断部分,照理说,真正计算的部分只有以下一个语句而已,如下: counter++ 在InterruptWait(NULL,NULL)状态下一直是阻塞状态,直至产生中断,会执行counter++ 在System Profiler Info的信息来看,在这30us内没有被中断哈?线程一直占用着CPU,应该说CPU是一直执行着线程Thread2吧。我不明白的地方是counter++为何消耗30us呢? PS.这个System Profiler的信息与上图虽然不是来自一个进程,但是它们的Code是一模一样的; 我不知道你从哪里得出的结论,线程一直占用着CPU。线程,除非它的状态是...
xuehuazhou
周一 11月 28, 2011 5:46 pm
版面: 四海同心QNX论坛
主题: 请问各位大大,我这个中断线程耗时太多,是什么缘故呢?
回复总数: 11
阅读次数: 4218

Re: 请问各位大大,我这个中断线程耗时太多,是什么缘故呢?

你挂的是时钟中断。时钟中断被好几个程序共享着呢。虽然你的中断线程优先级很高,但是别的程序都是直接在中断模式下工作,最后才论到你。 pidin irq 可以看到还有哪些进程共享中断。 建议你试试别的中断源。 xtang,如你所说,确实是有多个进程占用时钟中断。 对于我们所使用的进程中断部分,照理说,真正计算的部分只有以下一个语句而已,如下: counter++ 在InterruptWait(NULL,NULL)状态下一直是阻塞状态,直至产生中断,会执行counter++ 在System Profiler Info的信息来看,在这30us内没有被中断哈?线程一直占用着CPU,应该说CPU是一直执...
xuehuazhou
周五 11月 25, 2011 10:36 pm
版面: 四海同心QNX论坛
主题: 请问各位大大,我这个中断线程耗时太多,是什么缘故呢?
回复总数: 11
阅读次数: 4218

请问各位大大,我这个中断线程耗时太多,是什么缘故呢?

我自己写一个中断的程序,可是我的中断线程里面只有一句话, for( ; ; ) { InterruptWait(NULL,NULL); counter++;//这句话消耗的时间有时高达30us,太不可以思议了!? } 可是这个语句里面的耗时却很大,有时有30+us :( ,如下图。 这个是我的system profiler information。 http://i42.tinypic.com/10e3qqo.jpg 我的疑问:为什么这个一个简单的句子耗时需要那么多呢?还有就是线程Thread2的优先级已是255了,可是其READY时间依旧有20+us,是不是有点长了呢?感觉有点不可思议。请问...