嵌入式开发者社区

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

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

作者: 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中,则编译、烧写后,上电程序不运行。, v! C2 H% ?2 k8 W: d5 h6 f
刚开始做双核裸机开发时,用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:055 R0 ]! A8 z" v+ b& U
需要在cmd文件给L2空间预留一段RBL引导程序的空间

3 ~! M2 s& m; z2 h# o你好,具体怎么写这段代码?之前的cmd文件,将所有段都放在DDR2中,其中哪一句对应的功能是预留给RBL引导程序的空间?请指导一下,谢谢。
. r3 K3 }6 T3 c2 PSECTIONS
* t8 n2 ]/ M, Q& H# `/ v- g{
9 Z7 p4 T3 \+ j$ P        GROUP (NEAR_DP_RELATIVE)* I: v, B+ o, f  H  u/ X
        {
+ ~+ O/ \: J) V) O& w8 [1 d            .neardata% T: A* E: b3 }" H3 r- c; E
            .rodata: D  ~) t* w# U7 o4 d# M
            .bss. S& p$ \& d( K, D$ t9 @
        } > DDR2
% _$ T6 {& F5 `7 P) I8 t' `! p( L" ?4 h) Q# U
        .cinit                >                DDR2                                // Initialization Tables2 `5 G& S$ l+ r# {( e  v
        .pinit                >                DDR2                                // Constructor Tables
4 c, d5 d$ ?/ u' S! S9 @8 Y1 `    .init_array        >                DDR2
  D+ G8 Q: K3 C4 s- ~# r$ p        .const                >                DDR2                                // Constant Data
  d1 Q8 ?4 U* a7 @+ R: l        .switch                >                DDR2                                // Jump Tables  g. j1 Q9 a4 f
        .text                >                DDR2                                // Executable Code
4 B% ]* J& @2 F        .text:_c_int00: > 0xC3000000                                        // Entrypoint# w3 U' N+ l/ ?9 J  d( O* Z
        ' v* w. H  b1 S5 i
        .far                >                DDR2                                // Far Global & Static Variables
* c- i3 L& e% Z8 j; {' A* ?9 ~        .fardata        >                DDR2
1 h- h) p7 Q7 D        .stack                >                DDR2                                // Software System Stack
+ Z$ W2 g1 N& V. m+ b4 I# ?        .sysmem                >                DDR2                                // Dynamic Memory Allocation Area
% {1 ^, A0 s4 k) \$ V8 F3 b) y       
0 |- H6 O8 u7 B; A0 K! R& _        .cio                >                DDR2                                // C I/O Buffer8 r8 n; a8 ^, }. T
        .vecs                >                DDR2                                // Interrupt Vectors* b: R( S1 p7 d+ h+ k4 `/ h3 x. D  C. w
}
作者: lanteng    时间: 2017-1-21 08:35
human 发表于 2017-1-18 14:05  F6 R- j+ w* [2 \+ @2 \) ]) A
需要在cmd文件给L2空间预留一段RBL引导程序的空间

: d( x- M: m" D$ P. W; h: W你好,请教具体怎么实现,能给大概说一下,我自己查了几天资料,还没有搞清楚,谢谢!
作者: human    时间: 2017-1-23 09:22
建议看看创龙的教学视频-CMD、启动烧写部分
作者: lanteng    时间: 2017-2-7 15:42
human 发表于 2017-1-23 09:227 U6 C- `; m. a( a: X
建议看看创龙的教学视频-CMD、启动烧写部分

* q. i6 S: Q* O" j- c2 u5 T你好,我将cmd文件中的所有段都放在L2 RAM中,然后将程序起始地址改为从0x11800000偏移一定的地址,为RBL预留一定的空间。但是我不论偏移多少地址,编译、烧写后,程序都不能正常运行。麻烦帮我看下是哪里修改的不对吗?谢谢!
8 G4 c& m+ I/ P- U- ?SECTIONS6 l& p' o) {9 Q( [2 V; }0 T8 e
{
& u6 K% f. @2 b% u        GROUP (NEAR_DP_RELATIVE)7 c1 Q# ^/ L8 W5 N, @# V: v
        {) T6 p8 P3 I2 H7 n% u" d
            .neardata
: p9 l8 C/ L) H; t: c9 o9 V            .rodata
  `2 d  p* T- N  p- i4 Q7 l            .bss
5 q& a9 E  A# `5 A3 ~  U        } > L2
: p8 Y; c$ j) y1 H6 m, G( L2 x( a2 R! ~& E+ ?1 ^
        .cinit                >                L2                                // Initialization Tables. q$ z  k8 M/ F. y- k- K" f7 H
        .pinit                >                L2                                // Constructor Tables
1 T; j. d1 l3 f* f, O6 L0 x4 n    .init_array        >                L2
- A  H1 r7 T8 @, N3 o3 t        .const                >                L2                                // Constant Data
" q" `" v( A* b        .switch                >                L2                                // Jump Tables
2 w# X7 ?; m* I: Z0 X# X: b$ y( }        .text                >                L2                                // Executable Code* ?" {6 f9 \& e7 h. c; R5 V6 W
        .text:_c_int00: > 0x11810000                                        // Entrypoint' ~! q$ Z4 m$ w
        
- U; m! ^9 _- [4 Y' w        .far                >                L2                                // Far Global & Static Variables& n/ y) j% d3 \$ K% h6 F: E/ k3 Y" l
        .fardata        >                L2! p- p+ n7 g) _/ R! d
        .stack                >                L2                                // Software System Stack
& B3 |4 N5 [- n* S: b' f& g( I! V        .sysmem                >                L2                                // Dynamic Memory Allocation Area$ M) d% D% _) {+ U* E7 u
        
  c: f3 ~* i8 P6 e2 @        .cio                >                L2                                // C I/O Buffer- O2 _% P' I4 R+ {) `. Y0 \
        .vecs                >                L2                                // Interrupt Vectors* C( Z; Q) A, r  W- m! V: O
}
3 g/ {: m5 ~- \0 v: r4 E) I- W3 v
作者: human    时间: 2017-2-7 17:22
你添加了SPL引导程序没
作者: lanteng    时间: 2017-2-8 11:20
本帖最后由 lanteng 于 2017-2-8 11:22 编辑 * R6 v& T6 c  L
human 发表于 2017-2-7 17:22
8 y/ U5 @2 D: H; h" \你添加了SPL引导程序没

0 ~* z4 S' Z* c- I8 {你好,没有添加SPL引导程序。请教SPL引导程序需要怎么写,有参考例程或者资料吗?具体要添加到哪里?在视频中没有看到这部分,之前也没有接触过,请指教,谢谢!
作者: human    时间: 2017-2-9 17:31
加我发你  2942385389
作者: lanteng    时间: 2017-2-13 11:32
human 发表于 2017-2-9 17:31' I: N/ _/ l  I9 K1 e) e/ s9 D
加我发你  2942385389

1 n* R/ h! a* u: ]5 @. ]' w- d+ 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