嵌入式开发者社区
标题:
sysbios系统工程指针操作耗时长的问题
[打印本页]
作者:
moontiger564
时间:
2016-8-23 10:06
标题:
sysbios系统工程指针操作耗时长的问题
目前遇到一个很奇怪的问题,急需解决。我用的omapl138的平台,然后跑sysbios的时候发现对指针赋值的时候消耗很长的指令周期。例如
3 X" z5 D) Q% p- s1 l2 \
*p = 20.这么一个赋值语句就要耗时300多个指令周期,而普通的变量赋值例如a=10这个语句才7个指令周期。然后我新建一个sysbios工程,单独做个测试,代码如下:
, Z4 I7 `6 {6 |$ M+ @* i3 N
* ======== main ========
2 f* T7 u: p! `' `. {4 i2 p, @6 a
*/
; l* T# D4 g5 e- B0 O, Q
int test;
! J7 }6 n6 r) b( ]; ]5 d
int *pda;
# r. X5 Z2 t+ a+ r& N# x4 ^
long long t1,t2,t3,t4,tover,tdelt1,tdelt2;
6 C( k. O1 Q* j( ~! d
Int main()
% n8 T1 D; p# W& a! }* Y* M" E+ ]7 N$ ^
{
' W, W; g8 y1 f8 i6 z
TSCH=0;
! O! _" s* v1 B, J
TSCL=0;
% n' O! X- j' `& H: U
pda = &test;
* m0 g7 u" u. c, f! E; P
t1 = _itoll (TSCH, TSCL);
) L# T3 q8 E( M) S* m
test = 20;
1 S4 R8 J0 V, M( M, h9 p5 N% H4 S* {
t2 = _itoll (TSCH, TSCL);
2 E+ N! B$ o3 `, k* M
*pda = 30;
( F3 B/ @3 D! @8 d) {% R2 \
t3 = _itoll (TSCH, TSCL);
$ M; Y# M. U; r. N' a
tdelt1 = t2-t1;
* \0 `# @1 A' s8 e, r; Z
tdelt2 = t3-t2;
# J- C6 u/ L& j
return 0;
/ o( R# R+ C. G, l( K9 j. Y
}
3 W+ y4 w6 W. j3 W
7 }; k R/ k2 n, K- w* H l# S6 I
就用这个一个简单测试程序测一下程序耗时,果然有问题。
这里面tdelt1的值是7,tdelt2的值是362。
同样一个赋值语句,一个是直接变量赋值,一个是通过指针赋值,但是用的时间差距好几十倍。这个问题急需解决。麻烦分析一下什么原因。
% P. ?# H' L6 ?5 N* a/ f+ i
有劳有劳。
- x. w0 o7 n3 H1 r7 I' A$ v3 z
作者:
希望缄默
时间:
2016-8-23 22:23
主函数中都没有启动 sys/bios 系统调度 应该是没有影响的
作者:
moontiger564
时间:
2016-8-24 08:58
希望缄默 发表于 2016-8-23 22:23
+ ~5 S5 P/ e. i( u* s
主函数中都没有启动 sys/bios 系统调度 应该是没有影响的
' ~& D" \6 h# K% g# h0 k: {: |( j
本来也是担心bios系统对它又影响,所以特地新建了一个sysbios工程,不起任何任务和中断,不起bios系统,就存粹一个main函数。发现也是这么个现象。所以就奇怪了。你们也可以帮忙试一下。就新建一个sysbios工程就能发现这个问题了。
7 N. i+ c9 ^. O6 a5 Y7 e8 k) z
欢迎光临 嵌入式开发者社区 (https://www.51ele.net/)
Powered by Discuz! X3.4