wk2168驱动调试(三)

来源:互联网 发布:百度人工智能研发 编辑:程序博客网 时间:2024/06/06 01:15

断断续续的调了几天,今天终于把wk这块片子调试完成。

解决了数据发送超32个字符会死的,rs485支持问题。

32个字符会死的问题是由多核处理器引起的,在定位问题时,把一个核关闭,处于一个cpu时,就一点点问题都没有。

root@ ss   /sys/devices/system/cpu/cpu1$ echo 0 >online 
[ 3555.955602] CPU1: shutdown

这样操作完,数据收发完全正常。明确了问题是多核引起的问题。

多核问题上,用spin_lock_irqrestore来关,不仅关中断,还要关cpu同步,这样操作上保证串行。读写寄存器,读写fifo时都加锁,这样才会有效。

在中断处理上,不要嵌套处理,这样不会内部死锁。

基本上这个问题就解决了。


rs485问题:

按芯片手册增加485配置,且要把RTSDLY 这个配置上数值,不然rts不会生效。


验证时,通过数据收发,rts引脚上有高低电平产生,调试就基本完成。


原创粉丝点击