论坛里的前面的SYSBIOS系统的指针操作耗时长的问题没有解... - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

17

主题

30

帖子

149

积分

注册会员

Rank: 2

积分
149
跳转到指定楼层
楼主
发表于 2016-8-24 16:44:31 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
你好,前面提的问题:sysbios系统工程指针操作耗时长的问题 这个问题还没解决啊。" W2 Y7 x. U7 H& z
http://www.51dsp.net/forum.php?m ... p;tid=1198#lastpost  Y/ t$ U9 w( l1 P/ x, m
$ V* R& E7 D2 d, A7 f

, c/ ?. f  W+ ?8 K自己有尝试好几次,感觉像是sysbios下面的读内存比写内存更花费指令周期,我看了测试程序的汇编语句:# j( c  ~& C! p+ V
( {# t0 ^, _7 V4 _; Q+ B) u- j
0 R9 \0 H: q, D( m/ ]7 G
27                *pda = 30;
9 O* `" q9 C$ i' R: p/ rc30025cc:   0200106E            LDW.D2T2      *+B14[16],B4
& X' }) C1 h1 @( ~c30025d0:   DA93                MVK.S2        30,B56 q9 f9 L, d/ \& _6 u. S' s8 {
c30025d2:   4C6E                NOP           37 B3 V9 w. U. i, R9 g
c30025d4:   029002F6            STW.D2T2      B5,*+B4[0]. j! W8 v2 S& O3 m6 h! Y

% S$ q2 c! M/ Q# \这是指针赋值的汇编语句;
. M  l7 h8 p+ R2 }1 h1 J下面这个是变量赋值的汇编语句:! Y4 o( Q. f# m, k2 k! s6 g
27                test = 30;6 V5 j' j5 j, u  a" Q3 o5 U
c30025c4:   01800F28            MVK.S1        0x001e,A3) U/ c# A) o* y* O0 X5 J: A% ?
c30025c8:   0180017C            STW.D2T1      A3,*+B14[1]
8 `! Z9 J1 r) F% R/ ~
8 g6 p. l1 n* {: O! k  L6 m# |4 \/ y! ?: W2 Y! g
我对比了看指针赋值比变量赋值也就是多了一个把地址读出来的操作,但是指针赋值要比变量赋值多几十倍的指令周期。完全不应该啊。4 ~! y$ J  A2 P, q
我把测试代码再贴出来一下,在前面那个问题上已经贴过了:) R2 C* T5 h) f( l7 ~3 v
#include“c6x.h”
7 _2 S* I: N" x2 k7 F4 B( H' B4 bint test;
* r* D$ r# Y$ d: z! e' ^: Q' j/ [int *pda= &test;
4 n9 n# X. d; T* E! ]* L3 Plong long t1,t2,tdelt,;
; P  t" p' s" g& J5 Y- S7 {+ QInt main()
! A  \2 B8 `" x3 ~{
+ ?5 ~6 P; {* _. Y3 {+ F        TSCH=0;
* [6 ]* Q+ J/ r7 g; H  S        TSCL=0;  C; ~% L3 y* g6 y
        t1 = _itoll (TSCH, TSCL);
3 C  r& r/ w! [7 Z        *pda = 20;
4 D* ~. ]2 g  s, t        t2 = _itoll (TSCH, TSCL);; V% S+ D9 {& m2 E" x; J
        tdelt = t2-t1;# L: m- a9 y+ h
        return 0;
( {' Y) f; D5 K+ k) h}% C4 j* H1 D; b( j! W

  ^- S& B" E% g4 j/ K5 F8 k) D此处tdelt的值得到是307,而将*pda = 20;替换成test=20;那tdelt的值就是6.差距如此大。; J  L* j9 q; N& n! Y5 U

+ J+ d4 U0 k" [6 [+ o
7 ?0 Q, \) L7 e, _, v6 l& a: l% `$ K希望创龙的朋友的也可以试一下看看,只要在CCS里面新建有sysbios工程,就用上面的代码测一下就能看到现象了。  i5 q- [3 R9 ?7 L) e
请帮忙分析一下原因啊。
6 \  H; q  G0 F. o2 [" {/ C- M+ q) M* a7 ?# @( H9 e* P& G$ J% o

: g9 c( E2 g3 R* Y" P: }
3 e4 n7 A: ^0 t3 o/ c
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-6 03:23 , Processed in 0.033970 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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