OMAPL138arm核跑linux+ipc,dsp核跑sysbios+ipc,重设dsp端程序起始 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6889|回复: 6
打印 上一主题 下一主题

[未解决] OMAPL138arm核跑linux+ipc,dsp核跑sysbios+ipc,重设dsp端程序起始

[复制链接]

9

主题

35

帖子

155

积分

注册会员

Rank: 2

积分
155
跳转到指定楼层
楼主
发表于 2017-5-22 12:48:15 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
    OMAPL138arm核跑linux+ipc,dsp核跑sysbios+ipc,如何重设dsp端程序起始。
8 u4 u. G: J4 w# I) P6 C0 M' I    板件使用的是创龙的核心板,linux系统是创龙提供的系统,dsp端程序使用的是例程hello为蓝本重新生成的rtsc工程,使用c++,其中的bld文件如下:
( m  n& ~: r* ]; }. J! ]  ?& O
7 v" i. N3 x3 m3 w$ c5 c3 l1 Q/*4 x) v' ?8 `7 [
*  ======== config.bld ========
  d: f5 x0 s6 g4 Y *) U1 y  p& r. G% F" }
*/
- I( [, ~, l) j0 g  q% ^$ l% R, E/ u: \( S' A- t
var Build = xdc.useModule('xdc.bld.BuildEnvironment');4 s" \: M% r' D( k

4 v/ f, H! ?( r* {/*  Memory Map for ti.platforms.evmOMAPL138/ }' {% K& R/ w( d+ f" l# i
*
1 l# }; K0 F3 B *  C000_0000 - C7FF_FFFF   800_0000  ( 128 MB) External Memory( i4 E0 R; Q& f) y8 B3 \
*  ------------------------------------------------------------------------
  u3 o) G9 ^$ S. ~8 `' S *  C000_0000 - C1FF_FFFF   200_0000  (  32 MB) Linux
% J* w+ k2 k2 [! O *  C200_0000 - C200_FFFF     1_0000  (  64 KB) SR_0 (ipc)
/ l, X6 m" F& M6 ^2 @ *  C201_0000 - C202_FFFF     2_0000  ( 128 KB) SR_1 (data buffers)( s: Z) ~; V- T! Z; |
*  C203_0000 - C2FF_FFFF    FF_0000  ( ~15 MB) --------. P. B$ z# m! o' u" ^
*  C300_0000 - C37F_FFFF    80_0000  (   8 MB) DSP_PROG (code, data)4 p, C3 L2 G/ a" o9 j/ J) W1 i, R
*  C380_0000 - C3FF_FFFF    80_0000  (   8 MB) --------
0 e! n. s" }1 k! O( k *  C400_0000 - C7FF_FFFF   400_0000  (  64 MB) Linux/ h) }* c9 \0 q
*/
2 Q. T! q5 H2 r# y9 [
: |% D& o9 V3 b) U5 V% w9 |' rvar SR_0 = {
1 T! r6 w2 N5 W3 W, A0 s        name: "SR_0", space: "data", access: "RWX",
4 C: p9 L5 ?9 }8 U) C8 O7 A/ q, f- E        base: 0xC2000000, len: 0x10000,
  K1 J9 E0 A& R" }; R- t* c7 D. f        comment: "SR#0 Memory (64 KB)"; E6 M1 z( s2 v5 h
    };
5 }) ~# c0 s1 A" b" G- H
( R0 Q- x' @. `% X* O. q( C+ D4 Gvar SR_1 = {* m7 i" A2 @* p+ W* q
        name: "SR_1", space: "data", access: "RWX",2 T/ L# M$ D4 i; Y, p
        base: 0xC2010000, len: 0x20000,
$ t  e; o' W2 l) T6 ^        comment: "SR#1 Memory (128 KB)"' l3 x3 N5 V' x$ Z; V7 @+ s: k- B
    };" m2 M' j1 J7 Y+ f2 c4 D" c7 b

5 J$ o$ B3 A: J9 U6 k7 SBuild.platformTable["ti.platforms.evmOMAPL138:dsp"] = {
; z$ H* g1 y+ k) K    externalMemoryMap: [% v3 j1 F0 _: n' ]% Y  H2 q, I
        [ SR_0.name, SR_0 ],
# C7 C1 U/ k7 T, L. l        [ SR_1.name, SR_1 ],
. e1 [' R! ?/ q. a        [ "DSP_PROG", {
2 n6 l" ?  Q7 x7 ?  T& V            name: "DSP_PROG", space: "code/data", access: "RWX",
1 Q, J7 G) y% j, M- E, N            base: 0xC2100000, len: 0x1E00000," a! v0 i" O6 J8 {
            comment: "DSP Program Memory (31 MB)"
2 S2 ~- C, n- T        }]
9 Y: P; e: ?/ n6 k9 y0 T9 h' c  x    ],. c: e! W& N1 m6 _- Z
    codeMemory:  "DSP_PROG",
% p- H& y) a2 i6 X* h6 O    dataMemory:  "DSP_PROG",( \  ?5 b, b9 O0 O' e$ T
    stackMemory: "DSP_PROG",1 S3 e# a# z/ y5 l+ }% y8 H
    l1DMode: "32k",' B& P0 M% }3 W! A- ]
    l1PMode: "32k",) I2 Y" Y! |: ]
    l2Mode: "64k"% z8 G! ?7 L- t% {" e: L; L( _; a  U
};
; \: }3 {$ A9 Z- g5 y! {3 R% D
% _: y0 J1 ^2 D/*0 P# G, v! v0 ^7 _. r  A7 H- J- \
*  ======== ti.targets.elf.C674 ========
' R+ T( b/ [7 N/ _ */7 _: T$ W/ Q6 K5 z0 K
var C674 = xdc.useModule('ti.targets.elf.C674');
) _. |* r' F) D" d0 W4 gC674.ccOpts.suffix += " -mi10 -mo ";
8 D: X8 D! r, @* fBuild.targets.$add(C674);2 ~" C) p) J9 t3 B7 @

  D% F1 S$ }" y. H) u1 Z6 T
& o" C9 |+ _/ g5 k0 D====================
  @; h5 x6 B7 ]5 F2 z) l, S原来DSP_PROG是0xC3000000起始,8MB长度的,现在因为需要一个比较大的缓存20MB以上,所以改成0xC2100000起始,31MB,但是编译之后,好像dsp启动不起来。重新修改了rtsc的platform的DSP_PROG的起始为0xC2100000长度31MB,程序还没有修改,还是原来的代码也没有增加缓存相关代码,只是调整程序空间起始和长度。不知道还需要修改哪些地方。2 `% b; Q2 u* u# \- ~6 \
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖
回复

使用道具 举报

9

主题

35

帖子

155

积分

注册会员

Rank: 2

积分
155
沙发
 楼主| 发表于 2017-5-22 16:44:41 | 显示全部楼层
1、直接修改config.bld的DSP_PROG,编译出来的文件map起始不是设定的0xC2100000,还是0xC3000000,为什么?删除了这个文件,工程又编译不了,这个文件有何用?
2 M0 u4 |' R; V) {& Q2、修改platform文件为0xC2100000,编译是对的,但是运行的时候,发现IPC出异常了,arm端连接不上dsp创建的ipc,请问还需要修改哪里才能正常工作
回复 支持 反对

使用道具 举报

9

主题

35

帖子

155

积分

注册会员

Rank: 2

积分
155
板凳
 楼主| 发表于 2017-5-22 16:52:35 | 显示全部楼层
/*  Memory Map for ti.platforms.evmOMAPL138! d' T: @2 f% f- |
*
; `. p3 M, c! i  R; t. u. Q) V3 F *  C000_0000 - C7FF_FFFF   800_0000  ( 128 MB) External Memory
& P( t7 h# d2 v+ A; {% w *  ------------------------------------------------------------------------/ G( f* k; t7 v& G
*  C000_0000 - C1FF_FFFF   200_0000  (  32 MB) Linux$ C* F$ X9 H+ F7 y( O
*  C200_0000 - C200_FFFF     1_0000  (  64 KB) SR_0 (ipc)- u( ?- l$ Y  h2 N# b/ E" Z- Z
*  C201_0000 - C202_FFFF     2_0000  ( 128 KB) SR_1 (data buffers)
( y5 A6 g1 n1 T* m# x *  C203_0000 - C2FF_FFFF    FF_0000  ( ~15 MB) --------7 M( j3 D8 t* m( [1 d2 Z
*  C300_0000 - C37F_FFFF    80_0000  (   8 MB) DSP_PROG (code, data)
5 Z9 I* e6 D& r; P. G& b# N4 w *  C380_0000 - C3FF_FFFF    80_0000  (   8 MB) --------4 X$ f. e- W) I( W2 R
*  C400_0000 - C7FF_FFFF   400_0000  (  64 MB) Linux
  J* N3 ?$ N0 q# O */
! ~1 q3 |3 M* V% E. Y如何将 C2100_0000 - C2FF_FFFF    FF_0000  ( 15 MB)和C380_0000 - C3FF_FFFF    80_0000  (   8 MB)与C300_0000 - C37F_FFFF    80_0000  (   8 MB) DSP_PROG (code, data)
$ S% y2 o5 {. f; D合并为一块大的区域作为dsp程序的所有空间3 K/ I) \) p* F" D
: ?1 Q0 n, Z( |+ C5 A
现在发现修改平台文件只要用到0xc3000000之前的空间就出现arm和dsp之间的ipc相关都出问题
回复 支持 反对

使用道具 举报

9

主题

35

帖子

155

积分

注册会员

Rank: 2

积分
155
地板
 楼主| 发表于 2017-5-23 16:16:08 | 显示全部楼层
请教这个slaveloader的list map怎么阅读,同时这些内存入口定义在哪里?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

9

主题

35

帖子

155

积分

注册会员

Rank: 2

积分
155
5#
 楼主| 发表于 2017-5-23 16:53:03 | 显示全部楼层
发现slaveloader的list map就是编译时的map文件显示的地址。
4 f/ }% d% e7 n" Y
% m5 m  w) u9 R7 Z, q( M. D目前将dsp的地址由0xc3000000改为0xc2100000(或0xc2800000)起始,编译之后的程序,arm端和dsp端的ipc建立不起连接,不知道创龙这个还需要修改哪个位置?如果是c300000前面8m和后面c3800000起始的8m一起使用程序没有问题,这是为何?是不是c3000000前面的地址在linux端有什么设置啊?
回复 支持 反对

使用道具 举报

9

主题

35

帖子

155

积分

注册会员

Rank: 2

积分
155
6#
 楼主| 发表于 2017-5-31 15:55:12 | 显示全部楼层
这个问题是和http://www.51ele.net/forum.php?mod=viewthread&tid=1872&extra=
* ^9 d, s0 A& S这个问题相关的,因为arm和dsp之间暂时没有找到快速响应的方法,只能在dsp端开辟大缓存暂存数据,以达到快速响应的目的。7 J8 M$ }* Z, r- I  l. F) H
share目录下的bld文件可以删除吗(删除了,工程会编译报找不到这个文件),好像修改这个文件又是没有用处的,只有修改平台文件才有效8 p+ R& w0 o- [1 S  n
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-4 09:01 , Processed in 0.038860 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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