打印
[8/16-bit MCU]

使用PE的串口数据块发送程序,PTA口会强制转为输入模式。

[复制链接]
2594|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ljwtwb2005|  楼主 | 2014-3-6 08:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
CW版本:6.2 、6.3
芯片:MC9S08DZ60   48脚
项目简介:PTA1接LED灯,定时闪烁,
使用PE配置串口1的数据块发送命令,只要一执行AS1_SendBlock()函数,
PTA1就会强制将IO口模式置为输入模式,
使用单步执行测试,只要执行AS1_SendBlock()函数的  *Snd = count; 命令,
PTA1的端口模式就会有输出模式转为输入模式,
使用BDM在调试环境中已经验证,
查询PTA1的地址是0x0000,
怀疑此处是否是PE的一个漏洞,
麻烦版主找找原因,谢谢!

相关帖子

沙发
FSL_TICS_Robin| | 2014-3-6 09:39 | 只看该作者
楼主你好,你可以将程序打包上传以便我们分析原因。

使用特权

评论回复
板凳
ljwtwb2005|  楼主 | 2014-3-6 13:40 | 只看该作者
案例程序上传,麻烦版主看看,使用环境CW6.3,谢谢!

Project_1.rar

255.41 KB

演示程序

使用特权

评论回复
地板
ljwtwb2005|  楼主 | 2014-3-6 13:41 | 只看该作者
FSL_TICS_Robin 发表于 2014-3-6 09:39
楼主你好,你可以将程序打包上传以便我们分析原因。

你好,程序已经打包上传,请帮忙分析下原因,谢谢!

使用特权

评论回复
5
FSL_TICS_Robin| | 2014-3-6 15:19 | 只看该作者
的确就是你找到的这个*Snd = count;
如果这个参数对你没什么用,就改写下这个函数屏蔽掉它吧

使用特权

评论回复
6
FSL_TICS_Robin| | 2014-3-6 15:21 | 只看该作者
ljwtwb2005 发表于 2014-3-6 13:41
你好,程序已经打包上传,请帮忙分析下原因,谢谢!

这个函数把你输入的数据长度,以word返回到0x0地址去了

使用特权

评论回复
7
ljwtwb2005|  楼主 | 2014-3-6 16:00 | 只看该作者
谢谢版主,看来不是我的程序问题 。
看来只有两个办法:
修改这个函数,或者不用,
版主有途径的话,把这个漏洞反馈一下吧。
我刚想起来,去年我的同事也碰到了这个问题,
当时也是我找到的原因,时间一长,又忘记这个事情了。

使用特权

评论回复
8
FSL_TICS_Robin| | 2014-3-6 16:07 | 只看该作者
ljwtwb2005 发表于 2014-3-6 16:00
谢谢版主,看来不是我的程序问题 。
看来只有两个办法:
修改这个函数,或者不用,

ok
我会去飞思卡尔官网提交一个关于这个问题的技术服务请求。

使用特权

评论回复
9
ljwtwb2005|  楼主 | 2014-3-6 16:08 | 只看该作者
请问,如何结贴啊,我并没有找到结贴方面的按钮

使用特权

评论回复
10
FSL_TICS_Robin| | 2014-3-6 16:43 | 只看该作者
ljwtwb2005 发表于 2014-3-6 16:00
谢谢版主,看来不是我的程序问题 。
看来只有两个办法:
修改这个函数,或者不用,

不好意思,我刚去仔细看了下AS1_SendBlock()函数定义,这个*Snd是用来返回发送字节数的。
如果你需要用到这个发送字节数,可否如下设置:

       word SendNum=0;
       i = AS1_SendBlock(data, 8, &SendNum);

使用特权

评论回复
11
ljwtwb2005|  楼主 | 2014-3-6 18:08 | 只看该作者
FSL_TICS_Robin 发表于 2014-3-6 16:43
不好意思,我刚去仔细看了下AS1_SendBlock()函数定义,这个*Snd是用来返回发送字节数的。
如果你需要用 ...

版主你好!
你说的方法已经试过,没有用的。
我测试了3种方法,都不行。
方法1:
word *SendNum=0;
i = AS1_SendBlock(data, 8, SendNum);
方法2:
word SendNum=0;
i = AS1_SendBlock(data, 8, &SendNum);
方法3:
word SendNum[2];
i = AS1_SendBlock(data, 8, SendNum);

都没有效果

并且SendNum这个变量,无论使用全局还是局部变量,都不行,
我就差对SendNum变量指定寄存器地址这个方法没有试验,
我很少使用这个命令,所有没有试验。

结果都是如此,希望版主能将此漏洞反馈飞思卡尔,解决这个
漏洞,不要再让其他人也碰到此问题。谢谢!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

14

帖子

0

粉丝