论坛里的前面的SYSBIOS系统的指针操作耗时长的问题没有解... - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4287|回复: 1
打印 上一主题 下一主题

论坛里的前面的SYSBIOS系统的指针操作耗时长的问题没有解...

[复制链接]

17

主题

30

帖子

149

积分

注册会员

Rank: 2

积分
149
跳转到指定楼层
楼主
发表于 2016-8-24 16:44:31 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
你好,前面提的问题:sysbios系统工程指针操作耗时长的问题 这个问题还没解决啊。
2 M% B0 x; n! |2 q/ b8 ?8 z2 ohttp://www.51dsp.net/forum.php?m ... p;tid=1198#lastpost) b& d5 a. G7 N1 l! @6 b
5 f3 b, [8 M) y" a8 ^8 B: I3 b! T1 [
. x7 c6 T1 I9 y* i+ c' Z
自己有尝试好几次,感觉像是sysbios下面的读内存比写内存更花费指令周期,我看了测试程序的汇编语句:
$ c. @' z0 Z" t1 d2 y, s- E% {( |+ r! k1 k
4 o8 v( j5 ~9 A" X5 S9 S
27                *pda = 30;+ n1 v. h1 z5 Y! x0 h3 Q6 [
c30025cc:   0200106E            LDW.D2T2      *+B14[16],B4
0 N3 `7 O" u) \8 o* A; h! D6 f& |- v' Dc30025d0:   DA93                MVK.S2        30,B5+ t! ~0 S" e, K9 u. B
c30025d2:   4C6E                NOP           3
' I4 F6 `1 s8 }0 v) E7 p* _. ]c30025d4:   029002F6            STW.D2T2      B5,*+B4[0]
3 j- ]& A3 Z6 V3 N7 }2 g6 N/ V1 j+ l4 q: k
这是指针赋值的汇编语句;: S. n9 K. h. o  v8 d) t7 b
下面这个是变量赋值的汇编语句:  t! e1 O- u0 F4 V5 g# P+ h
27                test = 30;% }6 i  Q; A" q  b; c4 A
c30025c4:   01800F28            MVK.S1        0x001e,A39 {# s2 W: W* K+ m' e/ @0 `' l' n1 v
c30025c8:   0180017C            STW.D2T1      A3,*+B14[1]
4 X# b4 m- y# O7 [% p' ^
) U; p' x4 A2 |
/ g2 r; ?' G" A- o% M我对比了看指针赋值比变量赋值也就是多了一个把地址读出来的操作,但是指针赋值要比变量赋值多几十倍的指令周期。完全不应该啊。* i# F1 Z+ l! J
我把测试代码再贴出来一下,在前面那个问题上已经贴过了:
; O0 ~7 ]8 W6 R* f3 o#include“c6x.h”
  G* k+ `: w3 F# {int test;
  k& V% f5 ?9 g5 bint *pda= &test;
6 \) d: h& q$ n6 q. o; a& @5 y* rlong long t1,t2,tdelt,;7 z' O0 w' b1 k
Int main()
6 {6 G) D; S1 O* |' [{
- D. s* R! w: P/ |- @        TSCH=0;5 I) Q9 }4 {! K
        TSCL=0;+ I7 f) f( a& J
        t1 = _itoll (TSCH, TSCL);
9 O8 Y0 T+ @& `# n* c) @  v" l) G        *pda = 20;8 B9 Y4 w0 V. P8 }
        t2 = _itoll (TSCH, TSCL);1 U- u. \. \, q4 T3 F  _. X3 M
        tdelt = t2-t1;
; l' m( t* @, ^1 q0 S) e        return 0;
; A3 i% b, z* N2 F- R5 |}# t# w+ l3 t( i' @2 c

4 |" d$ y( V3 u! Y$ A% l此处tdelt的值得到是307,而将*pda = 20;替换成test=20;那tdelt的值就是6.差距如此大。
: K  B2 j2 J! K9 B+ x$ A" g. V  G
9 W0 j. v8 @) z# @) r* v0 I( a, E  {
希望创龙的朋友的也可以试一下看看,只要在CCS里面新建有sysbios工程,就用上面的代码测一下就能看到现象了。
5 H# q3 a( S( g9 ]. n请帮忙分析一下原因啊。
0 L! S# g) y  ~6 o# j9 g5 f) B' h/ d8 H3 L- ^3 b6 E" M" W6 f0 P9 X+ j

" Q) ^( N6 v+ r. d8 E3 w- e/ B% c  t, w6 p
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
沙发
发表于 2016-8-25 16:30:02 | 只看该作者
11 时钟周期 挺正常的....) e: a- A% v% W# C! |# u+ o9 O
  Q* _7 d/ N% Z8 O$ i0 ^5 u$ P

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

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

本版积分规则

点击跳转“创龙科技服务通”

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2026-3-17 11:00 , Processed in 0.038829 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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