嵌入式开发者社区

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

作者: lanteng    时间: 2017-1-13 11:13
标题: 请教:双核裸机程序,修改例程中DSP端的cmd文件,下载后...
OMAPL138基于IPCLite的双核裸机程序,创龙例程中,DSP端的cmd文件中将所有的段都放在DDR2中,我想让程序在L2RAM中运行,所以将所有的段都放在L2 RAM中,编译、烧写之后,上电程序不运行。请教一下是什么原因?
: B6 l8 \4 T' J; p2 i! g" U; ?, 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中,则编译、烧写后,上电程序不运行。* m& V9 x2 j/ @+ H7 h. x. m( s# y4 s
刚开始做双核裸机开发时,用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  ^: n" a" f- N& j4 }# y/ D7 j
需要在cmd文件给L2空间预留一段RBL引导程序的空间

/ Y& f% P( T9 I9 M9 u你好,具体怎么写这段代码?之前的cmd文件,将所有段都放在DDR2中,其中哪一句对应的功能是预留给RBL引导程序的空间?请指导一下,谢谢。, z9 D% }/ e* s: p
SECTIONS
% V4 |0 N7 v5 ?{
- x+ j8 H% M% T        GROUP (NEAR_DP_RELATIVE)
/ h) m' j# L$ g" \7 k" P        {" `9 s- @3 J, g/ ~4 c1 }- q! f
            .neardata
2 t* m) [' E' {) V% U  e- q            .rodata8 {' R. a* K# J8 C! s6 h" o* u5 G
            .bss
& J% k! s4 \7 A- I' C        } > DDR21 p- m$ o) u0 X2 X- H- E- L6 {

/ N$ t0 B- k) u7 n1 x, D        .cinit                >                DDR2                                // Initialization Tables2 z2 o9 M( D8 W
        .pinit                >                DDR2                                // Constructor Tables" C" d# D! {# _; G, I+ Q, S
    .init_array        >                DDR2
" X4 [5 D$ P0 _" T2 I7 }- H        .const                >                DDR2                                // Constant Data  d) Y+ j! W5 @1 S
        .switch                >                DDR2                                // Jump Tables
# X* ^/ o# C+ {7 c* f. e        .text                >                DDR2                                // Executable Code% i. G7 e* J  j  |" m  q" w
        .text:_c_int00: > 0xC3000000                                        // Entrypoint
1 Q) u" E# g: z, v! e; k       
* x) x0 q- D: x6 R2 w- A: E: R  Z        .far                >                DDR2                                // Far Global & Static Variables7 J9 z2 H/ ~7 a/ R5 M
        .fardata        >                DDR21 u) n% a  M- Q2 k4 r( e
        .stack                >                DDR2                                // Software System Stack" Q8 l- J  w$ @. h/ [/ Y) m
        .sysmem                >                DDR2                                // Dynamic Memory Allocation Area$ P. r/ z, ~4 {9 r0 [: v% L; e
       
" S! S8 l6 _( |. H( W        .cio                >                DDR2                                // C I/O Buffer4 `% r0 P3 _9 M/ _. `
        .vecs                >                DDR2                                // Interrupt Vectors
, _) p& J8 U0 w}
作者: lanteng    时间: 2017-1-21 08:35
human 发表于 2017-1-18 14:05
/ X9 u" i/ V# U5 A需要在cmd文件给L2空间预留一段RBL引导程序的空间
0 j& V8 v3 D) t* `8 X
你好,请教具体怎么实现,能给大概说一下,我自己查了几天资料,还没有搞清楚,谢谢!
作者: human    时间: 2017-1-23 09:22
建议看看创龙的教学视频-CMD、启动烧写部分
作者: lanteng    时间: 2017-2-7 15:42
human 发表于 2017-1-23 09:22
. g( b3 s6 R& `2 D0 {; d! h建议看看创龙的教学视频-CMD、启动烧写部分

- H3 n' l$ S* L- h你好,我将cmd文件中的所有段都放在L2 RAM中,然后将程序起始地址改为从0x11800000偏移一定的地址,为RBL预留一定的空间。但是我不论偏移多少地址,编译、烧写后,程序都不能正常运行。麻烦帮我看下是哪里修改的不对吗?谢谢!
5 }# J$ ]* ^/ ?' a, lSECTIONS
/ B/ ^6 g" l' K: L3 C{  v; ~8 Y$ Q4 F3 L9 f4 T) v. u
        GROUP (NEAR_DP_RELATIVE)
+ B- U; ?2 Q2 j% N, ~  |4 w8 {        {4 U- j; I! ?3 C
            .neardata* b: Z7 V7 z/ Y/ x2 D+ ~% }1 }
            .rodata/ Y) `3 L" p- L: ~8 V
            .bss
/ z" s. ^- D- C% H        } > L24 c* |* V6 ^! z
: ^: O6 H% ^# q8 v" `+ Q
        .cinit                >                L2                                // Initialization Tables
. a- Z; N0 ]2 {( w        .pinit                >                L2                                // Constructor Tables
4 |. S* W& O% _8 v! {    .init_array        >                L2- s9 |/ V; l2 L& I' m$ I! Q
        .const                >                L2                                // Constant Data4 l5 ]- b  m" g. e" G/ R
        .switch                >                L2                                // Jump Tables7 ?% }6 p5 M' o
        .text                >                L2                                // Executable Code9 K- a1 }6 A; [3 q
        .text:_c_int00: > 0x11810000                                        // Entrypoint
, }" n3 R3 \0 {6 o" e" x9 K3 D: W8 A        , o3 a4 G: S) F2 P2 r
        .far                >                L2                                // Far Global & Static Variables
1 E& r' p- l8 y4 J5 l, G# x4 A! x        .fardata        >                L2
) @4 b* _2 z# k# m2 B        .stack                >                L2                                // Software System Stack. p  V( q! H: \$ L$ F
        .sysmem                >                L2                                // Dynamic Memory Allocation Area
; ~* J6 f' Z" W9 H& |        
/ z* ]0 c5 j' K7 h        .cio                >                L2                                // C I/O Buffer
* K( i3 V: i* a$ ]! [: ]7 [        .vecs                >                L2                                // Interrupt Vectors
8 E) `5 n! M5 `* g0 B7 ^}
* ?# l0 Q0 Y: R3 l7 v
作者: human    时间: 2017-2-7 17:22
你添加了SPL引导程序没
作者: lanteng    时间: 2017-2-8 11:20
本帖最后由 lanteng 于 2017-2-8 11:22 编辑 . k; R2 p$ S. h+ o
human 发表于 2017-2-7 17:22
2 E) ~3 ?  A3 `/ X4 \你添加了SPL引导程序没
4 Y; b8 L/ v; L: F. j$ T$ F
你好,没有添加SPL引导程序。请教SPL引导程序需要怎么写,有参考例程或者资料吗?具体要添加到哪里?在视频中没有看到这部分,之前也没有接触过,请指教,谢谢!
作者: human    时间: 2017-2-9 17:31
加我发你  2942385389
作者: lanteng    时间: 2017-2-13 11:32
human 发表于 2017-2-9 17:31! D! _/ g. z9 d9 e; K7 k4 X
加我发你  2942385389

& I9 d( A: ]$ Q5 |1 N6 B$ 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