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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

12

主题

43

帖子

199

积分

注册会员

Rank: 2

积分
199
跳转到指定楼层
楼主
发表于 2017-1-13 11:13:16 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
OMAPL138基于IPCLite的双核裸机程序,创龙例程中,DSP端的cmd文件中将所有的段都放在DDR2中,我想让程序在L2RAM中运行,所以将所有的段都放在L2 RAM中,编译、烧写之后,上电程序不运行。请教一下是什么原因?
! Z: t1 j, u# ~" f8 P# {# A% E
分享到:  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中,则编译、烧写后,上电程序不运行。
# r8 ~8 r! Q" b0 I" q4 P刚开始做双核裸机开发时,用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:058 h2 S* U1 |( l+ ]4 O5 |
需要在cmd文件给L2空间预留一段RBL引导程序的空间

& l! C8 \& ^2 @你好,具体怎么写这段代码?之前的cmd文件,将所有段都放在DDR2中,其中哪一句对应的功能是预留给RBL引导程序的空间?请指导一下,谢谢。
2 }/ f3 X( d' a7 b' nSECTIONS1 v1 S" ]5 d$ t: s
{
  q4 b1 h. n* R$ m5 M7 z        GROUP (NEAR_DP_RELATIVE)
$ f1 ^  {) N1 Y5 g+ Y" Z        {
" G9 i) {' k; F! B            .neardata/ |3 K2 M' X# O0 |% S! A) _3 B
            .rodata) U* w- k6 ~+ c- P; d+ Z
            .bss
3 {$ k: L. z, X: E1 g" F4 a/ J/ \        } > DDR2
; C% O3 b1 o/ U1 y) }
9 V( G, e4 f, q: Y% q1 x; s4 A( L        .cinit                >                DDR2                                // Initialization Tables
' m* ^5 p1 u/ B1 F, B! A$ k        .pinit                >                DDR2                                // Constructor Tables4 L: U; e$ w$ x! v3 T/ D
    .init_array        >                DDR2! k2 o, M" |6 H3 x0 C
        .const                >                DDR2                                // Constant Data
  j5 s, b3 P' `, b        .switch                >                DDR2                                // Jump Tables7 h/ p$ z. X2 p% u% R
        .text                >                DDR2                                // Executable Code
% l  _. I& j6 `        .text:_c_int00: > 0xC3000000                                        // Entrypoint/ |6 n: R" J( v1 |
          Y& f# ~% |" w" h4 q" Z/ X
        .far                >                DDR2                                // Far Global & Static Variables
9 H7 b, R$ ?0 ^* {9 R5 J        .fardata        >                DDR20 C+ G" F1 P. X$ w
        .stack                >                DDR2                                // Software System Stack6 i  q! r0 _: N2 |5 Q
        .sysmem                >                DDR2                                // Dynamic Memory Allocation Area
) S  C3 @* }5 x1 c        6 \- F& T. o3 ?
        .cio                >                DDR2                                // C I/O Buffer- W& j. k8 u2 S% y% d
        .vecs                >                DDR2                                // Interrupt Vectors
$ I6 E) ~& D5 P( J' q7 i9 P}
回复 支持 反对

使用道具 举报

12

主题

43

帖子

199

积分

注册会员

Rank: 2

积分
199
5#
 楼主| 发表于 2017-1-21 08:35:45 | 显示全部楼层
human 发表于 2017-1-18 14:05! C- `0 p" V5 k
需要在cmd文件给L2空间预留一段RBL引导程序的空间
. G. C: k5 e8 J+ Q; i  [7 O" [
你好,请教具体怎么实现,能给大概说一下,我自己查了几天资料,还没有搞清楚,谢谢!
回复 支持 反对

使用道具 举报

12

主题

43

帖子

199

积分

注册会员

Rank: 2

积分
199
6#
 楼主| 发表于 2017-2-7 15:42:40 | 显示全部楼层
human 发表于 2017-1-23 09:22- e' Q7 p4 O: u3 F, F9 _
建议看看创龙的教学视频-CMD、启动烧写部分
# e" `) Z- _( m' R/ a3 m
你好,我将cmd文件中的所有段都放在L2 RAM中,然后将程序起始地址改为从0x11800000偏移一定的地址,为RBL预留一定的空间。但是我不论偏移多少地址,编译、烧写后,程序都不能正常运行。麻烦帮我看下是哪里修改的不对吗?谢谢!
/ c# I$ u: G' U$ V4 L- eSECTIONS0 U' ]& Z+ m0 x$ S5 C* |. e" s
{$ S1 [* N1 N+ Z! ]
        GROUP (NEAR_DP_RELATIVE)
7 ?# N/ e6 r+ F. K  j8 H        {
" h+ i( e: R3 `6 M4 X            .neardata
8 O$ @, _3 `! p+ [9 v5 }$ r" T            .rodata7 E7 u' q6 q5 i( d1 A$ K
            .bss
! C3 {7 r5 ?7 \) S8 X' v        } > L2$ k( e! z# ~3 K6 a  F3 [* C
; J9 ]: q: I0 W( \
        .cinit                >                L2                                // Initialization Tables
7 [# f) {# g" r        .pinit                >                L2                                // Constructor Tables6 k2 a& {) i( B7 t" `
    .init_array        >                L20 J  k; M- h0 c" ^; H6 z
        .const                >                L2                                // Constant Data. O: j: _  f) R+ }  l4 z4 u  {- K
        .switch                >                L2                                // Jump Tables# Y& g- |# m/ u3 z3 \, D2 F1 W/ l" `
        .text                >                L2                                // Executable Code, }) ?, z" S: M* _9 R
        .text:_c_int00: > 0x11810000                                        // Entrypoint
# y1 i( R5 m2 {$ b. N        
7 V' {* o8 k: y! b5 Z& ]! Z5 E# C- [9 ~        .far                >                L2                                // Far Global & Static Variables
: u8 j, E) f' |/ y/ `3 k' r        .fardata        >                L2$ _2 ^0 b0 P0 q, I
        .stack                >                L2                                // Software System Stack# J5 I/ ?1 X  W+ P+ r  s# G1 A
        .sysmem                >                L2                                // Dynamic Memory Allocation Area) V+ E/ F, S* S6 T
        " T8 g( p; l# v8 l
        .cio                >                L2                                // C I/O Buffer* A! I8 z! [) Z7 P  I- K- {$ i
        .vecs                >                L2                                // Interrupt Vectors+ i& j. Q( a1 V9 x: U3 Z0 ~; Q
}7 A* N: I7 S- y% \1 R3 b- H% n1 Q
回复 支持 反对

使用道具 举报

12

主题

43

帖子

199

积分

注册会员

Rank: 2

积分
199
7#
 楼主| 发表于 2017-2-8 11:20:21 | 显示全部楼层
本帖最后由 lanteng 于 2017-2-8 11:22 编辑
+ C4 a& E+ t- G/ P6 J
human 发表于 2017-2-7 17:22
2 m3 R6 s9 Q! h4 f% s9 v: A# A你添加了SPL引导程序没

7 C8 p2 i: Y/ c- w" x6 l6 t- q你好,没有添加SPL引导程序。请教SPL引导程序需要怎么写,有参考例程或者资料吗?具体要添加到哪里?在视频中没有看到这部分,之前也没有接触过,请指教,谢谢!
回复 支持 反对

使用道具 举报

12

主题

43

帖子

199

积分

注册会员

Rank: 2

积分
199
8#
 楼主| 发表于 2017-2-13 11:32:48 | 显示全部楼层
human 发表于 2017-2-9 17:31# N' g5 Q0 y5 ~; `9 x! ?
加我发你  2942385389

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-3 13:33 , Processed in 0.049697 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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