请教:双核裸机程序,修改例程中DSP端的cmd文件,下载后... - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8793|回复: 12
打印 上一主题 下一主题

请教:双核裸机程序,修改例程中DSP端的cmd文件,下载后...

[复制链接]

12

主题

43

帖子

199

积分

注册会员

Rank: 2

积分
199
跳转到指定楼层
楼主
发表于 2017-1-13 11:13:16 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
OMAPL138基于IPCLite的双核裸机程序,创龙例程中,DSP端的cmd文件中将所有的段都放在DDR2中,我想让程序在L2RAM中运行,所以将所有的段都放在L2 RAM中,编译、烧写之后,上电程序不运行。请教一下是什么原因?: I% G) a$ s% o. {5 u
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

12

主题

43

帖子

199

积分

注册会员

Rank: 2

积分
199
沙发
 楼主| 发表于 2017-1-16 09:14:20 | 显示全部楼层
我在CCS5中仿真,不管是在DDR2还是在L2中都可以正常运行。但是,按照15-3手册中的方法在虚拟机中烧写程序后,如果在L2,上电程序不运行,在DDR2,上电就可以运行。
回复 支持 反对

使用道具 举报

12

主题

43

帖子

199

积分

注册会员

Rank: 2

积分
199
板凳
 楼主| 发表于 2017-1-18 09:33:46 | 显示全部楼层
程序仿真是在windows环境CCS5中进行得,DSP端cmd文件中的所有段不管是在DDR2还是在L2 RAM中都可以运行。程序编译是按照15-3手册,在Ubuntu中进行源码编译,生成.ais和.bin文件,再烧写进NAND FLASH,在Ubuntu中的源码,如果DSP端的cmd文件的所有段放在DDR2中,则编译、烧写后,上电程序运行。如果放在L2 RAM中,则编译、烧写后,上电程序不运行。- I, Q" j. [4 @- I# _4 F" T
刚开始做双核裸机开发时,用TI的源代码则编译、烧写后,上电程序不运行。需要用创龙修改过的IPCLite中的源码进行编译、烧写后,上电程序才允许。对比过这两个源码的区别,除了程序中对IPC部分的设置不同外,cmd文件也有一些区别。所以,想请教一下,是否基于IPCLite双核裸机开发,DSP端的cmd文件必须按照创龙给的那样进行空间分配,还是有什么特殊要求?请赐教,不胜感激!现在程序就剩下烧写进NAND FLASH了!
回复 支持 反对

使用道具 举报

12

主题

43

帖子

199

积分

注册会员

Rank: 2

积分
199
地板
 楼主| 发表于 2017-1-18 14:20:38 | 显示全部楼层
human 发表于 2017-1-18 14:05" |& L  U; D$ o1 R9 N/ ^
需要在cmd文件给L2空间预留一段RBL引导程序的空间

3 y4 q+ {0 Y+ }; S你好,具体怎么写这段代码?之前的cmd文件,将所有段都放在DDR2中,其中哪一句对应的功能是预留给RBL引导程序的空间?请指导一下,谢谢。
  K; |1 l8 n9 ^0 t3 ?& GSECTIONS
6 i, l$ b+ V) x{3 W" P+ k  [8 Z
        GROUP (NEAR_DP_RELATIVE)
5 o) F0 ^& j( T9 v7 B, D        {
8 q3 M  b. n' j' n0 P! u            .neardata
3 `  E2 j7 [4 V! ]4 I6 z5 c            .rodata
3 W- G9 l$ y7 @# x: y2 d8 P            .bss
1 A' d1 g& X3 F, p) q. j! u5 [        } > DDR20 [4 Q5 m, h, {1 M4 F

: W* U+ c, Y- u" \, h3 r$ d6 O9 D! e        .cinit                >                DDR2                                // Initialization Tables
& I, B4 v1 C" Y' y2 V4 r' o        .pinit                >                DDR2                                // Constructor Tables
7 m9 o& V" U& z% _    .init_array        >                DDR2
! ^+ f2 J8 Y. \0 }* L        .const                >                DDR2                                // Constant Data/ q" ?  v' P8 c: p5 N" N
        .switch                >                DDR2                                // Jump Tables" {5 d% V: V1 C5 \# ~; L9 e
        .text                >                DDR2                                // Executable Code7 e7 c2 r1 S' N3 {2 D8 y
        .text:_c_int00: > 0xC3000000                                        // Entrypoint
. k) r0 V! F3 \3 H        ; L% h( a% ^' V6 G  T- B
        .far                >                DDR2                                // Far Global & Static Variables
- D* V: }0 [( N+ m6 R8 m4 _1 }, k        .fardata        >                DDR2
( `8 w# S* z3 d, g. _+ A5 K        .stack                >                DDR2                                // Software System Stack4 p* Z) K7 ?) y9 U, T8 b# q
        .sysmem                >                DDR2                                // Dynamic Memory Allocation Area
3 m1 X& I+ ?: e" {       
) z) j) M/ y9 }        .cio                >                DDR2                                // C I/O Buffer1 B+ H( J5 Y3 Y1 P
        .vecs                >                DDR2                                // Interrupt Vectors- ^9 K9 V) n$ n5 q# }
}
回复 支持 反对

使用道具 举报

12

主题

43

帖子

199

积分

注册会员

Rank: 2

积分
199
5#
 楼主| 发表于 2017-1-21 08:35:45 | 显示全部楼层
human 发表于 2017-1-18 14:05
$ h  N" N8 B5 n需要在cmd文件给L2空间预留一段RBL引导程序的空间
' o5 ^( I* d9 n0 H
你好,请教具体怎么实现,能给大概说一下,我自己查了几天资料,还没有搞清楚,谢谢!
回复 支持 反对

使用道具 举报

12

主题

43

帖子

199

积分

注册会员

Rank: 2

积分
199
6#
 楼主| 发表于 2017-2-7 15:42:40 | 显示全部楼层
human 发表于 2017-1-23 09:22
5 G4 x* g* S7 c- Y8 G5 {/ e建议看看创龙的教学视频-CMD、启动烧写部分

8 r  a% s  n( Q1 a你好,我将cmd文件中的所有段都放在L2 RAM中,然后将程序起始地址改为从0x11800000偏移一定的地址,为RBL预留一定的空间。但是我不论偏移多少地址,编译、烧写后,程序都不能正常运行。麻烦帮我看下是哪里修改的不对吗?谢谢!: F( }/ {5 i( ]2 w' _8 L  B
SECTIONS  @" U- F8 C7 ~% i$ U
{* r( D0 K7 l. ~' t' Y' r0 K
        GROUP (NEAR_DP_RELATIVE)! B/ l7 ?0 G/ N! M5 p
        {! O* F$ ?. u3 I6 C
            .neardata0 a# y$ w% s; n* g3 I
            .rodata  l0 N! E8 k! K/ ^( b- a7 E$ }# J
            .bss
/ H; v# \3 q7 M' l0 n, B& R        } > L2. n" V0 p9 X) `& R3 n

4 B7 i& _$ i, X: U( M) a        .cinit                >                L2                                // Initialization Tables
$ d( R0 V* p* |+ Z# x- E4 i        .pinit                >                L2                                // Constructor Tables
( n" T" H. \9 {7 X% |    .init_array        >                L24 @: A2 d+ d) C  Y' T
        .const                >                L2                                // Constant Data
9 e- {! S/ {% P) S7 M0 X% a- L        .switch                >                L2                                // Jump Tables
& F& x; w9 h" B8 t; |        .text                >                L2                                // Executable Code+ g2 G6 d, \; x+ U' y
        .text:_c_int00: > 0x11810000                                        // Entrypoint. h: Y* @7 w6 `7 A% I! r; V/ ~
        ' e; i* `% Q/ N* R6 q0 q* ?
        .far                >                L2                                // Far Global & Static Variables; M# o  _; K& M0 F" f0 ]2 P1 y* I3 r
        .fardata        >                L2& Q4 Z& T5 T& b' d& n2 c
        .stack                >                L2                                // Software System Stack
8 x3 X% R: S7 e2 M        .sysmem                >                L2                                // Dynamic Memory Allocation Area
( O1 E. [* t3 E( c% _5 h6 \8 U; x        
: A8 H1 g* l+ g        .cio                >                L2                                // C I/O Buffer
0 |) t, A* R$ i% Z$ [4 F' U8 d        .vecs                >                L2                                // Interrupt Vectors
6 v0 N- _2 J/ n}
) l) x7 P  K. t8 d
回复 支持 反对

使用道具 举报

12

主题

43

帖子

199

积分

注册会员

Rank: 2

积分
199
7#
 楼主| 发表于 2017-2-8 11:20:21 | 显示全部楼层
本帖最后由 lanteng 于 2017-2-8 11:22 编辑
# p6 g2 d* }. |0 r, F& @3 K
human 发表于 2017-2-7 17:22
: H$ u  I! o/ h7 b' R$ k* c2 f& j你添加了SPL引导程序没
9 T) r6 {7 k, _
你好,没有添加SPL引导程序。请教SPL引导程序需要怎么写,有参考例程或者资料吗?具体要添加到哪里?在视频中没有看到这部分,之前也没有接触过,请指教,谢谢!
回复 支持 反对

使用道具 举报

12

主题

43

帖子

199

积分

注册会员

Rank: 2

积分
199
8#
 楼主| 发表于 2017-2-13 11:32:48 | 显示全部楼层
human 发表于 2017-2-9 17:31& F, m2 j0 s  o! K: C
加我发你  2942385389
- h" q" T5 A' M5 D9 ]( \
你好,用SPL引导程序u-boot-spl-pad.ais之后,仍然是DSP端cmd文件中所有段放在L2 RAM中,程序上电不运行,放在DDR2中则运行。请教,是否需要修改u-boot-spl-pad.ais代码?我试了好多次都不行,麻烦帮我分析一下是什么原因?谢谢!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2025-7-2 18:43 , Processed in 0.040007 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表