嵌入式开发者社区
标题:
sysbios系统工程指针操作耗时长的问题
[打印本页]
作者:
moontiger564
时间:
2016-8-23 10:06
标题:
sysbios系统工程指针操作耗时长的问题
目前遇到一个很奇怪的问题,急需解决。我用的omapl138的平台,然后跑sysbios的时候发现对指针赋值的时候消耗很长的指令周期。例如
2 i" b$ d* v' v$ Q* l/ O, E9 K
*p = 20.这么一个赋值语句就要耗时300多个指令周期,而普通的变量赋值例如a=10这个语句才7个指令周期。然后我新建一个sysbios工程,单独做个测试,代码如下:
2 t. w5 Y$ s5 Q- j* }/ p: J
* ======== main ========
+ U, _0 ` m' Z! a5 o- w
*/
5 t0 ?% ]% ?& t1 U
int test;
% X2 n6 a, V. Z+ W; {* B( Q6 A: h
int *pda;
; H, w, P2 Q4 A$ V1 ?7 B
long long t1,t2,t3,t4,tover,tdelt1,tdelt2;
$ q/ _& [: T) l, v
Int main()
! R- q2 }# r& C
{
, b+ J! x7 L1 b; a
TSCH=0;
3 S( s; N+ Y" q% g$ G' _
TSCL=0;
3 j5 ]2 c4 S' n1 n; v
pda = &test;
/ `; B8 Q: a6 R$ j
t1 = _itoll (TSCH, TSCL);
+ p: z% B4 o$ _' P
test = 20;
# k- m; k/ f! E2 b1 n }
t2 = _itoll (TSCH, TSCL);
2 w( r% T* `+ C7 m( X( p" w
*pda = 30;
& B7 e) K2 T1 s% s* ~
t3 = _itoll (TSCH, TSCL);
: \/ e8 K8 g7 B! q m; F" S
tdelt1 = t2-t1;
# I3 {/ G8 h. }2 n) i5 @
tdelt2 = t3-t2;
9 T" M+ [4 b* H% _; a% u
return 0;
9 `; ^ O, k; E5 q8 M1 Q
}
# T1 v4 G( u; R& @. P
/ U& u" P& k+ M: G' U% _( G4 U
就用这个一个简单测试程序测一下程序耗时,果然有问题。
这里面tdelt1的值是7,tdelt2的值是362。
同样一个赋值语句,一个是直接变量赋值,一个是通过指针赋值,但是用的时间差距好几十倍。这个问题急需解决。麻烦分析一下什么原因。
5 w/ A9 d3 E# H6 L( n
有劳有劳。
1 F0 q9 U6 } @# n1 o( _: i. j! h) N( d
作者:
希望缄默
时间:
2016-8-23 22:23
主函数中都没有启动 sys/bios 系统调度 应该是没有影响的
作者:
moontiger564
时间:
2016-8-24 08:58
希望缄默 发表于 2016-8-23 22:23
% v# e1 C3 B9 {' l1 W; O+ u
主函数中都没有启动 sys/bios 系统调度 应该是没有影响的
/ K" y r* G0 K# x/ z
本来也是担心bios系统对它又影响,所以特地新建了一个sysbios工程,不起任何任务和中断,不起bios系统,就存粹一个main函数。发现也是这么个现象。所以就奇怪了。你们也可以帮忙试一下。就新建一个sysbios工程就能发现这个问题了。
. L6 A, ~9 t/ H! I1 {, I
欢迎光临 嵌入式开发者社区 (https://www.51ele.net/)
Powered by Discuz! X3.4