提示
这个问题现象是必须按照这篇文章修复相关BUG后才会有这篇文章所描述的问题,本文章的问题原本RTT就存在的,并非按照我之前的文章解决方案导致这个问题出现。
一、问题现象
1、使用cat命令读取U盘文件并打印读到的数据时突然拔掉U盘,正常会因为读取失败而停止输出,实际上则不断的打印最后读到的一串数据。
二、问题原因
1、cat命令实质调用的核心函数是dfs_file_read,这个函数返回一个长度值,如果返回值小于0说明发生错误,但是接收这个返回值的却是一个uint32_t变量,导致出错时无法识别错误,反而识别成读取到长度非常大的数据,所以在不断打印。
三、解决方案
1、将length改成int类型即可