请教:双核裸机程序,修改例程中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中,编译、烧写之后,上电程序不运行。请教一下是什么原因?
9 ~5 D1 g' a% `7 E% N
分享到:  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中,则编译、烧写后,上电程序不运行。
9 J/ p% p8 k' a+ y刚开始做双核裸机开发时,用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$ u) ^: l" B3 D6 z9 ~
需要在cmd文件给L2空间预留一段RBL引导程序的空间

. ^# L2 n) U8 \" N5 Z, E  X1 ^你好,具体怎么写这段代码?之前的cmd文件,将所有段都放在DDR2中,其中哪一句对应的功能是预留给RBL引导程序的空间?请指导一下,谢谢。* K! v% O/ X/ m& `1 }; S7 e# g
SECTIONS3 H$ V/ U3 e  S* D
{0 E, E, H/ }+ y' C; k, ~% e5 f
        GROUP (NEAR_DP_RELATIVE)
$ h  ~3 _- ?1 h; c! D        {
. ]* m8 v* h3 l! H& F            .neardata- l- |( P6 U; }/ T, h" m5 F- t) W
            .rodata+ g, z# U+ F7 q# K: W
            .bss" g1 f4 }+ Q, Y, |
        } > DDR2
' }' I+ L  A( k3 `- B0 I* q7 f7 `# b0 e2 k
        .cinit                >                DDR2                                // Initialization Tables' C+ b! z7 ?5 `; I7 G- l% h3 \$ y4 u
        .pinit                >                DDR2                                // Constructor Tables
4 |9 X; R& S' z  c' I2 @    .init_array        >                DDR2
8 N; _' q; h$ w8 ]) M0 A        .const                >                DDR2                                // Constant Data
! c. h* N6 V: @) W* h        .switch                >                DDR2                                // Jump Tables
. K* j# Z# f& C; ^+ E% A        .text                >                DDR2                                // Executable Code
7 f' B* S$ w1 O        .text:_c_int00: > 0xC3000000                                        // Entrypoint( {( s4 @4 R. j- [. X5 D4 x
        3 C0 U# K( r2 g
        .far                >                DDR2                                // Far Global & Static Variables
# e' d* d4 F6 ]7 @        .fardata        >                DDR2
5 d7 d; e5 i8 s8 _/ {        .stack                >                DDR2                                // Software System Stack
4 x( h- p+ Y' \' y: d) ~4 ^        .sysmem                >                DDR2                                // Dynamic Memory Allocation Area
4 d( [' ?5 D7 |6 @+ ~2 H        * _0 V4 W8 k: r  V7 H0 [
        .cio                >                DDR2                                // C I/O Buffer
  i1 D3 ^+ H0 n! K' @        .vecs                >                DDR2                                // Interrupt Vectors* x2 K' G) Y* I* `; f$ U
}
回复 支持 反对

使用道具 举报

12

主题

43

帖子

199

积分

注册会员

Rank: 2

积分
199
5#
 楼主| 发表于 2017-1-21 08:35:45 | 显示全部楼层
human 发表于 2017-1-18 14:05
5 W. j3 [( j$ l( B1 n需要在cmd文件给L2空间预留一段RBL引导程序的空间
; ^; W( \2 u$ O
你好,请教具体怎么实现,能给大概说一下,我自己查了几天资料,还没有搞清楚,谢谢!
回复 支持 反对

使用道具 举报

12

主题

43

帖子

199

积分

注册会员

Rank: 2

积分
199
6#
 楼主| 发表于 2017-2-7 15:42:40 | 显示全部楼层
human 发表于 2017-1-23 09:22
2 B5 z% @. D% u! M2 a建议看看创龙的教学视频-CMD、启动烧写部分

' A" F* Q9 g1 {& E, N0 Z# g4 l你好,我将cmd文件中的所有段都放在L2 RAM中,然后将程序起始地址改为从0x11800000偏移一定的地址,为RBL预留一定的空间。但是我不论偏移多少地址,编译、烧写后,程序都不能正常运行。麻烦帮我看下是哪里修改的不对吗?谢谢!
' G3 N$ ^& m* `$ oSECTIONS
& J$ e+ z$ `2 y; {: h- z+ G# I{& n# g4 N9 P/ @. }# E
        GROUP (NEAR_DP_RELATIVE)* N! B3 Y9 }. c# Z7 p
        {4 s9 N. O$ t2 F$ q* n; ~7 q
            .neardata
+ x6 o% d9 t7 N            .rodata
- p% X4 U2 o% i9 _5 d! p2 @% f            .bss
7 M$ n) R. b1 x9 k! U        } > L2
; ~( {! G6 }8 Y7 d( e" }6 [- x4 b3 c; g  ^+ G$ ]2 {
        .cinit                >                L2                                // Initialization Tables
5 S3 \4 }" B8 E; ?8 w6 S; u        .pinit                >                L2                                // Constructor Tables# g( S- s. F1 A# c6 W5 z
    .init_array        >                L2
5 h* C& x. B: _3 }; o3 P        .const                >                L2                                // Constant Data
$ p, n! Q# y* {) m3 {$ i" U        .switch                >                L2                                // Jump Tables* D- K0 ~5 o6 L; Y
        .text                >                L2                                // Executable Code% @  d9 ?  s5 |- Y5 D8 p
        .text:_c_int00: > 0x11810000                                        // Entrypoint
0 T+ s' I: G* g; f# m/ `9 Z8 T( w        ) T( D# G. v( L8 n$ j
        .far                >                L2                                // Far Global & Static Variables2 w+ u- f5 G4 G" Q. \
        .fardata        >                L2$ W- ]7 {6 G" h7 M  s- t2 J. k
        .stack                >                L2                                // Software System Stack
0 I! [/ O. N. E3 c6 N        .sysmem                >                L2                                // Dynamic Memory Allocation Area0 L! b8 ^  q8 I2 Z5 A1 f
        
" u  i0 U6 E' f. r* u- d        .cio                >                L2                                // C I/O Buffer( d! F! G1 z! m6 z
        .vecs                >                L2                                // Interrupt Vectors! h% u' u; |: T) J5 \- Z
}, m6 D+ f+ p4 E9 a8 X
回复 支持 反对

使用道具 举报

12

主题

43

帖子

199

积分

注册会员

Rank: 2

积分
199
7#
 楼主| 发表于 2017-2-8 11:20:21 | 显示全部楼层
本帖最后由 lanteng 于 2017-2-8 11:22 编辑 8 C3 Y, z& Q# X8 O3 d- H
human 发表于 2017-2-7 17:22
7 t# d6 @6 Z0 ]* @! x3 y你添加了SPL引导程序没

3 \: C  ?6 y' E/ y- v4 c你好,没有添加SPL引导程序。请教SPL引导程序需要怎么写,有参考例程或者资料吗?具体要添加到哪里?在视频中没有看到这部分,之前也没有接触过,请指教,谢谢!
回复 支持 反对

使用道具 举报

12

主题

43

帖子

199

积分

注册会员

Rank: 2

积分
199
8#
 楼主| 发表于 2017-2-13 11:32:48 | 显示全部楼层
human 发表于 2017-2-9 17:31
) g( b" Y! N9 P; E加我发你  2942385389

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-10 15:17 , Processed in 0.041805 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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