嵌入式开发者社区

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

作者: lanteng    时间: 2017-1-13 11:13
标题: 请教:双核裸机程序,修改例程中DSP端的cmd文件,下载后...
OMAPL138基于IPCLite的双核裸机程序,创龙例程中,DSP端的cmd文件中将所有的段都放在DDR2中,我想让程序在L2RAM中运行,所以将所有的段都放在L2 RAM中,编译、烧写之后,上电程序不运行。请教一下是什么原因?
7 u' ?( B/ j' S
作者: 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中,则编译、烧写后,上电程序不运行。
% v3 G3 Q0 `# ]刚开始做双核裸机开发时,用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
6 I& b# Q; _# B% ~需要在cmd文件给L2空间预留一段RBL引导程序的空间

8 h9 T! p3 N2 u: Q5 c* k你好,具体怎么写这段代码?之前的cmd文件,将所有段都放在DDR2中,其中哪一句对应的功能是预留给RBL引导程序的空间?请指导一下,谢谢。: p- c+ P. G0 X1 w$ E$ K2 ^
SECTIONS4 K) G* f( d# g0 l4 M' B1 e
{4 ]- I  n/ j7 A) |% t
        GROUP (NEAR_DP_RELATIVE)
+ p- @- I1 g( ^  I  T5 c        {
7 t+ S* B# X$ k9 J/ x0 L; W  ?5 r            .neardata% ^2 |9 F, r; A- C" q# r) t1 }
            .rodata- V: p! w8 i7 w; U1 t! n# a9 R
            .bss1 L. S! q+ x# O! i( V8 f
        } > DDR2/ Z, Q  }5 v1 P$ E# C+ V% q& i2 F0 y% Z

1 f1 V! j' v5 `        .cinit                >                DDR2                                // Initialization Tables
: N* x2 r: x% f* ?- `! N        .pinit                >                DDR2                                // Constructor Tables: q+ Q7 P' F8 A( j# k8 w7 V
    .init_array        >                DDR2
' |6 G( _- ^) M0 U: J        .const                >                DDR2                                // Constant Data
) I# z! Y! o2 H5 f: \        .switch                >                DDR2                                // Jump Tables/ F- M- h( A+ V+ J$ ?( a
        .text                >                DDR2                                // Executable Code
1 e+ g! I4 l. B        .text:_c_int00: > 0xC3000000                                        // Entrypoint; }4 J5 E6 Y+ b% N3 o* ]+ P9 L* m0 }
        " D7 D: k& n0 Z% d) t0 ]  z
        .far                >                DDR2                                // Far Global & Static Variables
. ]  z: ~% ?# \4 ~        .fardata        >                DDR2. o6 H, V! c9 ?; r5 k1 u
        .stack                >                DDR2                                // Software System Stack- M4 Q1 c+ X8 {) o$ ~7 W
        .sysmem                >                DDR2                                // Dynamic Memory Allocation Area
5 H4 X, U& z2 s- A0 K# L/ \       
5 e4 g% Y2 ?4 W- K; ?        .cio                >                DDR2                                // C I/O Buffer
2 m5 B* e6 U9 f0 `        .vecs                >                DDR2                                // Interrupt Vectors9 c  S) M/ K' a5 q; c, j
}
作者: lanteng    时间: 2017-1-21 08:35
human 发表于 2017-1-18 14:05
: Z! l( }9 i( g. ]0 P6 b' \需要在cmd文件给L2空间预留一段RBL引导程序的空间
% J7 m3 ^$ U! n( \7 E
你好,请教具体怎么实现,能给大概说一下,我自己查了几天资料,还没有搞清楚,谢谢!
作者: human    时间: 2017-1-23 09:22
建议看看创龙的教学视频-CMD、启动烧写部分
作者: lanteng    时间: 2017-2-7 15:42
human 发表于 2017-1-23 09:22
' ~" ]) E% o7 Q9 r; T8 Q建议看看创龙的教学视频-CMD、启动烧写部分
% T* S! U1 y1 `/ C
你好,我将cmd文件中的所有段都放在L2 RAM中,然后将程序起始地址改为从0x11800000偏移一定的地址,为RBL预留一定的空间。但是我不论偏移多少地址,编译、烧写后,程序都不能正常运行。麻烦帮我看下是哪里修改的不对吗?谢谢!& ^" }; K0 w' {9 \+ O% \/ f7 S
SECTIONS, r* q* j/ T* x3 ~# `6 L% i
{
2 o5 x! o0 j9 _5 ^9 j  Z        GROUP (NEAR_DP_RELATIVE)+ F" S) o1 P3 p- [& U3 ^8 z
        {% u& G2 o7 P: m$ e: [
            .neardata
9 P5 g0 ~$ G% o$ z# u            .rodata
2 P/ E% ~- _- ^& c9 Q' e; {  ]            .bss, t! o, ]% }& p
        } > L2
; @1 ]& g8 X& X) S. C$ a+ U+ k4 c# E, w! s0 J
        .cinit                >                L2                                // Initialization Tables
, E' k) Y/ a$ ]* e        .pinit                >                L2                                // Constructor Tables) B$ _& W# o. w3 L3 `$ Z7 z
    .init_array        >                L2
6 Y# [8 ^' W& y        .const                >                L2                                // Constant Data( M. m. g% z: u$ f$ K  s9 O
        .switch                >                L2                                // Jump Tables3 M3 i# F9 {& `4 m  V; ?7 o
        .text                >                L2                                // Executable Code/ a( ~. |4 W* {, W
        .text:_c_int00: > 0x11810000                                        // Entrypoint! r! Z( @: f5 C& }
        
8 B5 y+ d' `' `        .far                >                L2                                // Far Global & Static Variables
$ N: Z4 ?7 q! K$ Y: l1 t! H2 A        .fardata        >                L2
& m. P5 I+ r( X5 I% v        .stack                >                L2                                // Software System Stack
, ]8 p0 \2 a6 T9 N        .sysmem                >                L2                                // Dynamic Memory Allocation Area8 t1 }- n+ T. ~) p- I8 |# M2 l
        9 L& Q# d# X) l5 b) l* t( _
        .cio                >                L2                                // C I/O Buffer/ e/ X  s" o1 b4 [9 n" p
        .vecs                >                L2                                // Interrupt Vectors+ A1 M- ]2 d3 l, p% I; t; c
}
2 l# e4 d, k- }: d' a
作者: human    时间: 2017-2-7 17:22
你添加了SPL引导程序没
作者: lanteng    时间: 2017-2-8 11:20
本帖最后由 lanteng 于 2017-2-8 11:22 编辑
$ b- _- A6 l: l+ p( f5 \
human 发表于 2017-2-7 17:22  V+ |# e; p7 w6 o2 j
你添加了SPL引导程序没
3 i" E7 ~, J7 H2 o1 b8 l0 z
你好,没有添加SPL引导程序。请教SPL引导程序需要怎么写,有参考例程或者资料吗?具体要添加到哪里?在视频中没有看到这部分,之前也没有接触过,请指教,谢谢!
作者: human    时间: 2017-2-9 17:31
加我发你  2942385389
作者: lanteng    时间: 2017-2-13 11:32
human 发表于 2017-2-9 17:313 g4 z! S5 o) i+ f" |+ `
加我发你  2942385389
2 d, A! W( f8 b4 O7 x0 |
你好,用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