嵌入式项目开发中的问题及解决方法

High-precisionmeasurement

司南板卡串口阻塞读(select)超时(timeout)原因:

1、波特率设置不正确,出厂时为115200.因为BSP设计时加入的uartlite模块波特率为9600。解决方法:

【1】通过CRU将司南板卡波特率修改为9600.(有一些其它的设置也需要注意,比如设置采样数据直接从串口输出保存到核心板的存储设备(如eMMC)中,不保存在司南板卡内存中)。

【2】在Vivado工程设计时将对应uartlite模块模块波特率修改为115200.

方法1比较简单,方法2一劳永逸。

2、电阻没有拆(有可能是485或232转串口的芯片没有拆掉,或者是一些电阻没有拆除的原因)

解决方法:

【1】交由硬件开发人员测试并调整。

 

4G拨号拨不通,即无法上网的原因:

1、 部分元器件没有焊接或者焊接不紧密,虚焊等

解决方法:

【1】交由硬件开发人员测试。排查硬件可以通过更换4G模块、4G卡、4G天线。调换主板和核心板的位置等

2、 设备树的问题

解决方法:

【1】对照主芯片标准设备树文件,或者询问BSP开发人员,对照原有项目中已经应用的设备树文件并进行修改测试。

3、 拨号程序本身的问题

【1】 检查拨号程序,debug调试,或者复位4G模块后重试。

 

注意备份BSP工程文件,烧录的BSP工程文件如果是相同的,但是有一些设备运行不正常,出现故障多是因为硬件的原因。

 

司南小板卡发热导致黑盒子温度高的原因:

1、 板卡一直是上电的状态,并且一直在进行卫星数据采样。

解决方法

【1】需要在硬件上控制给司南小板卡上电断电。引出GPIO,设置引脚电平使能,可以拉高拉低。

【2】可以在不进行数据采集的时候设置司南板卡工作模式为unlogall,并且关闭串口设备文件句柄。

 

WinSCP连接到嵌入式Linux文件系统出现文件读写错误或有时文件拷贝进去再次登录发现未拷贝成功的原因:

1、固件程序出现内存问题(如读写冲突)

解决方法:

【1】sync刷新写入EMMC。

【2】winscp,putty跳出SD卡目录,再关机,防止出现文件系统只读错误。


问题:烧录BOOT.BIN到Flash的时候,提示找不到Jtag cable

原因1:硬件问题,主板上没有焊上保险丝或者其他的元器件,或者是管脚顺序连接不对。

原因2:SDK的问题,需要重启Xilinx SDK即可解决该问题

原因3:Jtag烧写器的问题,比如连接器中间连接点松动或者与PC连接松动


问题:Read-only file system的错误,涉及到系统存储设备(eMMC)的写操作,都会报错"Read-only file system" 
原因:这种情况通常都是由于系统发现磁盘硬件故障或文件系统中文件被损坏之后而采取的保护机制导致的。为了保护数据不破坏分区中已有内容,Linux在挂载文件系统时就只用read-only只读方式加载了。
解决方法:
1、将系统重要的文件备份到远程主机中
    scp -r  文件路径  远程主机用户名@远程主机IP地址:远程目录(文件名不变)或指定文件路径及文件名
    通过scp -r 可以避免对系统有写操作
    然后重启系统。
2、以读写方式重新挂载文件系统  mount -o remount rw /
3、使用fsck手动修复,具体操作如下:
    fsck.ext4 -y  /dev/vda1(根分区对应的磁盘分区,可通过df -h 命令获取)
友情提示:根据不同的文件系统试用不同的fsck版本,如果是ext3文件系统,应该使用fsck.ext3对文件系统进行修复。在修复的过程中可能花费时间较长,请耐心等待,不要轻易手动重启服务器。修复完成之后可以通过命令“shutdown -r now"  reboot重启服务器

问题延伸:
scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读 read only system时,用scp可以帮你把文件移出来。另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。虽然 rsync比scp会快一点,但当小文件众多的情况下,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。


问题:4G拨号程序出现Ndis disconnect错误

原因:物联网卡与设备一一对应,一旦激活,则被锁定,准确的说,应该是与4G模块一一对应。如果更换需要在运营商平台重新激活物联网卡。若未重新激活,则物联网卡会禁用从而拨号不成功。总之,这种情况就是需要在物联网卡管理平台重新激活物联网卡。


问题:NB-IoT模块通过串口连接到主芯片,在Linux操作系统下echo AT指令无输出。

原因:硬件原因,元器件(关键电阻)漏焊

           软件原因:设备文件描述符不正确,根据Vivado工程中的约束文件查找对应的文件句柄。


问题:USB接口问题,插上U盘,无法识别,在/dev下无对应文件句柄(正常情况下USB3.0对应sda4、USB2.0对应sda1)

原因:元器件(USB口)虚焊


问题:4G拨号程序打印信息太多,影响正常调试查看系统运行状态,可以进行输出重定向。

解决方法示例:./lteconnect  1>/dev/null 2>/dev/null & 或 1>/dev/null 2>&1 表示将stdout标准输出重定向到空设备文件/dev/null,同时将stderr标准错误输出的重定向跟stdout标准输出重定向一致,也输出到空设备件/dev/null。


猜你喜欢

转载自blog.csdn.net/songkai320/article/details/77800045