项目场景:
Linux下设备,项目中需要保存设备运行时候相关的日志,所以使用fopen函数创建相关日志文件,方便后现场环境续定位问题。
问题描述
调用fopen等一系列i函数,结果设备烧完底层再升级大包,出现段错误,导致升级失败。
下面是串口调试信息:
M2RU-C login:
PetaLinux 2019.2 M2RU-C /dev/ttyPS0
M2RU-C login:
PetaLinux 2019.2 M2RU-C /dev/ttyPS0
M2RU-C login: dasUse/drgfly/etc/usrapp.sh: line 8: 2346 Segmentation fault /drgfly/app/ARM
原因分析:
/************************* 设备日志 *******************************/
#define DEVICELOG_EN 1
#define MONITOR_DIR "/drgfly/webomt/web/www/LogFiles/DeviceLog/"
#define TXT_LOG_NAME "DeviceTxt.log"
void OpenLogFile(void)
{
LogFile = fopen((char *)(MONITOR_DIR TXT_LOG_NAME), "a");
}