嵌入式开发者社区

标题: sysbios系统工程指针操作耗时长的问题 [打印本页]

作者: moontiger564    时间: 2016-8-23 10:06
标题: sysbios系统工程指针操作耗时长的问题
目前遇到一个很奇怪的问题,急需解决。我用的omapl138的平台,然后跑sysbios的时候发现对指针赋值的时候消耗很长的指令周期。例如
8 i0 Z2 Z  Y/ B  I, I5 ^*p = 20.这么一个赋值语句就要耗时300多个指令周期,而普通的变量赋值例如a=10这个语句才7个指令周期。然后我新建一个sysbios工程,单独做个测试,代码如下:
) v! x' d/ H3 m' Q% r% A *  ======== main ========
1 m5 w/ J0 M8 u- K% h */! |; X4 c/ _2 ?( c+ O
int test;" q9 a8 B! }( n2 r( k
int *pda;# @! s" i6 r; ~  ]5 o, h* c
long long t1,t2,t3,t4,tover,tdelt1,tdelt2;
' N( |1 m3 p  B$ XInt main()' H$ r( u1 D: f0 I3 }1 ~! p9 [
{
" Z3 L. I# Q4 s        TSCH=0;. s- c2 C; v' V& v" P( O4 h
        TSCL=0;
* @) C9 q! B; l! g        pda = &test;
5 s8 h: R* c+ N! c3 r        t1 = _itoll (TSCH, TSCL);. U' Y  g; p5 E% M" U; c% |
        test = 20;  f7 n( ?' q& T
        t2 = _itoll (TSCH, TSCL);
5 b6 W0 c( T6 i6 A+ S        *pda = 30;
- P/ K' i! x! I8 X2 V' e        t3 = _itoll (TSCH, TSCL);
/ k( K' _9 X4 A+ u        tdelt1 = t2-t1;
8 A5 ?, f, w9 i7 ?* J        tdelt2 = t3-t2;
) A4 R  `3 Q6 u$ @/ r# E3 p        return 0;
4 @! B& |0 E7 M. p4 Z* \}
9 X& ~7 s" x, w& K$ ]( j3 |' X; k  v1 k% v; y7 u' s- s" I+ j7 ?
就用这个一个简单测试程序测一下程序耗时,果然有问题。这里面tdelt1的值是7,tdelt2的值是362。同样一个赋值语句,一个是直接变量赋值,一个是通过指针赋值,但是用的时间差距好几十倍。这个问题急需解决。麻烦分析一下什么原因。
9 u, \7 E9 Q# n% W0 R6 L# m3 U有劳有劳。
2 q2 L* |6 E* M# l: x
作者: 希望缄默    时间: 2016-8-23 22:23
主函数中都没有启动 sys/bios 系统调度 应该是没有影响的
作者: moontiger564    时间: 2016-8-24 08:58
希望缄默 发表于 2016-8-23 22:23; [' R7 x' {2 Z# [$ \
主函数中都没有启动 sys/bios 系统调度 应该是没有影响的
* J% o' V, X$ I
本来也是担心bios系统对它又影响,所以特地新建了一个sysbios工程,不起任何任务和中断,不起bios系统,就存粹一个main函数。发现也是这么个现象。所以就奇怪了。你们也可以帮忙试一下。就新建一个sysbios工程就能发现这个问题了。
" s5 Q: g$ X& O2 P' M2 d




欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4