OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2390|回复: 4

执行相同函数在F103RE和F072CBTX芯片的问题

[复制链接]

41

主题

278

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2357
金钱
2357
注册时间
2019-10-29
在线时间
380 小时
发表于 2020-7-29 15:50:34 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 chenyuan 于 2020-7-29 16:04 编辑
  1. /*
  2. 函数功能:进行加密、解密
  3. 参数 :
  4.     intbuff:需要加密/解密的数据
  5.     len:需要加密/解密的长度
  6.     key:秘钥
  7.     lenkey:秘钥长度
  8.     outbuff:进行加密/解密后的数据
  9. */

  10. void En_Dis_Code(uint8_t *intbuff,uint8_t len,uint8_t *key,uint8_t lenkey,uint8_t *outbuff)
  11. {
  12.    uint8_t i;
  13.    for(i=0;i<len;i++)
  14.   {
  15.        outbuff[i]=intbuff[i]^key[i%lenkey];
  16.    }
  17. }
复制代码

在F103中执行这行代码 outbuff=intbuff^key[i%lenkey];,我通过引脚在这行代码前后翻转,测出时间大概是500多ns,但是在F072中执行这行代码大概要11us,这差距也太大了吧!!
F103是72M的,F072是48M的。后面我发现是我这行代码进行了异或和取余。然后我之后对这行代码进行测试,
当我将他改成outbuff=intbuff^key[j];  的时候,执行这行代码大概也就几百个NS;
当改成         j=i%lenkey;       //outbuff=intbuff^key[j];   执行这行代码大概也几百个NS;
但是只要即进行了异或,又进行取余的时候,那么执行这行代码就要11us,后面没办法,只能将这个函数改成
  1. void En_Dis_Code(uint8_t *intbuff,uint8_t len,uint8_t *key,uint8_t lenkey,uint8_t *outbuff)
  2. {
  3.        uint8_t i,j=0;
  4.        for(i=0;i<len;i++)
  5.        {
  6.               outbuff[i]=intbuff[i]^key[j];
  7.                 j++;
  8.                 if(j==lenkey)j=0;
  9.        }
  10. }
复制代码
即使芯片差一点,也不会这么夸张吧      欢迎大家一起讨论讨论

最佳答案

查看完整内容[请看2#楼]

不同芯片是有差异的哦,芯片架构,主频,编译器优化等,都有影响
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2020-7-29 15:50:35 | 显示全部楼层
不同芯片是有差异的哦,芯片架构,主频,编译器优化等,都有影响
回复

使用道具 举报

41

主题

278

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2357
金钱
2357
注册时间
2019-10-29
在线时间
380 小时
 楼主| 发表于 2020-7-30 09:07:52 | 显示全部楼层
正点原子 发表于 2020-7-30 03:00
不同芯片是有差异的哦,芯片架构,主频,编译器优化等,都有影响

差异是有的  不过差距有点太大了  就运行了一个异或和取余,耗时那么长。感觉有些奇怪,我后面将那个取余的改成if判断,那个时间才降下来,运行一行大概比F103的慢个100-200ns的样子,这就比较正常了
回复

使用道具 举报

22

主题

2251

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4480
金钱
4480
注册时间
2013-4-22
在线时间
337 小时
发表于 2020-7-30 16:05:08 | 显示全部楼层
你以为主频能决定一切?芯片架构才是关键
回复

使用道具 举报

41

主题

278

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2357
金钱
2357
注册时间
2019-10-29
在线时间
380 小时
 楼主| 发表于 2020-7-30 17:05:38 | 显示全部楼层
三叶草 发表于 2020-7-30 16:05
你以为主频能决定一切?芯片架构才是关键

主要是差距有点大  有点奇怪
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 19:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表