pScanInfo->last_file_path3的内容为什么有时显示不正常

huabinsir 2014-01-21 05:54:33
在一个小系统的嵌入式平台上, pScanInfo->last_file_path3的内容为什么有时显示不正常?
是小系统的问题吗?

__bool ScanGetLastFile(HSCAN hScan, eBookScanedEntry_t* return_enter1,eBookScanedEntry_t* return_enter2,eBookScanedEntry_t* return_enter3, __s32 *nNandFileCount)
{
eBookScanInfo_t *pScanInfo;

if(hScan == NULL || return_enter1== NULL || return_enter2 == NULL || return_enter3== NULL)
{
//eLIBs_printf("..%s..%d.....\n", __FILE__, __LINE__);
return EPDK_FALSE;
}

pScanInfo = (eBookScanInfo_t*)hScan;
if(pScanInfo->CurCnt == 0)
{
return EPDK_FALSE;
}

*nNandFileCount = pScanInfo->CurCnt;

eLIBs_printf("..%s..%d...pScanInfo->CurCnt=%d...path = %s;...path = %s;...path = %s;\n\n", __FILE__, __LINE__,
pScanInfo->CurCnt, pScanInfo->last_file_path1, pScanInfo->last_file_path2, pScanInfo->last_file_path3);
//pScanInfo->last_file_path1, pScanInfo->last_file_path2, pScanInfo->last_file_path3 内容显示正常


if (pScanInfo->CurCnt==1)
{
return_enter1->CtearTime = pScanInfo->last_file_CreateTime1;
return_enter1->Path = pScanInfo->last_file_path1;
return_enter2->CtearTime = NULL;
return_enter2->Path = NULL;
return_enter3->CtearTime = NULL;
return_enter3->Path = NULL;
}

if (pScanInfo->CurCnt==2)
{
return_enter1->CtearTime = pScanInfo->last_file_CreateTime1;
return_enter1->Path = pScanInfo->last_file_path1;
return_enter2->CtearTime = pScanInfo->last_file_CreateTime2;
return_enter2->Path = pScanInfo->last_file_path2;
return_enter3->CtearTime = NULL;
return_enter3->Path = NULL;

eLIBs_printf("..%s..%d...pScanInfo->CurCnt=%d...path = %s;...path = %s;...path = %s;\n\n", __FILE__, __LINE__,
pScanInfo->CurCnt, pScanInfo->last_file_path1, pScanInfo->last_file_path2, pScanInfo->last_file_path3);
//pScanInfo->last_file_path1, pScanInfo->last_file_path2, pScanInfo->last_file_path3 内容显示正常

}

if (pScanInfo->CurCnt>=3)
{
eLIBs_printf("..%s..%d...pScanInfo->CurCnt=%d...path = %s;...path = %s;...path = %s;\n\n", __FILE__, __LINE__,
pScanInfo->CurCnt, pScanInfo->last_file_path1, pScanInfo->last_file_path2, pScanInfo->last_file_path3);
//pScanInfo->last_file_path1, pScanInfo->last_file_path2 内容显示正常

//pScanInfo->last_file_path3 内容显示不对正常


return_enter1->CtearTime = pScanInfo->last_file_CreateTime1;
return_enter1->Path = pScanInfo->last_file_path1;
return_enter2->CtearTime = pScanInfo->last_file_CreateTime2;
return_enter2->Path = pScanInfo->last_file_path2;
return_enter3->CtearTime = pScanInfo->last_file_CreateTime3;
return_enter3->Path = pScanInfo->last_file_path3;
}



return EPDK_TRUE;
}
...全文
142 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
huabinsir 2014-01-23
  • 打赏
  • 举报
回复
奇怪, eLIBs_printf 在其它界面的输出信息是正确的. 个人认为:是不是嵌入式小系统 堆或栈方面分配内存有问题.
vipcxj 2014-01-23
  • 打赏
  • 举报
回复

*nNandFileCount = pScanInfo->CurCnt;

eLIBs_printf("..%s..%d...pScanInfo->CurCnt=%d...path = %s;...path = %s;...path = %s;\n\n", __FILE__, __LINE__, 
pScanInfo->CurCnt, pScanInfo->last_file_path1, pScanInfo->last_file_path2, pScanInfo->last_file_path3);
//pScanInfo->last_file_path1, pScanInfo->last_file_path2, pScanInfo->last_file_path3 内容显示正常

上面的注释里,你声称程序到这里为止一直是正常的,那么后面如果出现不正常,妥妥是因为eLIBs_printf的问题,除非你上面的注释里是胡扯的。
huabinsir 2014-01-22
  • 打赏
  • 举报
回复
引用 1 楼 vipcxj 的回复:
有时是啥时候呢? 难道是当且仅当CurCnt >= 3的时候? 不正常又是怎么个不正常,正常又是怎么个正常呢?
有时能正确的显示出内容, 有时显示出来的是乱。 这是什么原因呢?
huabinsir 2014-01-22
  • 打赏
  • 举报
回复
eLIBs_printf 是小系统的自带的函数. 第一次显示正常,后来大多数不正常(有时是正常的).
vipcxj 2014-01-22
  • 打赏
  • 举报
回复
eLIBs_printf 还有这东西是不是有问题,因为照你的说法,乱之前最近的那一次正常,就发生在这个函数里,而这个函数和后面发生乱码的情况之间根本就没隔其他语句,那唯一可能出问题的地方就妥妥是它了,何况这东西明显不是系统函数,是你们自己写的,出错也很正常~
vipcxj 2014-01-22
  • 打赏
  • 举报
回复
引用 2 楼 huabinsir 的回复:
[quote=引用 1 楼 vipcxj 的回复:] 有时是啥时候呢? 难道是当且仅当CurCnt >= 3的时候? 不正常又是怎么个不正常,正常又是怎么个正常呢?
有时能正确的显示出内容, 有时显示出来的是乱。 这是什么原因呢?[/quote] 怎么个乱发,举个例子嘛,是部分乱,还是全部乱~
vipcxj 2014-01-21
  • 打赏
  • 举报
回复
有时是啥时候呢? 难道是当且仅当CurCnt >= 3的时候? 不正常又是怎么个不正常,正常又是怎么个正常呢?
内容概要:本文围绕“面向高精度电流控制的PMSM多参数PSO辨识模型研究”,系统阐述了基于Simulink的永磁同步电机(PMSM)多参数辨识方法,重点采用粒子群优化算法(PSO)实现对电机关键内部参数的高精度辨识。研究构建了完整的PMSM控制系统仿真模型,结合智能优化算法,解决了传统参数辨识中精度低、收敛慢的问题,有效提升了电流环控制的动态性能与稳态精度。该方法特别适用于对控制精度和响应速度要求较高的工业应用场景,如高性能伺服系统、电动汽车驱动系统等,具有较强的工程实用价值和科研参考意义。文中提供了完整的Simulink仿真模型与配套代码,确保了研究内容的可复现性和实践操作性。; 适合人群:具备电机控制、自动化或电气工程等相关专业背景,熟悉MATLAB/Simulink仿真环境,从事电机驱动系统研发、控制算法设计或相关领域科研工作的工程师及研究生,尤其适合工作1-5年、希望深入理解先进参数辨识技术的研发人员。; 使用场景及目标:①开展高精度PMSM控制系统的设计与参数辨识研究;②学习并掌握PSO等智能优化算法在电机系统参数辨识中的具体实现与调优技巧;③完成学术论文复现、科研项目验证、毕业设计或工程原型开发,提升对现代电机控制核心技术的理解与应用能力。; 阅读建议:建议读者结合提供的Simulink模型与源代码进行动手实践,按照文档逻辑逐步搭建与调试仿真系统,重点关注PSO算法与电机模型的交互机制、目标函数设计及参数收敛过程,通过对比不同工况下的辨识结果,深入理解算法性能与控制精度之间的内在联系。

70,039

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧