嵌入式开发者社区

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

作者: lanteng    时间: 2017-1-13 11:13
标题: 请教:双核裸机程序,修改例程中DSP端的cmd文件,下载后...
OMAPL138基于IPCLite的双核裸机程序,创龙例程中,DSP端的cmd文件中将所有的段都放在DDR2中,我想让程序在L2RAM中运行,所以将所有的段都放在L2 RAM中,编译、烧写之后,上电程序不运行。请教一下是什么原因?
9 d: |% t- K4 u$ I. c
作者: 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中,则编译、烧写后,上电程序不运行。: q- J" l% C3 L
刚开始做双核裸机开发时,用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
1 |: x6 s; B8 V( v5 R( \需要在cmd文件给L2空间预留一段RBL引导程序的空间
. ~. s2 n* s  B  L/ m
你好,具体怎么写这段代码?之前的cmd文件,将所有段都放在DDR2中,其中哪一句对应的功能是预留给RBL引导程序的空间?请指导一下,谢谢。0 i6 J  i/ S$ [) k6 B+ O5 \. ?: B
SECTIONS+ V( x) K( [3 H, _. S0 O
{
/ _: p& |& d* R6 Q0 i        GROUP (NEAR_DP_RELATIVE)$ r& u+ X. A- f, a! V1 {2 M. }
        {: E* V$ h' U- H9 g( x
            .neardata- H4 a1 }; }4 l
            .rodata# b! L. r6 Y& z6 i4 i5 y, N5 i
            .bss
, {$ B0 Z  V  }- Q* A  x. o        } > DDR2
' L& c8 F' B7 H2 L. a9 H! L
' M0 r2 @4 o( _) O        .cinit                >                DDR2                                // Initialization Tables' b* ?8 ?5 x5 z/ b1 }
        .pinit                >                DDR2                                // Constructor Tables2 ?8 E' g# D8 E4 K5 x8 p1 Y
    .init_array        >                DDR2
/ ~9 ]9 R( p1 ]; m4 O        .const                >                DDR2                                // Constant Data0 A, K. t4 k- }
        .switch                >                DDR2                                // Jump Tables
) e( J; u/ j$ D! o: K# W8 \2 E, _        .text                >                DDR2                                // Executable Code
# i. V5 |% `5 }4 e$ Y. o        .text:_c_int00: > 0xC3000000                                        // Entrypoint
9 A8 T2 G6 M, S2 Z        & J$ m. C/ d% g7 b
        .far                >                DDR2                                // Far Global & Static Variables
! \, F2 h* G: A! ]. O        .fardata        >                DDR2! o: ~* G1 X, S: P) d
        .stack                >                DDR2                                // Software System Stack
6 S. V7 k& N9 n9 P& j( R7 }. u# i        .sysmem                >                DDR2                                // Dynamic Memory Allocation Area% j: [9 |: f9 X. }- L* E' x4 ?  Y9 |
       
8 w; e, N9 L1 S3 v) N$ x        .cio                >                DDR2                                // C I/O Buffer# w/ j& n* y2 a5 K" y. C
        .vecs                >                DDR2                                // Interrupt Vectors
- X. z4 ^; _0 y}
作者: lanteng    时间: 2017-1-21 08:35
human 发表于 2017-1-18 14:054 [$ W! j6 T* W
需要在cmd文件给L2空间预留一段RBL引导程序的空间
4 w+ X: Q. Y$ m7 j% g
你好,请教具体怎么实现,能给大概说一下,我自己查了几天资料,还没有搞清楚,谢谢!
作者: human    时间: 2017-1-23 09:22
建议看看创龙的教学视频-CMD、启动烧写部分
作者: lanteng    时间: 2017-2-7 15:42
human 发表于 2017-1-23 09:223 t8 l- j# d  _+ {6 w7 {8 ?
建议看看创龙的教学视频-CMD、启动烧写部分
  A$ B; l0 M1 V$ Q: ^
你好,我将cmd文件中的所有段都放在L2 RAM中,然后将程序起始地址改为从0x11800000偏移一定的地址,为RBL预留一定的空间。但是我不论偏移多少地址,编译、烧写后,程序都不能正常运行。麻烦帮我看下是哪里修改的不对吗?谢谢!
8 p  ~5 q! y7 O& c# }% N4 ~; O. A8 |SECTIONS6 i: R7 p' `6 G7 P" `+ c* U. e; U
{" `* d' w* d3 U' B( _) |' N6 t
        GROUP (NEAR_DP_RELATIVE)2 h5 E. E1 J/ T. a
        {
" b' m/ X4 G0 t" l            .neardata
9 ~) T+ H- G% [0 C9 X% W            .rodata
! \1 t7 U$ }9 `9 i# P# B3 h$ ~3 A            .bss# x) I4 d* o$ C
        } > L2. j# D5 E% ~, d7 o8 i/ n! B
' f2 ]3 F% I6 Y) f9 B
        .cinit                >                L2                                // Initialization Tables( l. t% m( j  L9 @
        .pinit                >                L2                                // Constructor Tables
) e6 _+ M, B; |/ t9 S    .init_array        >                L2* ]+ y( t% T) V' k/ k7 T
        .const                >                L2                                // Constant Data
. L# J" ~  {4 r: u2 s        .switch                >                L2                                // Jump Tables# s+ B$ ^4 C& V# ?" `6 c2 D
        .text                >                L2                                // Executable Code( P$ \( Q. G7 e( g9 Y- t
        .text:_c_int00: > 0x11810000                                        // Entrypoint
' D7 Q* W+ F: |* v        - G! b8 I  e- B$ i7 Z3 c( ^5 c
        .far                >                L2                                // Far Global & Static Variables* n2 ]3 o' g% t5 k0 p
        .fardata        >                L2
. a6 ^. p4 x: K. a+ v) Z        .stack                >                L2                                // Software System Stack  M0 a: {3 {$ s% v% P, ^( B
        .sysmem                >                L2                                // Dynamic Memory Allocation Area
+ o- h# o, ~# D, I        9 U. C2 K5 ~9 \$ _& T  Q
        .cio                >                L2                                // C I/O Buffer
; H! x& M: p$ y) X& o  N        .vecs                >                L2                                // Interrupt Vectors. S1 N! V/ G- {6 b7 O: X' j: X
}, J& j' ?0 v7 }" V: |' G. V' c+ E3 M

作者: human    时间: 2017-2-7 17:22
你添加了SPL引导程序没
作者: lanteng    时间: 2017-2-8 11:20
本帖最后由 lanteng 于 2017-2-8 11:22 编辑
# x& b" E3 t' _+ n
human 发表于 2017-2-7 17:22# ]) i0 E. G; b! W, f+ |, `# O, y- T
你添加了SPL引导程序没

, I6 `  o3 l/ I3 z# F* q你好,没有添加SPL引导程序。请教SPL引导程序需要怎么写,有参考例程或者资料吗?具体要添加到哪里?在视频中没有看到这部分,之前也没有接触过,请指教,谢谢!
作者: human    时间: 2017-2-9 17:31
加我发你  2942385389
作者: lanteng    时间: 2017-2-13 11:32
human 发表于 2017-2-9 17:31% C1 B  `! R0 w
加我发你  2942385389
9 ]8 v2 f0 N% W- O3 z$ h9 n4 c
你好,用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