请教:双核裸机程序,修改例程中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中,编译、烧写之后,上电程序不运行。请教一下是什么原因?
% |: i3 w8 `0 j0 A2 M
分享到:  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. d* T9 A9 g刚开始做双核裸机开发时,用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/ B! h  D/ N3 v* s2 }3 I9 g
需要在cmd文件给L2空间预留一段RBL引导程序的空间

0 O+ y1 W/ `3 D: ^6 X/ Q9 N% e你好,具体怎么写这段代码?之前的cmd文件,将所有段都放在DDR2中,其中哪一句对应的功能是预留给RBL引导程序的空间?请指导一下,谢谢。
! \& G1 r$ A+ S' ~7 R: h0 H* ~SECTIONS" q4 l3 `% H# r$ G
{6 |' K% V% f! L  ^$ _! R6 S
        GROUP (NEAR_DP_RELATIVE)
4 A( s6 U( V1 M$ g        {" ^/ s& x" q4 N" a6 R, Z
            .neardata, w5 Z+ i. N' D7 b
            .rodata
8 T9 ]0 J9 z. \) @' j" m9 F            .bss
" C. c9 A; w" G( s( z; v        } > DDR2' k; Q9 x; _, o( P6 W
6 ~. f) o3 O0 b# V' e
        .cinit                >                DDR2                                // Initialization Tables/ }  G$ s5 z% R+ h, u; f/ v2 b
        .pinit                >                DDR2                                // Constructor Tables# {' L9 e9 F4 X* @4 p5 C/ u' w( v
    .init_array        >                DDR2
1 i5 M( Z0 b* h) L/ P        .const                >                DDR2                                // Constant Data
5 ]: w$ G' o1 |( s* O7 O5 ^0 i        .switch                >                DDR2                                // Jump Tables, z$ W  u* m! ^% V8 c& @
        .text                >                DDR2                                // Executable Code1 u: b3 T  a) u! E! s
        .text:_c_int00: > 0xC3000000                                        // Entrypoint% }" l$ X) I* \' x( ^1 W' x4 h
       
$ g5 K' @' s/ }" w' U: D" w0 C        .far                >                DDR2                                // Far Global & Static Variables
: y5 ^" U5 n2 t' _/ v. g1 i        .fardata        >                DDR2
- T8 |2 t: h1 D  j# S2 W/ t' {        .stack                >                DDR2                                // Software System Stack
; }" ]8 c0 N6 h7 @2 B$ t. Y1 ^        .sysmem                >                DDR2                                // Dynamic Memory Allocation Area- m( F& l9 K' a- U  o+ ]+ L' E1 N
        3 e8 A, n; q% W, s2 N" k
        .cio                >                DDR2                                // C I/O Buffer
7 P5 A* ~- ~3 A1 A9 O3 i3 {        .vecs                >                DDR2                                // Interrupt Vectors  R! D# u( A* F/ M0 C
}
回复 支持 反对

使用道具 举报

12

主题

43

帖子

199

积分

注册会员

Rank: 2

积分
199
5#
 楼主| 发表于 2017-1-21 08:35:45 | 显示全部楼层
human 发表于 2017-1-18 14:05
0 S- [5 W" _5 w$ g3 L* L& T需要在cmd文件给L2空间预留一段RBL引导程序的空间

  S; J- E+ {" v9 ~4 J% r你好,请教具体怎么实现,能给大概说一下,我自己查了几天资料,还没有搞清楚,谢谢!
回复 支持 反对

使用道具 举报

12

主题

43

帖子

199

积分

注册会员

Rank: 2

积分
199
6#
 楼主| 发表于 2017-2-7 15:42:40 | 显示全部楼层
human 发表于 2017-1-23 09:22& e/ p0 B: [- ]% @  W: E
建议看看创龙的教学视频-CMD、启动烧写部分
. O* s, D: T% B4 b1 y: Y
你好,我将cmd文件中的所有段都放在L2 RAM中,然后将程序起始地址改为从0x11800000偏移一定的地址,为RBL预留一定的空间。但是我不论偏移多少地址,编译、烧写后,程序都不能正常运行。麻烦帮我看下是哪里修改的不对吗?谢谢!
7 G# T0 z! M/ w5 k9 |  x9 TSECTIONS' N; R$ f' \) c0 E# ?" q
{
3 k4 s$ @# ^  R6 c        GROUP (NEAR_DP_RELATIVE)1 S$ e* X! j" V0 ~
        {. I5 B  q, y9 D# x
            .neardata: w2 E: B' U/ P6 P1 ]' M  P% C1 Z
            .rodata
) e4 e; G6 g5 g1 ?% ^3 \, b            .bss8 E/ X+ m8 R+ k% k9 v
        } > L24 t' D. n- c. w) H/ [
& b0 \# q- l9 z. I4 O: _3 D
        .cinit                >                L2                                // Initialization Tables
7 G0 \0 S1 b/ O1 L        .pinit                >                L2                                // Constructor Tables+ \; X) Y# s- \3 P" ]8 E$ H
    .init_array        >                L26 F* A( p  m% M& G
        .const                >                L2                                // Constant Data
2 [/ _9 l/ Q8 ~. S        .switch                >                L2                                // Jump Tables- A( t9 k( f9 ]1 K  U/ F2 A9 m
        .text                >                L2                                // Executable Code( K/ Y0 A3 _* X& ]+ r7 Y1 D
        .text:_c_int00: > 0x11810000                                        // Entrypoint5 ?9 E. i2 d$ |" U7 H
        
3 a+ Y  c. ^) Z- U$ G        .far                >                L2                                // Far Global & Static Variables9 S( {. M) Q5 A
        .fardata        >                L2$ q) \) u" I1 S" S2 \
        .stack                >                L2                                // Software System Stack
4 `  R  r1 G2 w! ]# i! E1 }        .sysmem                >                L2                                // Dynamic Memory Allocation Area
  A# ?$ D) h1 u' o, X. l2 b2 e        ! Y- l, T6 s. g& r% g9 p8 r1 r
        .cio                >                L2                                // C I/O Buffer  T) L' V7 }4 K& Y, m$ N' p2 \5 S
        .vecs                >                L2                                // Interrupt Vectors; _& ^( G$ [6 i
}' x3 i4 G3 D1 T6 S) b% x! z
回复 支持 反对

使用道具 举报

12

主题

43

帖子

199

积分

注册会员

Rank: 2

积分
199
7#
 楼主| 发表于 2017-2-8 11:20:21 | 显示全部楼层
本帖最后由 lanteng 于 2017-2-8 11:22 编辑
! q& K3 i" ?  K0 G
human 发表于 2017-2-7 17:22
% y: [3 `1 O9 S7 j# Z# M6 F你添加了SPL引导程序没

" p5 A0 ^& Q7 n你好,没有添加SPL引导程序。请教SPL引导程序需要怎么写,有参考例程或者资料吗?具体要添加到哪里?在视频中没有看到这部分,之前也没有接触过,请指教,谢谢!
回复 支持 反对

使用道具 举报

12

主题

43

帖子

199

积分

注册会员

Rank: 2

积分
199
8#
 楼主| 发表于 2017-2-13 11:32:48 | 显示全部楼层
human 发表于 2017-2-9 17:31
! X# V4 o; {8 }7 ]: d/ ^加我发你  2942385389

  g( ]" F2 ^# B4 _' s5 [  V你好,用SPL引导程序u-boot-spl-pad.ais之后,仍然是DSP端cmd文件中所有段放在L2 RAM中,程序上电不运行,放在DDR2中则运行。请教,是否需要修改u-boot-spl-pad.ais代码?我试了好多次都不行,麻烦帮我分析一下是什么原因?谢谢!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-15 02:03 , Processed in 0.042523 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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