|
[color=inherit !important] 我们这边用的你们的开发板,测试双核功能,目前遇到的问题是:
" F4 X" M" V% O, U7 m6 {[color=inherit !important]1.ARM端Linux 系统正常进入到文件系统中+ n+ T j1 m+ H" {0 l6 R$ E9 U
[color=inherit !important]: u* l$ b2 T3 _* V7 `$ b! b' Y& A
/ d; }. a) o7 J" M( u
[color=inherit !important]2.DSP端运行基于sysbios的工程,在工程中通过如下设置定时器2! c+ V( x2 x3 I
[color=inherit !important]
8 c( C9 p3 ]# E( V9 l# y
- E$ z+ Y4 a+ f$ {( k" {* y3 [timerParams.period = 500;
) \8 w4 M" K: l5 ]9 B N3 ZtimerParams.periodType = Timer_PeriodType_MICROSECS;
4 _) r+ p* k5 P- C. pTimer_create(2, Timer2Proc, &timerParams, &eb);9 n- @! \ N% D& ]
1 N& Z' Y! n" m- P. ~8 c- U
3 B/ B# w# R0 R4 X/ l3.然后在定时器Timer2Proc()中断函数中进行翻转GPIO的操作,然后用示波器去看GPIO的波形,发现产生的波形周期为960us(正常应该是1000us);: j: y+ M# v' ?4 v1 G5 T9 g) ?
产生了定时器定时周期和我预设的周期值不一样。附件是我dsp.cfg文件(只能上传一部分)。请教一下这个问题是什么原因导致的,如何解决,谢谢。
8 `* L3 } I$ w6 }+ G! u# m5 [" _9 n% v
|/ X4 {& l" a8 l j
0 f2 b: ]7 Z9 \- `7 ]2 r3 D+ D3 y& _% K( v8 g9 G
/*7 u% H; _ \5 A3 @
* ======== Dsp.cfg ========3 I6 b% ^9 E! O9 x
*
+ A' B9 h7 k7 ~0 ?* {% _, i; C) c */
/ Z: X* b1 f( J( _2 \, \* A% D; s% ?& ^7 l+ B; E; n# k( ]
! q5 R7 J! `: d5 e. g. H1 Q' h/* root of the configuration object model */
7 F) h3 ?9 x% v/ s" m) Zvar Program = xdc.useModule('xdc.cfg.Program');- P- P2 H- A3 X& M( b" W, ~
: d5 d3 r. S* B
& [$ j$ b \' H% E$ d/* application uses the following modules and packages */
' ]" i3 k+ P; k4 t5 Y Vxdc.useModule('xdc.runtime.Assert');
}: [: f9 X1 }; `% rxdc.useModule('xdc.runtime.Diags');- p1 f+ e- e( r9 S8 s$ a$ O9 ^
xdc.useModule('xdc.runtime.Error');
' R. v, I8 w& C h4 r" ^: ^xdc.useModule('xdc.runtime.Log');1 y7 c4 c/ g) `$ c; {/ y
xdc.useModule('xdc.runtime.Registry');% v5 H( q' E- w- l" Q% O( x
l* B) [0 g6 Z3 l# X: j
, v+ S1 S$ U! ~9 Wxdc.useModule('ti.sysbios.gates.GateHwi');
; y7 [6 d* j/ n J7 I; A' zxdc.useModule('ti.sysbios.knl.Semaphore');
/ b3 r! }" C: x" ?0 K7 k" R5 Mxdc.useModule('ti.sysbios.knl.Task');& g* S6 v5 z' @0 F
+ s8 u# |. v8 k5 u9 ~* P8 ?! T( q
9 l+ R& J5 U' r
. n& W3 W6 I' A& W/ I# Y: |1 j' \; l3 f- _3 {5 Z! U6 o
7 w4 ?" M( o" N3 P- O: Z T4 {
' |+ u# D, ^' P3 u1 S3 V; l
]/ a" f/ p/ v7 uvar BIOS = xdc.useModule('ti.sysbios.BIOS');
* A% \1 K' y2 _5 S3 O, g$ F$ ^BIOS.libType = BIOS.LibType_NonInstrumented;* |: t5 e9 Z8 r* A
: n6 d6 K9 _" K" f. v0 y) M! k; P6 C: j5 t: J! q
; ?6 X9 \3 N8 r! H3 F: Hxdc.useModule('ti.syslink.ipc.rtos.Syslink');' B" h8 v( }' _2 v4 `
5 C6 \4 w3 I, B3 w- s) `, O' h( k2 `, J" O
4 g3 K: D. A3 H, D+ R. K7 i2 q
var MultiProc = xdc.useModule('ti.sdo.utils.MultiProc');
3 Q& T2 t& y0 Q* S) i+ d+ [var procNameAry = MultiProc.getDeviceProcNames();
% K9 E( ]% g6 W& Y2 T) {MultiProc.setConfig("DSP", procNameAry);+ i. x! S. O2 t4 I: r3 Y
% |" x2 I4 N# y6 F
7 d2 z! N; N( q5 }. [' E: Y
/ I5 r% w* B+ {) evar Ipc = xdc.useModule('ti.sdo.ipc.Ipc');5 G* V3 n" F5 {
}+ T' e: f* J' L
8 h8 z8 P$ `( i- b1 O
8 x& m% s4 `4 j8 M3 _Ipc.sr0MemorySetup = false;
+ i. s3 Y) Y* ]4 c/ d
4 p. o4 P3 D+ G) Z8 q
8 T" g% R _' |- f+ _5 N9 I
: `4 w2 W# M1 k' Z* K. PIpc.procSync = Ipc.ProcSync_PAIR;
& q5 ^* V: I* P' F' O5 E3 M8 ^9 n1 L* v5 B% ^' j* x
$ B |! ]7 ?$ \# n4 a
/* define host processor */ a6 H1 F% a) f X( Y3 [
Ipc.hostProcId = MultiProc.getIdMeta("HOST");/ Z- B5 n8 [1 r+ m" Q4 w+ b5 v
6 S4 z6 X- B H$ h; d1 |. q3 ~' n. t% s/ ] Q! |- M
/* shared region configuration */
0 u; Y% |% B$ x0 k9 }- Qvar SharedRegion = xdc.useModule('ti.sdo.ipc.SharedRegion');
9 d0 S2 ?5 g$ H* |) H" n; S3 d% l9 @5 y; L& M7 n9 [! q1 p4 J
6 F0 Q i$ d+ Y- [. i7 A/* configure SharedRegion #0 (IPC) */% B3 _. y' t6 e. t5 `& W: O
var SR0Mem = Program.cpu.memoryMap["SR_0"];' w9 O/ V! l" I9 ]
; R' `. v! ]& Y2 E& g4 [
$ Y# F3 U: I3 D% O8 x) [2 ?6 j
SharedRegion.setEntryMeta(0,/ j& k& c$ t+ f3 s m+ L0 D
new SharedRegion.Entry({/ b+ ^$ s( R* X9 _1 v
name: "SR0",
" ^( v7 W+ d9 L) _: g* O base: SR0Mem.base,# k' F% ?! V7 O7 b! s
len: SR0Mem.len,
B; C2 S+ S) X; [2 S" U ownerProcId: MultiProc.getIdMeta("HOST"),) n$ R# V I- ?- w
cacheEnable: false,8 p' w1 c1 h% X6 w& N/ j, ~
isValid: true
' X; n; D6 I8 e# R })' F5 J! V$ w Z. h4 N
);9 T; y% r, J6 \7 w# [, L5 ]
, J* y# e: L- R0 J+ H5 S
6 t6 u; _1 D9 v) k3 @- m( i1 `
0 R9 b, {, Y4 t% y5 t1 F5 J5 Q) s
: f5 j3 u! x$ t8 y+ Q2 dCache = xdc.useModule('ti.sysbios.family.c64p.Cache');; h1 @; Y5 s! l, R O+ H
Cache.MAR192_223 = 0x00000008; /* xxxx xxxx xxxx xxxx xxxx xxxx xxxx 10xx */
6 @; d/ Q, H$ e3 N0 [/ C5 s; n) H- i" O
' J" a9 n0 y9 P( z" ^
: x7 O' L. L3 d+ ~$ `/ {
- j9 B* o3 E' {# J0 q# X9 U/*& {9 \# y0 X! ]0 a' F5 s( A% h
* ======== Operating System Configuration ========# Z% D4 ?* U( c1 j1 s9 i( r \) }
*/
4 R' z: G; Y% u1 w4 Z% K2 ]# A, y3 w1 d4 S! y Z
* m/ H. `2 T# N' b
/* no rts heap */
# h, y' r: e: L T1 ]Program.heap = 0;
+ n6 D. T1 k0 PProgram.argSize = 100; /* minimum size */
. `- q% S+ k) q& gProgram.stack = 0x1000;
+ w: ^: R: z) x1 G: k
0 C. x7 T X9 C4 }
8 U/ A" y( ~, F- T3 `; \% ~2 O! _/* create a default heap */
# F7 @* O0 Q! T2 V: N& Vvar HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
2 B+ Z. @/ p# ?3 }; I/ Uvar heapMemParams = new HeapMem.Params();
! h z# M' s% a; wheapMemParams.size = 0x4000;
4 k6 Y5 n/ E% v( f& @" w
4 [% Q+ z8 B( P! @; g( T6 Y5 A
' w( [- b# O9 L, S- k9 \var Memory = xdc.useModule('xdc.runtime.Memory');
2 ^; }/ o7 `) \0 z3 u$ |2 F! ~. NMemory.defaultHeapInstance = HeapMem.create(heapMemParams);/ n8 A \! g1 G6 s, x3 M0 G
( O0 g- _5 `1 F2 t$ Y" Y: p# ~ T" f( j4 n3 _
/* configure System module */
( S! u/ |3 v0 Kvar SysMin = xdc.useModule('xdc.runtime.SysMin');% s( {3 t W/ S" \' C! E3 C9 ^! ?
SysMin.bufSize = 0x1000;( E% Y1 ]) y# r
SysMin.flushAtExit = false;
! ^& v& x( Y3 D+ G# t
) L7 j% T7 p; h; X. a' q8 Y
. y, c, @1 [0 avar System = xdc.useModule('xdc.runtime.System');! B# _- ]9 \( D8 |* H
System.SupportProxy = SysMin;# Z3 D; R# m" h o9 R) Q
% _8 v0 f: ~. C& c! I( H1 v! }+ @
/* configure SysBios to use the lower half of Timer 1 */+ f1 M4 l ~* ?( g" j
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');+ w' `' }& }: z2 i) v7 T. S! p
var Clock = xdc.useModule('ti.sysbios.knl.Clock');$ y: K: e0 ^0 l& q. {
Timer.timerSettings[1].master = true;' s3 n3 @# n4 D0 \: w/ z5 O- k
Timer.defaultHalf = Timer.Half_LOWER;: D) a& d" r- q! i* L
Clock.timerId = 1;
7 }+ T4 @' g* K B2 m o/ ^/ x$ g% L7 V" ]) M
; P4 O ~3 [2 E6 b! @
* Y# X4 ]# Y: z0 m9 S. X( G. o% C& H
|
|