Debug SK2000L

给客户做的一款低端板子,其实就是8241+5*DM9000。之前用的Intel的82551太贵了,而且已经停产。市面上其他网络芯片的厂商基本上也没有PCI总线的网络芯片。 板子到手后,5V、3V3、1V8,测量均无短路。 好的,上电电压正常,烧写CPLD,但是串口打印信息并没有按照想象的出现。问题麻烦了。 重新烧了一块FLASH,换了依然没有打印。 看来要动用重武器了。 测量复位、时钟输入、SDRAM时钟均无问题。看来PLL应该发挥作用了。 接着测量Boot Flash的CS,复位后有波形,但是会一直保持。难道是DM9000前面总线驱动的逻辑错了。 审阅了以下CPLD逻辑,果然有错误,改掉后在量CS,发现每次复位后只出现13次。 这个是不应该的,因为前面读u-boot应该会保持一段时间。拿公司另外一块同平台的板子测试印证了我的想法。 然后给郑州的一位同事电话,希望得到一些提示。结果很遗憾,答曰看启动配置。。。。。 这个是Copy的图,应该是不会有问题的。 难道还是CPLD逻辑的问题?我改了以后又用示波器测了一遍,应该没问题的啊。不会是开始烧坏了吧。算了,还是把不用的逻辑禁掉吧。 奇迹出现了,久违的启动信息出来了。看来就是逻辑问题。   接着配置了一路DM9000,probe成功,发送超时,cat /proc/interrupts无中断,量中断管脚是有的。怀疑是发送设置定时器,结果没有中断清除定时器。改回并行中断,ok。在改回去串行中断,ok。估计是'/IRQ1/S_CLK'在拷逻辑的时候忘了加反向。 之后5片DM9000全部找到。   TODO:u-boot下无法配置RCS2,准备飞线将RCS1和RCS2对调。   Added on 08/01/2011 PS: 悲剧,今天测量网卡速度只有30Mbps。

千里江陵一日还

早上7:20坐南航飞机从北京T2到南京禄口,耗时2小时。 下午5:14坐G154从南京南站到北京南站,耗时4小时7分。

使用Keil编译NXP 2366的I2C问题

今天同事发现使用Keil编译器编译NXP 2366后,原本在用ADS编译可以正常跑通的I2C出现了错误。 访问RX8025的时候,写寄存器0为0xA0是没问题的,读RTC寄存器也没有问题,但是当写其他寄存器或者写寄存器0为其他数值时,总是会超时。加了一些调试信息,发现在写完第一个数据后,I2C总线无响应(既没有应答也没有无应答)。 怎么测试都不行。最后google之,发现有篇文章也是使用Keil编译后出错,解决方法是去掉优化。 于是……设置Keil不优化程序。 问题解决。

OpenSSL RSA

genrsa - generate an RSA private key [crayon-68248731459e8317489211/] 产生私钥 [crayon-68248731459ef811096531/] rsa - RSA key processing tool [crayon-68248731459f0804466960/] rsautl - RSA utility [crayon-68248731459f2774071736/] [crayon-68248731459f4274721469/] [crayon-68248731459f5902830765/]

Micriμm TCP/IP收数据跑死

同事遇到的。 现象是使用Micriμm的TCP/IP协议栈接收网络数据时,接收任务跑死,但是其他任务,如一个定时打印的任务仍然可以正常运行。所以判定如下: 程序不会有取指或取数据异常,有的话程序会什么信息都不会有; 程序不会死在中断里,理由同上; 接收任务一定是pend在一个信号量上面了,不然不会出不来; 最后发现原来Micriμm使用单独的一个进程处理网络报文,类似与linux的Tasklet。而为这个进程开辟的堆栈空间太小,导致堆栈溢出,无法post信号量。   Q:Micriμm μCOS II的任务在堆栈溢出的时候不会导致整个系统跑死?还是溢出的时候正好没有干扰到其他进程?

HID FAQ

HID FAQ Questions relating to designing and programming USB devices in the human interface class. Also see: HID Page Sending and Receiving Reports under Windows How can an application request…