嵌入式开发者社区

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

作者: lanteng    时间: 2017-1-13 11:13
标题: 请教:双核裸机程序,修改例程中DSP端的cmd文件,下载后...
OMAPL138基于IPCLite的双核裸机程序,创龙例程中,DSP端的cmd文件中将所有的段都放在DDR2中,我想让程序在L2RAM中运行,所以将所有的段都放在L2 RAM中,编译、烧写之后,上电程序不运行。请教一下是什么原因?
- U$ W9 H' g2 f$ 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中,则编译、烧写后,上电程序不运行。8 x$ v, t, \9 L
刚开始做双核裸机开发时,用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:056 u* A+ @1 \" \0 ?9 A9 g- V: d) g/ D
需要在cmd文件给L2空间预留一段RBL引导程序的空间
& @- h) ~+ y9 N+ x; o: c0 ~  ?( u
你好,具体怎么写这段代码?之前的cmd文件,将所有段都放在DDR2中,其中哪一句对应的功能是预留给RBL引导程序的空间?请指导一下,谢谢。4 q5 Z1 Y+ R8 Z7 X: {0 t/ f
SECTIONS1 s5 d$ Q! R% `7 `2 `% p- k
{# p* v: |( h8 X; O8 {/ S- C
        GROUP (NEAR_DP_RELATIVE)8 {/ H) X# l, F
        {
4 X7 P, f4 c: ^; v. H/ f) U6 j            .neardata
' O4 h2 O: J, a            .rodata
8 W& ?  W! R# x7 J- G# D            .bss# I) o. j8 a# v
        } > DDR2
, S* j( z+ @% o  A! A  g" h6 v4 D( f/ `2 V$ X& m
        .cinit                >                DDR2                                // Initialization Tables  s+ X/ u  q, V! Q/ D# |
        .pinit                >                DDR2                                // Constructor Tables* }  \$ B. I' B. b5 R! z
    .init_array        >                DDR2
: f0 ?7 e& O& }8 N% \        .const                >                DDR2                                // Constant Data1 }1 r* i% H# p5 b: x6 S
        .switch                >                DDR2                                // Jump Tables2 S$ }- G) J8 `0 p+ k
        .text                >                DDR2                                // Executable Code  w0 @! l2 {2 e! g4 j# H% `
        .text:_c_int00: > 0xC3000000                                        // Entrypoint
/ g! d  w1 w, e       
- u. m5 P9 \& g) Y2 n6 J        .far                >                DDR2                                // Far Global & Static Variables5 H& S& L7 ~/ k, i3 a" F6 P/ Z
        .fardata        >                DDR2
( c8 G1 N/ k5 q* C9 p9 |        .stack                >                DDR2                                // Software System Stack5 C* e' N+ v6 e# d
        .sysmem                >                DDR2                                // Dynamic Memory Allocation Area7 E3 p* X% R+ C/ }1 _( c
       
: y! [! Y/ Y3 ~; |. J  B0 _        .cio                >                DDR2                                // C I/O Buffer
; ^2 b& ~) ]$ X' s        .vecs                >                DDR2                                // Interrupt Vectors0 R7 P" X# `$ i+ R" x& N. a/ w( \
}
作者: lanteng    时间: 2017-1-21 08:35
human 发表于 2017-1-18 14:05
1 @  Z7 n+ r- @4 r! ]8 h需要在cmd文件给L2空间预留一段RBL引导程序的空间

+ K* |6 u! ~/ I' f你好,请教具体怎么实现,能给大概说一下,我自己查了几天资料,还没有搞清楚,谢谢!
作者: human    时间: 2017-1-23 09:22
建议看看创龙的教学视频-CMD、启动烧写部分
作者: lanteng    时间: 2017-2-7 15:42
human 发表于 2017-1-23 09:22
! o7 @# x' B* v) {- t0 s建议看看创龙的教学视频-CMD、启动烧写部分

2 e3 ]" h2 ?9 v# I你好,我将cmd文件中的所有段都放在L2 RAM中,然后将程序起始地址改为从0x11800000偏移一定的地址,为RBL预留一定的空间。但是我不论偏移多少地址,编译、烧写后,程序都不能正常运行。麻烦帮我看下是哪里修改的不对吗?谢谢!& p# n3 E# d% ]' n
SECTIONS1 U! X: q# V" W5 p* @1 j; k
{
/ n# o0 a% V$ V/ o        GROUP (NEAR_DP_RELATIVE)
) n& \% f5 G, w7 F; K1 S$ O9 P        {
3 Y7 t' W2 p. u9 g( O5 m! Q            .neardata
6 R$ Y' n/ w3 y1 y, _            .rodata( G5 x% I# ~3 l" O# G$ ~3 J& {6 h+ N8 O
            .bss
8 Y/ X4 T; {8 P* g$ W        } > L2
: u" k! j+ A' r. E5 `* Z2 M
. H5 J/ N7 M& L: x, l7 m9 X0 H        .cinit                >                L2                                // Initialization Tables
, M) E8 X  y8 a! |0 n        .pinit                >                L2                                // Constructor Tables
( {; ^8 O/ G" W( C3 T    .init_array        >                L29 |/ \1 p: a4 |) Y& X
        .const                >                L2                                // Constant Data
" P- I: X, a) O% ~# ]        .switch                >                L2                                // Jump Tables! Z% M' r8 Z; K/ |0 m
        .text                >                L2                                // Executable Code8 x4 n6 D6 M' F/ B* q
        .text:_c_int00: > 0x11810000                                        // Entrypoint& h1 [% p3 v3 C6 L% Q1 g% ?
        
+ V8 x% d! Y) m1 Z+ @& D2 G        .far                >                L2                                // Far Global & Static Variables
+ f7 n1 R5 _0 g; \        .fardata        >                L26 |3 l; R% E9 X9 x" x, O
        .stack                >                L2                                // Software System Stack* i. ~: K6 U2 t2 S; U8 v! s8 n% }
        .sysmem                >                L2                                // Dynamic Memory Allocation Area0 |2 N4 ~6 U( ?
        
, }. t' q- b9 w  b        .cio                >                L2                                // C I/O Buffer
9 O# K) H( }9 F, H        .vecs                >                L2                                // Interrupt Vectors
9 }) n5 k/ k7 V$ p+ `}8 J9 y, J$ s" M4 L& v6 o( x2 @/ c4 X$ P

作者: human    时间: 2017-2-7 17:22
你添加了SPL引导程序没
作者: lanteng    时间: 2017-2-8 11:20
本帖最后由 lanteng 于 2017-2-8 11:22 编辑 ) t+ k' ]& ~6 w% T- {
human 发表于 2017-2-7 17:22
& F/ ^3 T" Z! T9 O, s; v你添加了SPL引导程序没

$ |. ?& k$ A: F$ {1 R- N你好,没有添加SPL引导程序。请教SPL引导程序需要怎么写,有参考例程或者资料吗?具体要添加到哪里?在视频中没有看到这部分,之前也没有接触过,请指教,谢谢!
作者: human    时间: 2017-2-9 17:31
加我发你  2942385389
作者: lanteng    时间: 2017-2-13 11:32
human 发表于 2017-2-9 17:31
! t2 P: E) D1 H加我发你  2942385389

3 f# |: B4 n/ m& w8 i# t$ G你好,用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