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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

楼主: lanteng
打印 上一主题 下一主题

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

[复制链接]

12

主题

43

帖子

199

积分

注册会员

Rank: 2

积分
199
跳转到指定楼层
楼主
发表于 2017-1-13 11:13:16 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
OMAPL138基于IPCLite的双核裸机程序,创龙例程中,DSP端的cmd文件中将所有的段都放在DDR2中,我想让程序在L2RAM中运行,所以将所有的段都放在L2 RAM中,编译、烧写之后,上电程序不运行。请教一下是什么原因?
/ x; t) F4 Q7 [( g
分享到:  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中,则编译、烧写后,上电程序不运行。
; a; w7 X; \* ?刚开始做双核裸机开发时,用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
: D  R6 ?9 s7 B" Z) ~% W需要在cmd文件给L2空间预留一段RBL引导程序的空间
# j) J1 W4 w5 O6 J! W# H( H
你好,具体怎么写这段代码?之前的cmd文件,将所有段都放在DDR2中,其中哪一句对应的功能是预留给RBL引导程序的空间?请指导一下,谢谢。2 C2 \9 E4 G# q$ l0 K! {* a
SECTIONS
4 C+ z5 ?# u& |' k+ {- h' F{
5 ?- u, W; t  P0 A9 a        GROUP (NEAR_DP_RELATIVE)$ D1 b, L1 a" A& s
        {2 D0 R2 {4 H2 ~1 H2 q: @9 j
            .neardata/ C- H5 K* h* R; H7 g
            .rodata8 p7 W' K  V5 D0 Q
            .bss
$ k+ n6 r' a- K! {" `3 F        } > DDR2
+ s2 k: j6 Q" |9 B7 k# d& X! u' T; f+ O% y0 G1 ?4 c
        .cinit                >                DDR2                                // Initialization Tables5 \4 d: v  |$ z' r9 _9 W2 a% k
        .pinit                >                DDR2                                // Constructor Tables. y) j0 P- G& p! ~7 N& X0 e
    .init_array        >                DDR2
- \! |$ s8 l9 z6 G5 g' P        .const                >                DDR2                                // Constant Data9 D8 R+ w! ~' e
        .switch                >                DDR2                                // Jump Tables
3 M$ O8 o" N& d! B        .text                >                DDR2                                // Executable Code
4 R, O$ b9 V( b& l9 z3 h        .text:_c_int00: > 0xC3000000                                        // Entrypoint, O2 z6 g/ b6 a( l! Q; h0 T" x
        ( W0 I! s7 Q, P: ]7 I5 D
        .far                >                DDR2                                // Far Global & Static Variables
3 L5 l# k1 Z0 \$ \        .fardata        >                DDR2. f2 [$ Y! J% x$ ?1 q
        .stack                >                DDR2                                // Software System Stack
; z0 b9 a: X& o8 C- A! ?        .sysmem                >                DDR2                                // Dynamic Memory Allocation Area
6 M$ m# ]) I- E" T        8 X/ _3 _* f) I- y" @: V4 _4 y
        .cio                >                DDR2                                // C I/O Buffer1 |% n% D# W& d, a) B
        .vecs                >                DDR2                                // Interrupt Vectors: c' s) h5 n5 H: ]& z
}
回复 支持 反对

使用道具 举报

12

主题

43

帖子

199

积分

注册会员

Rank: 2

积分
199
5#
 楼主| 发表于 2017-1-21 08:35:45 | 显示全部楼层
human 发表于 2017-1-18 14:05
( k) C+ _( `! X: z需要在cmd文件给L2空间预留一段RBL引导程序的空间

% t5 J  w9 R8 c- T8 g, a6 q你好,请教具体怎么实现,能给大概说一下,我自己查了几天资料,还没有搞清楚,谢谢!
回复 支持 反对

使用道具 举报

12

主题

43

帖子

199

积分

注册会员

Rank: 2

积分
199
6#
 楼主| 发表于 2017-2-7 15:42:40 | 显示全部楼层
human 发表于 2017-1-23 09:22. a4 {; q5 F! y6 a8 J
建议看看创龙的教学视频-CMD、启动烧写部分
$ c/ n" W$ o! ^* o; Q$ c# q1 P. y/ a
你好,我将cmd文件中的所有段都放在L2 RAM中,然后将程序起始地址改为从0x11800000偏移一定的地址,为RBL预留一定的空间。但是我不论偏移多少地址,编译、烧写后,程序都不能正常运行。麻烦帮我看下是哪里修改的不对吗?谢谢!. {1 l( Y4 ]0 v
SECTIONS
1 K8 t: }' i% A" N. a" q6 G6 d0 s{- U2 W- Q) X7 i4 n# O# i' S
        GROUP (NEAR_DP_RELATIVE)' \; J( B: K( D0 q/ S  l
        {
5 B/ g8 D1 P0 u! A# }2 N1 ~0 i6 e+ `, n            .neardata# C2 y5 [7 z$ r4 ]$ r
            .rodata
# _& q4 w0 o' D            .bss0 C; _( V& D3 `5 B& N8 D0 D+ B& D
        } > L2  e& w0 I: E9 S

" h/ k2 r/ c/ [% R* O" A        .cinit                >                L2                                // Initialization Tables
* P' p5 O7 j8 m6 w6 d# x        .pinit                >                L2                                // Constructor Tables
! l" U4 z4 u$ ]' h' A2 ]    .init_array        >                L2
6 H3 B+ _& m+ u8 @& R. H8 c# Y) u/ E        .const                >                L2                                // Constant Data# m3 m6 k0 R. M  q! j* i
        .switch                >                L2                                // Jump Tables, [" @( z# ?+ j( W% o1 U9 P
        .text                >                L2                                // Executable Code7 v. r& I4 }: f* \/ r6 R( l& ]8 `
        .text:_c_int00: > 0x11810000                                        // Entrypoint
  F9 s  Z! ]. H) @/ L+ Q3 h% v        / q. T* R6 e% P" e7 `" o
        .far                >                L2                                // Far Global & Static Variables: _' @4 [5 Y! }4 M
        .fardata        >                L2& w* o- F" X* q& x
        .stack                >                L2                                // Software System Stack
, X/ x# y2 X3 r/ g# t        .sysmem                >                L2                                // Dynamic Memory Allocation Area9 Z# g+ ]1 n) D# B! o8 H/ n: }) C' V% O
        
& z! v+ T/ }  Y6 g% `        .cio                >                L2                                // C I/O Buffer$ u. a/ Y7 B2 u" F; x9 f
        .vecs                >                L2                                // Interrupt Vectors! u9 b% a' Y* T5 u
}
9 u( s2 ^: `5 l5 K# B
回复 支持 反对

使用道具 举报

12

主题

43

帖子

199

积分

注册会员

Rank: 2

积分
199
7#
 楼主| 发表于 2017-2-8 11:20:21 | 显示全部楼层
本帖最后由 lanteng 于 2017-2-8 11:22 编辑
: F% ~3 r& ^* P! |
human 发表于 2017-2-7 17:22
+ d4 q# L& d9 m  b你添加了SPL引导程序没
% `  z- r# D8 V% D. K* H+ L
你好,没有添加SPL引导程序。请教SPL引导程序需要怎么写,有参考例程或者资料吗?具体要添加到哪里?在视频中没有看到这部分,之前也没有接触过,请指教,谢谢!
回复 支持 反对

使用道具 举报

12

主题

43

帖子

199

积分

注册会员

Rank: 2

积分
199
8#
 楼主| 发表于 2017-2-13 11:32:48 | 显示全部楼层
human 发表于 2017-2-9 17:31
( O3 J; N% ?) g: `3 I6 R! h加我发你  2942385389

8 S8 m* k- X4 X6 a你好,用SPL引导程序u-boot-spl-pad.ais之后,仍然是DSP端cmd文件中所有段放在L2 RAM中,程序上电不运行,放在DDR2中则运行。请教,是否需要修改u-boot-spl-pad.ais代码?我试了好多次都不行,麻烦帮我分析一下是什么原因?谢谢!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-5 10:08 , Processed in 0.040496 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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