嵌入式开发者社区

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

作者: lanteng    时间: 2017-1-13 11:13
标题: 请教:双核裸机程序,修改例程中DSP端的cmd文件,下载后...
OMAPL138基于IPCLite的双核裸机程序,创龙例程中,DSP端的cmd文件中将所有的段都放在DDR2中,我想让程序在L2RAM中运行,所以将所有的段都放在L2 RAM中,编译、烧写之后,上电程序不运行。请教一下是什么原因?/ p$ ]) Z/ e3 C# ^; D

作者: 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中,则编译、烧写后,上电程序不运行。5 S6 Y( k4 G0 P/ \
刚开始做双核裸机开发时,用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:058 `; k: n& I/ N. x8 o9 x
需要在cmd文件给L2空间预留一段RBL引导程序的空间
5 Z8 q" {6 G5 n. v. c) R
你好,具体怎么写这段代码?之前的cmd文件,将所有段都放在DDR2中,其中哪一句对应的功能是预留给RBL引导程序的空间?请指导一下,谢谢。% X0 A% L7 C9 |( l
SECTIONS! R8 \! ~2 N( c0 Q$ Z+ ?+ w1 B
{
1 o4 _+ C8 E9 M5 o- |" T/ E        GROUP (NEAR_DP_RELATIVE)
* D, Z# v/ Y3 |& F        {
: f% X; x2 x0 S/ e            .neardata( l* y7 n( _* z# O) g& n2 [
            .rodata
* u) \( h6 L1 a  ?3 a            .bss& Z" I: Y1 v8 L/ |' O, \2 _$ u$ \7 e
        } > DDR2
6 e3 z3 k" Y; Y  i1 {' S' s7 ~! [) Z: r
        .cinit                >                DDR2                                // Initialization Tables
' D5 ^  j2 i1 L1 A        .pinit                >                DDR2                                // Constructor Tables
2 Y4 g% x5 ?6 w    .init_array        >                DDR20 @) p: a8 e: n" B1 S/ l
        .const                >                DDR2                                // Constant Data8 l. N4 k# x: `$ Z, Y
        .switch                >                DDR2                                // Jump Tables
* G# `$ u( E, R/ h; D        .text                >                DDR2                                // Executable Code
+ J, n5 }! ^) c9 A5 C- h( f        .text:_c_int00: > 0xC3000000                                        // Entrypoint) o# @1 d4 a9 W0 z
        ( u$ D2 v. q* o* C; x* o
        .far                >                DDR2                                // Far Global & Static Variables% e8 u& U4 _3 Z* _0 h( A
        .fardata        >                DDR2
2 U6 s. }9 m) F1 b0 w" ?: A& r0 l        .stack                >                DDR2                                // Software System Stack
2 w1 v& f) o0 m6 [        .sysmem                >                DDR2                                // Dynamic Memory Allocation Area% J: R( o/ ?! b
        " \: O: j3 J' r5 h2 \: U! L
        .cio                >                DDR2                                // C I/O Buffer6 r3 m8 n) X1 k7 a
        .vecs                >                DDR2                                // Interrupt Vectors
: y" V! A" b/ B. g& }: O}
作者: lanteng    时间: 2017-1-21 08:35
human 发表于 2017-1-18 14:05" j  R8 O0 d# E0 s5 G7 D3 l
需要在cmd文件给L2空间预留一段RBL引导程序的空间
6 o- k8 c* z- }& K  }- M
你好,请教具体怎么实现,能给大概说一下,我自己查了几天资料,还没有搞清楚,谢谢!
作者: human    时间: 2017-1-23 09:22
建议看看创龙的教学视频-CMD、启动烧写部分
作者: lanteng    时间: 2017-2-7 15:42
human 发表于 2017-1-23 09:22
/ F, w( @9 J5 b8 J5 ]3 z3 \* ^4 s建议看看创龙的教学视频-CMD、启动烧写部分
# d2 m% \2 F8 [. V9 ]
你好,我将cmd文件中的所有段都放在L2 RAM中,然后将程序起始地址改为从0x11800000偏移一定的地址,为RBL预留一定的空间。但是我不论偏移多少地址,编译、烧写后,程序都不能正常运行。麻烦帮我看下是哪里修改的不对吗?谢谢!, u4 Y" A  @6 T' [: r; L
SECTIONS
  d/ K" E1 h# g{7 X' T/ k! z- G, H. t7 U
        GROUP (NEAR_DP_RELATIVE)
8 [4 \2 v* y! J4 [: n8 K        {
: a) ~' z9 {8 M8 B/ d" |            .neardata; t9 y1 c) X  O* W. u
            .rodata
2 n! g8 M+ v* \2 ~) ?9 v8 ]            .bss
2 G/ l. S3 f. a        } > L22 T8 Y; I: X! I/ p  b" A" C
. A0 S2 f+ \6 ~5 ]/ X
        .cinit                >                L2                                // Initialization Tables$ f9 M' }7 |0 `, i# S' X, [
        .pinit                >                L2                                // Constructor Tables+ J- x8 D1 N) A  B9 e6 d% U1 _* a
    .init_array        >                L27 D* L% ^. t& Q
        .const                >                L2                                // Constant Data
; G2 I/ V5 X, r7 Y: w' t0 w2 C        .switch                >                L2                                // Jump Tables
& L6 L; A: X1 ?- X+ p9 [/ C        .text                >                L2                                // Executable Code) M8 \; @7 G6 K3 I& q6 i" M6 o* @
        .text:_c_int00: > 0x11810000                                        // Entrypoint
8 P0 s  P5 F3 P5 \5 _* k        
" u, q6 n# T4 t4 H+ [        .far                >                L2                                // Far Global & Static Variables
% V! U' I1 L! h* ~* O4 Y/ B        .fardata        >                L22 K; L; o7 ~+ v& @
        .stack                >                L2                                // Software System Stack
+ |: P1 Z. [2 X, g        .sysmem                >                L2                                // Dynamic Memory Allocation Area
& ]$ E3 d& X9 \% X1 o, Q& p        # e% d. D. v) S  v+ j3 {
        .cio                >                L2                                // C I/O Buffer" X1 r; f- n: y) h7 O% |" ~$ I% E$ A& l% b* e
        .vecs                >                L2                                // Interrupt Vectors
- G$ L" B/ |1 ]; j: b}1 W& m3 y: e9 U6 `0 N$ J  D7 }6 z; o

作者: human    时间: 2017-2-7 17:22
你添加了SPL引导程序没
作者: lanteng    时间: 2017-2-8 11:20
本帖最后由 lanteng 于 2017-2-8 11:22 编辑
1 p' T4 {7 B3 y6 f5 {9 n0 R
human 发表于 2017-2-7 17:22
! H9 z3 `* V. S4 P6 q你添加了SPL引导程序没

( o4 k  Y  h7 }; ]( e% H+ E) b你好,没有添加SPL引导程序。请教SPL引导程序需要怎么写,有参考例程或者资料吗?具体要添加到哪里?在视频中没有看到这部分,之前也没有接触过,请指教,谢谢!
作者: human    时间: 2017-2-9 17:31
加我发你  2942385389
作者: lanteng    时间: 2017-2-13 11:32
human 发表于 2017-2-9 17:31
% ~  v5 A+ ^- P/ {. J, W加我发你  2942385389

6 N6 U0 B9 d9 G  C) c- b, [( B你好,用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