| 
 | 
 
[color=inherit !important] 我们这边用的你们的开发板,测试双核功能,目前遇到的问题是:" R' \( }! c" j, e/ H 
[color=inherit !important]1.ARM端Linux 系统正常进入到文件系统中& c& i& o' O! G/ T4 m 
[color=inherit !important] 
, B1 f' f4 P0 m" x& A1 o1 o7 j9 I) e( b+ m9 x 
[color=inherit !important]2.DSP端运行基于sysbios的工程,在工程中通过如下设置定时器2 
, \8 g( N( ]" K[color=inherit !important]1 G' ?: ^' p: M  P: F" o1 f5 z, L$ m 
* E+ R  Q6 }' j6 A' P 
timerParams.period = 500;. U  T7 R7 x# ~' P+ k' c 
timerParams.periodType = Timer_PeriodType_MICROSECS;, C6 c8 h5 [$ U  N5 v% N 
Timer_create(2, Timer2Proc, &timerParams, &eb); 
: n! F, ^$ b2 C- `0 N' W& o% _ 
# Y/ }6 u% L% p# s) g 
  y$ E, S3 q9 U/ s& ^6 h3.然后在定时器Timer2Proc()中断函数中进行翻转GPIO的操作,然后用示波器去看GPIO的波形,发现产生的波形周期为960us(正常应该是1000us);+ @0 f, N2 t3 [! r8 b/ Y1 D/ _! c 
产生了定时器定时周期和我预设的周期值不一样。附件是我dsp.cfg文件(只能上传一部分)。请教一下这个问题是什么原因导致的,如何解决,谢谢。! }( I( W# L! V6 z* ?' I: W 
 
/ N7 c5 R: C' @+ m& Q( k8 ]  ?6 a% N3 s" A 
 
! c, _( z  e6 [' g: ~# D. j. Y/** c* m& J5 a0 n3 f. P 
 *  ======== Dsp.cfg ======== 
  Q& }) p& P+ ?% ], p * 
* S# Q( ?7 {! G5 `1 S */$ ^% z$ i& {; z$ p9 B8 S0 E3 B- U 
( A3 \0 |% {5 q, |, y/ M( J' r" H 
 
) u6 J8 r! X; A: _/* root of the configuration object model */, Q7 @( @8 u8 U9 @4 ]) ]# Y 
var Program = xdc.useModule('xdc.cfg.Program');$ z' H7 w+ B9 `: q 
 
3 e. t; F3 y  p: t  \5 @' r1 Z! U: n0 p1 T% b& @ 
/* application uses the following modules and packages */3 h2 M* P! o: U 
xdc.useModule('xdc.runtime.Assert');3 A5 q; D* Q7 B, \, F+ M. H1 O# Q 
xdc.useModule('xdc.runtime.Diags');: A+ m. c6 h- }# i3 w 
xdc.useModule('xdc.runtime.Error'); 
2 m% a+ |0 j* v5 zxdc.useModule('xdc.runtime.Log');2 c& U( g8 X# S& H: o 
xdc.useModule('xdc.runtime.Registry'); 
5 `1 W: I. z& R9 C0 X 
% u7 w$ u5 R4 v$ A% Z3 p1 o) T# h! \8 |8 M 
xdc.useModule('ti.sysbios.gates.GateHwi');6 H7 z! i/ d: i8 T4 X 
xdc.useModule('ti.sysbios.knl.Semaphore'); 
8 }: c* f) Z2 V7 E" C0 Gxdc.useModule('ti.sysbios.knl.Task');3 Y- T& D8 {, { 
 
) D* R. t/ p! q* X+ J  c2 w' P; T; ]$ L1 ~$ o2 o( `7 E  ^, g9 W" J 
* ~" b! w' s6 ?4 I: p 
 
9 o0 s: V5 u4 T, b8 Y4 V% ~5 k- h2 P; L* D5 i$ X 
9 b7 E1 G0 O- l( O: y, @6 f 
 
) B' `0 R% q) N& G7 ]var BIOS = xdc.useModule('ti.sysbios.BIOS'); 
/ o2 W! D2 N# g2 jBIOS.libType = BIOS.LibType_NonInstrumented;! U  E5 @" b# I9 G( F 
7 m- E% U' {2 Y% t) n2 ?, N& p8 p 
% L. _. d# i8 U 
( h# X* c7 I  P; t& |: m, [ 
xdc.useModule('ti.syslink.ipc.rtos.Syslink');) R2 P) \) X' e, x5 T- D( i2 @4 Q 
2 N% F3 B1 p$ O' E$ Q. n1 k3 s2 | 
 
9 t( C% Q2 h1 ^' p$ k$ g 
$ r$ g4 {- K/ H# f7 mvar MultiProc = xdc.useModule('ti.sdo.utils.MultiProc');" ]1 p. r# K  h  _3 _ 
var procNameAry = MultiProc.getDeviceProcNames();9 c! m* ?! f) f 
MultiProc.setConfig("DSP", procNameAry); 
  y/ U, P& N0 X9 V9 [! M! b2 f, g# [ 
( W, Y5 Q" ~7 D3 T- ~- e3 d( S2 l! x  A# u) E- }2 Z 
2 ?  H) n: w. L) |! j1 O 
var Ipc = xdc.useModule('ti.sdo.ipc.Ipc');1 e6 A9 H3 L! d; G5 Y' |: [ 
 
; d4 J' h' q1 }. i0 R* {# M, [( |1 k5 r' Q1 Z# d) A 
 
: L! h3 S% _1 v8 Y3 r) |! B7 C1 QIpc.sr0MemorySetup = false;; b& _" ]: M) y# l6 b$ c 
0 [1 `0 o( L* p9 V4 m 
 
1 G" A, x" R% k6 r6 {1 a' Z% @1 X$ F7 T- `6 n- W 
Ipc.procSync = Ipc.ProcSync_PAIR; 
! y6 v2 j; @; C# f. M/ R5 u. w" F% a4 ]6 {/ B 
" a0 @5 h+ ^" L  f 
/* define host processor */- r/ z/ _: U6 n 
Ipc.hostProcId = MultiProc.getIdMeta("HOST");' ]. \6 Z4 u, ]$ m$ Q) \( a 
 
' u1 z8 v- w$ L. ?  ] 
7 L2 R+ n0 a% t: u& d9 m% Q5 h6 C/* shared region configuration */ 
0 }8 J& u- _: T4 @) M4 jvar SharedRegion = xdc.useModule('ti.sdo.ipc.SharedRegion');6 w( X( D/ D+ P 
1 \! H: H5 H7 ]) S 
( B+ I7 u  U6 B 
/* configure SharedRegion #0 (IPC) */) \- x( T" L! n* n0 k 
var SR0Mem = Program.cpu.memoryMap["SR_0"];1 P3 b' y: v" F 
6 X, p3 L- q' g; g8 X; e* C 
 
+ ?2 g8 S2 g( D) d2 v5 r1 cSharedRegion.setEntryMeta(0, 
5 u' _3 ^/ |6 W7 B    new SharedRegion.Entry({ 
" \0 D: M% b+ N/ f        name:           "SR0", 
1 k( L+ Q5 G' [7 A. n6 C        base:           SR0Mem.base, 
* u/ Y/ j9 k$ C; o        len:            SR0Mem.len, 
; {$ C+ G. s) \! e        ownerProcId:    MultiProc.getIdMeta("HOST"), 
/ q9 p# `* }2 `' m' F4 W        cacheEnable:    false,' T( a, b5 k! E: C! h 
        isValid:        true 
' N. X9 U; l6 i; c: {& X' Z- p    })/ s9 x- c- Q. i6 F/ y+ l$ G 
); 
2 D, J" ]& S" H; I1 V9 c$ I, k$ l( h% V* n5 E( ^. i3 F7 M 
' v4 y# V. n7 H# F 
 
$ s3 E+ c) X" i# m* h! E. ]! c; ^6 a! }  F3 Y* p 
 
: j  C$ j% F1 }/ R- K7 FCache = xdc.useModule('ti.sysbios.family.c64p.Cache'); 
6 l( n* e. J4 m. }# ?Cache.MAR192_223   = 0x00000008;  /* xxxx xxxx xxxx xxxx xxxx xxxx xxxx 10xx */ 
3 F7 X# A) M6 P: T: G" L 
7 K9 q. @' K. H4 s0 ]- d 
" E5 ]0 \8 y: L: _! R' k+ _& [) g4 ~5 H3 _9 P" b5 R 
6 z3 q, n  a9 w: X. v8 r/ G0 u 
/*$ u- l2 f3 `) M3 p 
 *  ======== Operating System Configuration ======== 
% y( M$ p! r2 k5 G */6 F( s/ H+ u, K# S. r 
 
1 u( I5 V* D, w* I) [- |; W6 q. m0 U3 [' C/ ^  e3 A" L 
/* no rts heap */# P/ u+ O4 ~/ I) Q 
Program.heap = 0;! G  |8 l/ Z, K 
Program.argSize = 100;  /* minimum size */ 
' F  y! c* e4 @, jProgram.stack = 0x1000;5 z  C" d4 Z, |: v6 T" J+ |: e) D 
 
3 _& ]6 P- U& Q* F# p8 x7 X! ]$ p6 z' r0 Y0 ~# `6 D 
/* create a default heap */2 L* C, \: Z( Z; T) D  R$ r0 o- Z- q 
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');$ L3 E! a+ ^3 u1 O 
var heapMemParams = new HeapMem.Params(); 
1 B: v  W& _" U  t3 gheapMemParams.size = 0x4000; 
' r* Y+ \/ n' v% M. N& `. t  n 
7 Z6 e, t, p0 W" w8 I$ J( G( n3 n2 _  [2 j. Z) m0 O% S$ f3 j! | 
var Memory = xdc.useModule('xdc.runtime.Memory'); 
3 v( m" `: U) Y5 H5 G; O0 UMemory.defaultHeapInstance = HeapMem.create(heapMemParams); 
+ `& `& x+ e- T9 C6 C0 g  P: ~. V% r. Q7 I 
 
5 P# d, g% m2 \4 j9 R8 R- u/* configure System module */& @) Q( x$ W# E6 h1 A) u 
var SysMin = xdc.useModule('xdc.runtime.SysMin'); 
: t+ }& s5 @! ^- t$ ]& ~, [SysMin.bufSize = 0x1000; 
, k! E9 \& m& W/ y2 gSysMin.flushAtExit = false;. f( U2 Z. L8 R/ D. S 
 
6 a3 {3 ?8 b- j 
# _# s, v8 o8 j4 ^! l( S/ U( Lvar System = xdc.useModule('xdc.runtime.System'); 
9 h- r( o" b3 H& H1 L: a$ lSystem.SupportProxy = SysMin; 
1 g$ I- x6 L  g8 ^1 d1 k" L# _; H" p/ y: J 
1 J+ `1 w2 M8 ^ 
/* configure SysBios to use the lower half of Timer 1 */ 
6 ~6 G9 Z. v% M( lvar Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer'); 
( ]7 N" X' b. t; c2 f" W" Uvar Clock = xdc.useModule('ti.sysbios.knl.Clock'); 
) J5 l& o2 U, T$ lTimer.timerSettings[1].master = true; 
: _  {2 C. b# I" l! l( g' MTimer.defaultHalf = Timer.Half_LOWER;/ c0 B9 @% F5 p7 S 
Clock.timerId = 1; 
. d; f+ H6 V& E: J* l* F- s) M5 U: ~) R- H 
0 W; l3 p4 f3 F 
 
1 R2 g* c) D/ n. r/ M! O2 t8 Q5 x' o/ |1 o 
 |   
 
 
 
 |