| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 368 人关注过本帖
标题:pc 指针丢失或者停止问题
只看楼主 加入收藏
画戟
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2014-11-28
结帖率:0
收藏
已结贴  问题点数:20 回复次数:5 
pc 指针丢失或者停止问题
在一个函数调用时,当调用结束后程序部返回上级函数而是停止在下一个没有调用的函数上,然后程序不在进行。。。。。。。
blockConf = eepromConfig->flashBlocks[counter];            //blockConf是一个结构体指针
       blockStatusTemphigh =FSL_FlashReadh(blockConf);     // blockStatusTemphigh 时一个32位无符号整形即UINT32
       blockStatusTemplow =FSL_FlashReadl(blockConf);      // 同上
   eccErrorModule_Flag = NONE;                             //当上面调用结束后程序不返回这里执行!!!!!!!!
           。。。。。。。。
调用函数是:
UINT32 FSL_FlashReadh(BLOCK_CONFIG*   blockConf)           // BLOCK_CONFIG是一个结构体
{
    UINT32 addresshigh;
    addresshigh = blockConf->blockStartAddr;
    return((UINT32)(*(VUINT32*)(addresshigh)));
}
UINT32 FSL_FlashReadl(BLOCK_CONFIG*   blockConf)
{
    UINT32 addresslow;
    addresslow = blockConf->blockStartAddr;
    addresslow = addresslow+4;

 return((UINT32)(*(VUINT32*)(addresslow)));
}


UINT32 FSL_FlashReadhigh(UINT32 address)       //当上面两个调用结束时,程序不返回调用的那一级执行,而是直接停在这一行不动了
{

  return((UINT32)(*(VUINT32*)(address)));
}
搜索更多相关主题的帖子: 结构体 
2014-11-28 11:15
yahwei
Rank: 7Rank: 7Rank: 7
来 自:湖~
等 级:黑侠
威 望:3
帖 子:145
专家分:644
注 册:2011-11-10
收藏
得分:20 
以下是引用画戟在2014-11-28 11:15:10的发言:

在一个函数调用时,当调用结束后程序部返回上级函数而是停止在下一个没有调用的函数上,然后程序不在进行。。。。。。。
blockConf = eepromConfig->flashBlocks[counter];            //blockConf是一个结构体指针
       blockStatusTemphigh =FSL_FlashReadh(blockConf);     // blockStatusTemphigh 时一个32位无符号整形即UINT32
       blockStatusTemplow =FSL_FlashReadl(blockConf);      // 同上
   eccErrorModule_Flag = NONE;                             //当上面调用结束后程序不返回这里执行!!!!!!!!
           。。。。。。。。
调用函数是:
UINT32 FSL_FlashReadh(BLOCK_CONFIG*   blockConf)           // BLOCK_CONFIG是一个结构体
{
    UINT32 addresshigh;
    addresshigh = blockConf->blockStartAddr;
    return((UINT32)(*(VUINT32*)(addresshigh)));
}
UINT32 FSL_FlashReadl(BLOCK_CONFIG*   blockConf)
{
    UINT32 addresslow;
    addresslow = blockConf->blockStartAddr;
    addresslow = addresslow+4;

 return((UINT32)(*(VUINT32*)(addresslow)));
}


UINT32 FSL_FlashReadhigh(UINT32 address)       //当上面两个调用结束时,程序不返回调用的那一级执行,而是直接停在这一行不动了
{

  return((UINT32)(*(VUINT32*)(address)));
}

代码中红色的字母是什么意思?看来你要换个编译器……

[qq]949654600[/qq]
2014-11-28 12:09
画戟
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2014-11-28
收藏
得分:0 
回复 2 楼 yahwei
是定义无符号长整型时前面加了一个volatile,强制时怕出错!
2014-11-28 14:28
yahwei
Rank: 7Rank: 7Rank: 7
来 自:湖~
等 级:黑侠
威 望:3
帖 子:145
专家分:644
注 册:2011-11-10
收藏
得分:0 
回复 3 楼 画戟
确定把一个UINT32变量当成一个指针变量来解除引用没有问题吗?

[qq]949654600[/qq]
2014-11-28 15:58
画戟
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2014-11-28
收藏
得分:0 
强制转换啊,很常见啊,没问题的啊。。。。。。。
2014-12-01 14:17
画戟
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2014-11-28
收藏
得分:0 
求大神给点启示啊!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2014-12-02 17:14
快速回复:pc 指针丢失或者停止问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025589 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved