EDMA3中源地址和目的地址设置问题 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7152|回复: 5
打印 上一主题 下一主题

[已解决] EDMA3中源地址和目的地址设置问题

[复制链接]

3

主题

8

帖子

164

积分

注册会员

Rank: 2

积分
164
跳转到指定楼层
楼主
发表于 2016-9-27 08:47:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

# h  a5 C: _9 L) ~2 b/ x    用的创龙TL138-A3开发板,裸机,例程是EDMA3。
2 Q7 H+ s" i3 Z0 ]
- K9 g  _' [. V7 ?% g    例程中可以看到数据的传输,但是貌似没有找到在哪里配置的SRC和DST。
: P- M8 W( T0 {3 O. A1 G8 O# t6 V) k0 e! a; |! M
    看了工程编译后的map文件,发现编译完后就已经分配好了,如下:0 u7 G! U. U' D& m5 y
.bss       0    c000c500    000002ec     UNINITIALIZED
8 a7 F8 q# U& k                  c000c500    00000194     system_config.lib : interrupt.obj (.bss:fnRAMVectors)+ L' Q% n1 q& l& p4 G7 H: `# Z
                  c000c694    00000080     (.common:cb_Fxn)9 x, L. c9 c9 l5 T7 b
                  c000c714    00000064     (.common:_dstBuff)
) F2 H+ x6 ^3 D; ~/ D                  c000c778    00000064     (.common:_srcBuff)
% R/ l8 G! S  v                  c000c7dc    00000004     (.common:dstBuff)
" e  V/ P" F' w& O3 a5 t0 r5 x* w                  c000c7e0    00000004     (.common:irqRaised)
& g/ W+ ~& H! O: F% M1 j- j9 V0 P' c                  c000c7e4    00000004     (.common:regionId)1 K5 B) |/ u( y! x
                  c000c7e8    00000004     (.common:srcBuff)
. E. w, t3 \! y  T  y
8 Z; S3 a4 m! f7 ]& Z2 G0 v
7 b* R: h9 A, c/ J' q( c     如果我想人为的设置源地址和目的地址应该怎么做?* D+ C! M0 v% n) a9 A8 i+ d1 c
  : ]; `- _. I1 o
    .init:{system_config.lib<init.obj> (.text)} > 0xC00000004 m. g$ E/ j3 e  `9 O+ j$ d& c) `
    .bss                >  DDR2   RUN_START(bss_start), RUN_END(bss_end)
( O3 }7 W! H& k! ?) y3 t6 `8 P    .far                        >  DDR24 |. c+ \; U6 c3 j( [8 I0 `7 I0 U
1 `0 Z, X" J* J0 G3 i
    还有一个问题就是想请问一下cmd文件中.bss里在DDR2后面的RUN_START(bss_start), RUN_END(bss_end)是什么意思?   
# o: u* n/ S# R5 {+ O# j
# _% ?# T  p1 l
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

3

主题

852

帖子

3538

积分

创龙

Rank: 8Rank: 8

积分
3538
推荐
发表于 2016-9-29 09:42:18 | 只看该作者
默认的自动分配地址,你想人为的设置源地址和目的地址,在定义时指定地址就好
- m2 ~% G3 u& h8 evolatile char   _srcBuff[MAX_BUFFER_SIZE];
5 R: V7 x' [" Q6 D! _/ Tvolatile char   _dstBuff[MAX_BUFFER_SIZE];
1 Q& Y) N, B, I8 C
/ X, `8 b1 d# a3 m0 uvolatile char *srcBuff;( O+ G4 V' J  B. w  \6 N; R- b
volatile char *dstBuff;
回复 支持 1 反对 0

使用道具 举报

3

主题

852

帖子

3538

积分

创龙

Rank: 8Rank: 8

积分
3538
板凳
发表于 2016-9-29 10:17:45 | 只看该作者
CMD文件的相关介绍,请关注http://51dsp.net/forum.php?mod=v ... &extra=page%3D1
回复 支持 反对

使用道具 举报

3

主题

8

帖子

164

积分

注册会员

Rank: 2

积分
164
地板
 楼主| 发表于 2016-9-29 13:48:08 | 只看该作者

RE: human

请问human,
' k4 I" i, ~2 ]( n6 x& c8 g1 j+ {: U地址在定义时如何具体指定? + {) M' c: d4 f' f0 M  G
我这样写是错的。。。9 K% J1 O+ G% X5 ~# i. f
volatile char   _srcBuff[MAX_BUFFER_SIZE] = (char*)0xc000c878;- f2 P; m; a) X) I& b

3 W6 |/ n( W0 q. Y8 _
回复 支持 反对

使用道具 举报

0

主题

10

帖子

58

积分

QQ游客

积分
58
5#
发表于 2016-9-29 14:18:16 | 只看该作者
如果数组地址的话,可以用#pragma DATA_SECTION来指定 ,放到CMD中定义的字段中。5 m" b4 I; o; D
如果是配置EDMA的目的和原地址 在EMDA 参数RAM里面配置。
回复 支持 反对

使用道具 举报

3

主题

8

帖子

164

积分

注册会员

Rank: 2

积分
164
6#
 楼主| 发表于 2016-9-29 16:11:53 | 只看该作者

RE: liyulin


3 @( V0 p( ]4 a7 ]3 ^
! |$ E" o2 ~# ~. F1 \; p7 |     嗯,我刚才试了一下,用#pragma DATA_SECTION,然后在cmd文件中来指定数组地址是可以实现的。3 V' C! y& u2 q9 y; r$ A6 u
   7 y/ ^  Z9 \/ v1 f: I* _7 W
     然而我真正的意图是你说的第二种,我看了参数RAM的配置,程序如下:
" T+ C; Y( V" T. f( G  P        
( }9 Z) T5 b6 N( L# T, P' @        // 给参数 RAM 赋值0 A0 N1 ]/ T5 \
        paramSet.srcAddr    = (unsigned int)(srcBuff);
" L5 J# w" R( ?/ I* J  D! w& {2 k        paramSet.destAddr   = (unsigned int)(dstBuff);
6 i  g1 Z  i2 G! x! w      P. D$ _/ _; k- {7 R7 D; ?
        paramSet.aCnt = (unsigned short)acnt;
7 |4 y. x/ L% \+ g7 P* n9 l2 }        paramSet.bCnt = (unsigned short)bcnt;$ [" z/ G, |) E! J- e
        paramSet.cCnt = (unsigned short)ccnt;
! E) ^5 I" T! E4 _/ h1 H; f5 J; H% p1 j* G

9 V) U1 m  K4 L* T) P  Z- i; A        // 设置 SRC / DES 索引2 m' b  E* t7 o* k  Q" ^  I# @
        paramSet.srcBIdx = (short)acnt;
8 q) ^, W) \" h6 W4 S# a        paramSet.destBIdx = (short)acnt;. c; a# P0 r8 r9 C, m- C

3 b: A% m$ I( T- c' @, s) V  ! d; q9 w8 E. g) |) f( _; Q5 V2 ?
      还没想好在这里怎么人为的把地址给srcAddr和destAddr
" a5 ?7 y8 ~, p; K$ R0 p+ {, R
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-7 15:47 , Processed in 0.040851 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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