嵌入式开发者社区

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

作者: lanteng    时间: 2017-1-13 11:13
标题: 请教:双核裸机程序,修改例程中DSP端的cmd文件,下载后...
OMAPL138基于IPCLite的双核裸机程序,创龙例程中,DSP端的cmd文件中将所有的段都放在DDR2中,我想让程序在L2RAM中运行,所以将所有的段都放在L2 RAM中,编译、烧写之后,上电程序不运行。请教一下是什么原因?
* h; |6 t4 r- I* U0 I
作者: 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中,则编译、烧写后,上电程序不运行。
! ^, \4 A9 q/ Y刚开始做双核裸机开发时,用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:050 H2 m3 S; N) m" i/ r
需要在cmd文件给L2空间预留一段RBL引导程序的空间
# i+ Y8 `6 \* y0 b1 T
你好,具体怎么写这段代码?之前的cmd文件,将所有段都放在DDR2中,其中哪一句对应的功能是预留给RBL引导程序的空间?请指导一下,谢谢。% n* ~9 [, o9 d. U
SECTIONS
  v8 }& A8 r1 z! q{
* J% H* e2 r% u# F% A        GROUP (NEAR_DP_RELATIVE)- T# F9 e& ~: A/ Q
        {
+ n( J8 Z: [+ [  H7 H0 r  J' t            .neardata% B1 `: {! z! H5 o, |" G
            .rodata
, Y% I. k& x+ J/ A& ^0 l            .bss
- i( s! l0 ]) ]: [" Q5 y) m' C        } > DDR2
& v; G- j4 _7 a- N
0 B. O. x& T6 I. X( z        .cinit                >                DDR2                                // Initialization Tables( ^$ Z' V: i% R! F% N
        .pinit                >                DDR2                                // Constructor Tables- V* W* B# `- R
    .init_array        >                DDR26 A" R+ k& u3 k; }6 G& o: m! V
        .const                >                DDR2                                // Constant Data
5 c7 j, K( _# L% u        .switch                >                DDR2                                // Jump Tables/ r" C- q8 G9 z/ ~! M) g
        .text                >                DDR2                                // Executable Code( t7 j- E/ ~* C* `( c( n
        .text:_c_int00: > 0xC3000000                                        // Entrypoint' Y% A0 G) K+ ]0 P" i. k
       
7 m7 t( e0 `0 r0 `$ H        .far                >                DDR2                                // Far Global & Static Variables7 U4 d4 v5 G9 @! G7 O) s
        .fardata        >                DDR29 S( c' W( d% L5 I( Y9 w
        .stack                >                DDR2                                // Software System Stack
' F, K3 y; _0 T9 z        .sysmem                >                DDR2                                // Dynamic Memory Allocation Area6 \" r1 n' ]& j
       
% F7 c$ W& M; N' g- X, {        .cio                >                DDR2                                // C I/O Buffer* {5 r& [$ U! I, V8 e
        .vecs                >                DDR2                                // Interrupt Vectors
" C2 I1 J, d, y  v' X}
作者: lanteng    时间: 2017-1-21 08:35
human 发表于 2017-1-18 14:05
- M( c1 D, ]+ J1 I/ [& B7 c需要在cmd文件给L2空间预留一段RBL引导程序的空间

) D0 Q$ j; ^; C: z+ D, Z你好,请教具体怎么实现,能给大概说一下,我自己查了几天资料,还没有搞清楚,谢谢!
作者: human    时间: 2017-1-23 09:22
建议看看创龙的教学视频-CMD、启动烧写部分
作者: lanteng    时间: 2017-2-7 15:42
human 发表于 2017-1-23 09:22
! D% G7 O' R  N( `5 b, L8 N建议看看创龙的教学视频-CMD、启动烧写部分
9 B2 @4 ?7 u; h/ @5 E
你好,我将cmd文件中的所有段都放在L2 RAM中,然后将程序起始地址改为从0x11800000偏移一定的地址,为RBL预留一定的空间。但是我不论偏移多少地址,编译、烧写后,程序都不能正常运行。麻烦帮我看下是哪里修改的不对吗?谢谢!8 F% M) [0 U( W. [1 `) m% k. ]
SECTIONS# T4 E. L2 _, w3 F8 {
{% n2 g, M; e7 e/ p
        GROUP (NEAR_DP_RELATIVE)) N# ^+ B* J8 V( [
        {
8 R2 C* g  U, ^+ B" J            .neardata
. N7 d% e* e( I. y9 [- h( |7 P            .rodata9 D2 Y3 z2 A, Y
            .bss
1 F5 a2 R8 f% t4 {8 u' J        } > L2
  y0 N$ q% a: N1 ?" H" }
7 B2 `/ Y* e( j0 e        .cinit                >                L2                                // Initialization Tables
2 V! `9 O1 v' N; M  x" K$ f        .pinit                >                L2                                // Constructor Tables
% t" c1 q9 T; `9 a9 \    .init_array        >                L2+ H9 e" p: A/ Q, D# Y, b% E
        .const                >                L2                                // Constant Data
" c! {# N  h* ~/ Z        .switch                >                L2                                // Jump Tables
2 G" V6 C0 x5 [3 i, H1 c& u        .text                >                L2                                // Executable Code7 u5 v$ ^( e/ I
        .text:_c_int00: > 0x11810000                                        // Entrypoint4 R1 F- {5 g  W5 u" E
        6 N, r5 X" x9 |. s8 Q( }3 M1 }" \$ G7 V
        .far                >                L2                                // Far Global & Static Variables0 D; K( W7 L0 }1 l! o2 y0 |. ]
        .fardata        >                L2
, X  ?- ^$ f* ]        .stack                >                L2                                // Software System Stack
# X$ ?% p6 x: ]( n" E$ n2 @7 p1 w        .sysmem                >                L2                                // Dynamic Memory Allocation Area1 M4 T4 C: u* N' v8 e
        ( {9 O/ }* G5 @% e4 U
        .cio                >                L2                                // C I/O Buffer7 k  K3 u0 G  \5 s# k$ j
        .vecs                >                L2                                // Interrupt Vectors
9 W$ n/ i; }# Y9 l}/ q3 Q1 F0 h: o/ S. D5 c

作者: human    时间: 2017-2-7 17:22
你添加了SPL引导程序没
作者: lanteng    时间: 2017-2-8 11:20
本帖最后由 lanteng 于 2017-2-8 11:22 编辑 0 P' y' w! F% j$ @! b0 }  K* @" t! m
human 发表于 2017-2-7 17:22' |! H# G& f) P& T$ F* M
你添加了SPL引导程序没
' k" D) e2 y( T* i( _& N- e
你好,没有添加SPL引导程序。请教SPL引导程序需要怎么写,有参考例程或者资料吗?具体要添加到哪里?在视频中没有看到这部分,之前也没有接触过,请指教,谢谢!
作者: human    时间: 2017-2-9 17:31
加我发你  2942385389
作者: lanteng    时间: 2017-2-13 11:32
human 发表于 2017-2-9 17:31
4 r) _9 Y1 ]5 O! [加我发你  2942385389

  K) w5 A2 h$ Q  }* ]5 v9 E你好,用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