嵌入式开发者社区

标题: 请教:双核裸机程序,修改例程中DSP端的cmd文件,下载后... [打印本页]

作者: lanteng    时间: 2017-1-13 11:13
标题: 请教:双核裸机程序,修改例程中DSP端的cmd文件,下载后...
OMAPL138基于IPCLite的双核裸机程序,创龙例程中,DSP端的cmd文件中将所有的段都放在DDR2中,我想让程序在L2RAM中运行,所以将所有的段都放在L2 RAM中,编译、烧写之后,上电程序不运行。请教一下是什么原因?
+ W/ c, N8 Y$ @& A( Y/ e9 H
作者: human    时间: 2017-1-13 21:18
修改CMD后仿真是否能正常工作
作者: lanteng    时间: 2017-1-16 09:14
我在CCS5中仿真,不管是在DDR2还是在L2中都可以正常运行。但是,按照15-3手册中的方法在虚拟机中烧写程序后,如果在L2,上电程序不运行,在DDR2,上电就可以运行。
作者: lanteng    时间: 2017-1-18 09:33
程序仿真是在windows环境CCS5中进行得,DSP端cmd文件中的所有段不管是在DDR2还是在L2 RAM中都可以运行。程序编译是按照15-3手册,在Ubuntu中进行源码编译,生成.ais和.bin文件,再烧写进NAND FLASH,在Ubuntu中的源码,如果DSP端的cmd文件的所有段放在DDR2中,则编译、烧写后,上电程序运行。如果放在L2 RAM中,则编译、烧写后,上电程序不运行。
% c+ ^! f( I$ @, _4 _5 L5 E! k刚开始做双核裸机开发时,用TI的源代码则编译、烧写后,上电程序不运行。需要用创龙修改过的IPCLite中的源码进行编译、烧写后,上电程序才允许。对比过这两个源码的区别,除了程序中对IPC部分的设置不同外,cmd文件也有一些区别。所以,想请教一下,是否基于IPCLite双核裸机开发,DSP端的cmd文件必须按照创龙给的那样进行空间分配,还是有什么特殊要求?请赐教,不胜感激!现在程序就剩下烧写进NAND FLASH了!
作者: human    时间: 2017-1-18 14:05
需要在cmd文件给L2空间预留一段RBL引导程序的空间
作者: lanteng    时间: 2017-1-18 14:20
human 发表于 2017-1-18 14:05
* |, C) R4 l6 |1 t% t8 j需要在cmd文件给L2空间预留一段RBL引导程序的空间

6 `5 F) N9 C0 ]你好,具体怎么写这段代码?之前的cmd文件,将所有段都放在DDR2中,其中哪一句对应的功能是预留给RBL引导程序的空间?请指导一下,谢谢。
0 |3 U+ r- [& Q% U0 OSECTIONS1 I3 Q' V, N; o2 W. w
{3 u) I- s* y: u, m
        GROUP (NEAR_DP_RELATIVE)
8 y1 k3 o6 v% a* O" u1 N        {
5 {4 u( G0 T; h* n/ f. c' ^  D6 q: ]  J            .neardata
. V: `7 D% Y. u" f* l( I% D8 H1 E* V            .rodata
# y6 D2 q1 a6 c  P: z            .bss
& Y0 O( k1 u# O( U  a% Y        } > DDR2
, w+ y+ h8 ^9 N8 A( d1 O$ U5 I; w; \% E) m
        .cinit                >                DDR2                                // Initialization Tables# x1 G7 z3 z* g% Z4 [& Y
        .pinit                >                DDR2                                // Constructor Tables
' ^: X& r# g+ G1 y    .init_array        >                DDR2$ U* ?# _6 o! ]% ^. T5 y4 D
        .const                >                DDR2                                // Constant Data
; w/ n6 }# V. \0 d0 R# A" t' U/ i; ]        .switch                >                DDR2                                // Jump Tables, {, e! W8 P! m9 \( e! h7 u1 h
        .text                >                DDR2                                // Executable Code
: X9 Y7 o: F" b  `+ C! g5 ~. S- r        .text:_c_int00: > 0xC3000000                                        // Entrypoint
+ G8 \! b; @! p, g4 e* o       
1 G2 m0 T( f7 b& X1 W        .far                >                DDR2                                // Far Global & Static Variables* u. u; `! Y2 z" w# D
        .fardata        >                DDR2
" e2 Q9 j+ t7 c: x  x6 ]8 u1 X  _: Q        .stack                >                DDR2                                // Software System Stack
# ^  Y  Q6 A8 o' I0 A        .sysmem                >                DDR2                                // Dynamic Memory Allocation Area
( U5 }" K1 C$ A; z, |. v0 {        2 R! Y- g" [' N# v7 E  M( J: z  b1 y
        .cio                >                DDR2                                // C I/O Buffer0 J1 x" }, t1 ~" d- c7 r
        .vecs                >                DDR2                                // Interrupt Vectors; v4 I9 u- C' r) [
}
作者: lanteng    时间: 2017-1-21 08:35
human 发表于 2017-1-18 14:057 b. u. [$ h4 R3 {
需要在cmd文件给L2空间预留一段RBL引导程序的空间
& J& _9 {% B& ^4 s( t9 x6 V, L+ J7 Z
你好,请教具体怎么实现,能给大概说一下,我自己查了几天资料,还没有搞清楚,谢谢!
作者: human    时间: 2017-1-23 09:22
建议看看创龙的教学视频-CMD、启动烧写部分
作者: lanteng    时间: 2017-2-7 15:42
human 发表于 2017-1-23 09:22
' Z: G& t1 L% u9 s+ ~) l建议看看创龙的教学视频-CMD、启动烧写部分
" z1 q0 J% Z' j
你好,我将cmd文件中的所有段都放在L2 RAM中,然后将程序起始地址改为从0x11800000偏移一定的地址,为RBL预留一定的空间。但是我不论偏移多少地址,编译、烧写后,程序都不能正常运行。麻烦帮我看下是哪里修改的不对吗?谢谢!2 q' ?5 q+ i* J( R" @$ V
SECTIONS) h/ J  F# B2 A, t- A
{; K6 j+ l9 E" v1 \$ D
        GROUP (NEAR_DP_RELATIVE)
2 N+ N5 b  V6 _9 M* J8 M0 {        {
- V( V# x  N; q) v! Y+ ~            .neardata# j0 s/ {" }6 \! Z9 Z
            .rodata
; e" L6 U) ~  q% k# ~% r: o            .bss
- `# e; c. E0 n2 E( |        } > L2
! T5 D' [! N! {7 i: B9 x
, i8 A. s3 M. o        .cinit                >                L2                                // Initialization Tables
* S! S# X. [( |        .pinit                >                L2                                // Constructor Tables! O$ U- G1 @3 m
    .init_array        >                L2
/ v0 ]0 B# L7 C1 x0 N5 [: p$ W        .const                >                L2                                // Constant Data
! k9 V' I% m0 z$ r' R/ c        .switch                >                L2                                // Jump Tables7 ], g7 r/ v( Y$ Q
        .text                >                L2                                // Executable Code
* S9 C1 m1 W8 i- \5 p* K% \/ s8 ?        .text:_c_int00: > 0x11810000                                        // Entrypoint
7 n. b! M, t" ]4 X        
% W" E; N& a' ~7 L4 k        .far                >                L2                                // Far Global & Static Variables) g; l. y3 Z* j* t) |4 r) J% o( _. k
        .fardata        >                L2& s, Y% q$ o) {
        .stack                >                L2                                // Software System Stack' l: \, K+ h5 V0 }
        .sysmem                >                L2                                // Dynamic Memory Allocation Area1 m/ f" D4 X" r. E7 a6 \8 N
        ( a" j' [' ^8 c. c+ n- \
        .cio                >                L2                                // C I/O Buffer9 D6 f. H5 Y. B2 P* T
        .vecs                >                L2                                // Interrupt Vectors
' F& K- f% s% j. v% W7 L3 `}! V. U  j2 K+ ~* r

作者: human    时间: 2017-2-7 17:22
你添加了SPL引导程序没
作者: lanteng    时间: 2017-2-8 11:20
本帖最后由 lanteng 于 2017-2-8 11:22 编辑 3 M5 u* n- u9 s0 c$ B, ?0 {! W
human 发表于 2017-2-7 17:22
9 p/ |/ {" A( o1 `你添加了SPL引导程序没

- u5 t& z7 M: D  K你好,没有添加SPL引导程序。请教SPL引导程序需要怎么写,有参考例程或者资料吗?具体要添加到哪里?在视频中没有看到这部分,之前也没有接触过,请指教,谢谢!
作者: human    时间: 2017-2-9 17:31
加我发你  2942385389
作者: lanteng    时间: 2017-2-13 11:32
human 发表于 2017-2-9 17:31: A0 o3 C# x, m" Z- c; a. @5 `9 l
加我发你  2942385389

) J2 Q+ ?( B* b7 X7 [5 \: S你好,用SPL引导程序u-boot-spl-pad.ais之后,仍然是DSP端cmd文件中所有段放在L2 RAM中,程序上电不运行,放在DDR2中则运行。请教,是否需要修改u-boot-spl-pad.ais代码?我试了好多次都不行,麻烦帮我分析一下是什么原因?谢谢!




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