嵌入式开发者社区

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

作者: lanteng    时间: 2017-1-13 11:13
标题: 请教:双核裸机程序,修改例程中DSP端的cmd文件,下载后...
OMAPL138基于IPCLite的双核裸机程序,创龙例程中,DSP端的cmd文件中将所有的段都放在DDR2中,我想让程序在L2RAM中运行,所以将所有的段都放在L2 RAM中,编译、烧写之后,上电程序不运行。请教一下是什么原因?
; V8 N: @/ U. t. A' E- \( T
作者: 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中,则编译、烧写后,上电程序不运行。8 J, }$ r7 L: i5 V. e$ l* Q: s8 {
刚开始做双核裸机开发时,用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 f  u: Y. Z' a( d7 E7 A
需要在cmd文件给L2空间预留一段RBL引导程序的空间

) s- r* `7 ?0 @+ Z# h; y3 _; ~- M6 q" Q你好,具体怎么写这段代码?之前的cmd文件,将所有段都放在DDR2中,其中哪一句对应的功能是预留给RBL引导程序的空间?请指导一下,谢谢。
, w. {% k+ M7 ?- p( ZSECTIONS
$ ?) S2 S* }  z. R{% @: [" X9 k: @  u- d: G7 ?+ Q' I
        GROUP (NEAR_DP_RELATIVE)
' ]9 K0 }6 Q4 N7 W- g        {
4 s5 p. t/ @* O  [5 Q            .neardata
# y7 m+ b* a! B& w* o6 ^            .rodata
7 }$ D" @! ^4 D) K2 G# `            .bss
; \3 m  ]9 d) }/ Z        } > DDR2! }9 K) r8 q8 M* s8 i$ I8 Y

: t  z  }- L+ D( P( X        .cinit                >                DDR2                                // Initialization Tables3 h, ]2 Q% V$ N& r
        .pinit                >                DDR2                                // Constructor Tables
: ~7 S! ]& c: n$ _' s- H/ J: v9 t: B7 p4 x    .init_array        >                DDR2
5 G9 M* ~% V( ~5 y1 v        .const                >                DDR2                                // Constant Data
3 p+ g9 H6 I; C+ I( ^) ~        .switch                >                DDR2                                // Jump Tables! P/ ]& l+ w. [5 d0 t  I
        .text                >                DDR2                                // Executable Code
3 T; _: ^/ P1 f4 i4 ~% [1 P        .text:_c_int00: > 0xC3000000                                        // Entrypoint% q% o' m5 {8 y) f5 f% ~$ r: j
        ! T5 f9 k' l. R3 {  Y  _
        .far                >                DDR2                                // Far Global & Static Variables
; E( P/ z8 f# K) z2 e# c! Z- |# r        .fardata        >                DDR2  D" l# I6 [* I. K4 ~5 O( ^+ ~3 o- v
        .stack                >                DDR2                                // Software System Stack# w$ |! J0 h7 P
        .sysmem                >                DDR2                                // Dynamic Memory Allocation Area: e8 [1 O& C6 n" l& b5 W
       
. Y* m. q5 B6 G# G+ {1 |        .cio                >                DDR2                                // C I/O Buffer2 N9 i. P& d1 U0 ?  s' ^8 p
        .vecs                >                DDR2                                // Interrupt Vectors
3 G  s* j4 P4 N/ q+ c" M- H}
作者: lanteng    时间: 2017-1-21 08:35
human 发表于 2017-1-18 14:05! {: M* A. R: o. |! m
需要在cmd文件给L2空间预留一段RBL引导程序的空间
% k0 Z# L- P# b' O  B. R* A
你好,请教具体怎么实现,能给大概说一下,我自己查了几天资料,还没有搞清楚,谢谢!
作者: human    时间: 2017-1-23 09:22
建议看看创龙的教学视频-CMD、启动烧写部分
作者: lanteng    时间: 2017-2-7 15:42
human 发表于 2017-1-23 09:22: X  I- K+ m( _2 O. b
建议看看创龙的教学视频-CMD、启动烧写部分
7 d7 R( r% g: I0 m# d
你好,我将cmd文件中的所有段都放在L2 RAM中,然后将程序起始地址改为从0x11800000偏移一定的地址,为RBL预留一定的空间。但是我不论偏移多少地址,编译、烧写后,程序都不能正常运行。麻烦帮我看下是哪里修改的不对吗?谢谢!3 l! c7 |  B% G$ \
SECTIONS: \1 k7 J# n! s
{
# t2 R9 O9 U, z1 `) u0 p: Z        GROUP (NEAR_DP_RELATIVE)
( H& c" v, W7 D8 E% U        {
9 t" a$ N' d4 p0 h' K3 e            .neardata+ w% f9 k/ z5 c) ^" j# ?- c4 i
            .rodata: Z+ v1 h0 H: o+ p2 ~% Q
            .bss1 D0 c, N& x: z3 ^+ ]
        } > L2/ r0 v7 X+ e* i- c$ s' ]

6 T8 n# A/ A" ]* k, Z        .cinit                >                L2                                // Initialization Tables
$ I# l& ?6 E5 O) f        .pinit                >                L2                                // Constructor Tables
8 d& R! \' Z4 Z2 M% k+ S! b    .init_array        >                L2
* g" Y- M: X' B  c5 A$ P        .const                >                L2                                // Constant Data
3 G' n& C$ t+ B% u6 E$ `9 U        .switch                >                L2                                // Jump Tables7 U: [$ [$ r/ E
        .text                >                L2                                // Executable Code
0 h3 m5 H& `& H* B( L        .text:_c_int00: > 0x11810000                                        // Entrypoint
0 I# O7 w4 ~; H# N: T/ L" I0 y        
6 j3 u) U; ]$ S% X9 C        .far                >                L2                                // Far Global & Static Variables1 g1 M- j/ X% N, S
        .fardata        >                L2
2 E6 _4 h- ~. o+ X0 m; x        .stack                >                L2                                // Software System Stack5 o- F! F3 H, v( F
        .sysmem                >                L2                                // Dynamic Memory Allocation Area
1 R( Q  S6 H* R5 N! E) u        
& x2 W: h6 E. U& }( p. d        .cio                >                L2                                // C I/O Buffer
: ~3 Y* ^. B# M! E        .vecs                >                L2                                // Interrupt Vectors
- `3 e6 b" K9 U  S, m}  P6 g5 Q  S: a: g% S9 Z- l) k  E

作者: human    时间: 2017-2-7 17:22
你添加了SPL引导程序没
作者: lanteng    时间: 2017-2-8 11:20
本帖最后由 lanteng 于 2017-2-8 11:22 编辑 ' x" i( h9 c' u& i2 q& R% {
human 发表于 2017-2-7 17:225 P9 L! v# U9 U1 c
你添加了SPL引导程序没

  a& ~4 w$ f1 r0 Q# ^你好,没有添加SPL引导程序。请教SPL引导程序需要怎么写,有参考例程或者资料吗?具体要添加到哪里?在视频中没有看到这部分,之前也没有接触过,请指教,谢谢!
作者: human    时间: 2017-2-9 17:31
加我发你  2942385389
作者: lanteng    时间: 2017-2-13 11:32
human 发表于 2017-2-9 17:31
# s# M: q4 ^) C% s# j$ I: A. i5 r6 A6 U加我发你  2942385389
+ s7 ]! ?' F0 s( _/ 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