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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

3

主题

8

帖子

164

积分

注册会员

Rank: 2

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

  V! z' E- G5 @- s' W! B4 t    用的创龙TL138-A3开发板,裸机,例程是EDMA3。
% t' k- R/ b6 C+ Y* ?) e
, M5 @6 C7 S; D7 a- y7 x    例程中可以看到数据的传输,但是貌似没有找到在哪里配置的SRC和DST。 / F2 N0 d( B& Z: l: q; f' w" h: }

2 Y# Z! R0 l3 n9 B# R4 d+ F: u6 a    看了工程编译后的map文件,发现编译完后就已经分配好了,如下:
1 q; M8 s3 E  l6 Z.bss       0    c000c500    000002ec     UNINITIALIZED
6 m- Y: u0 O% p# X# n( f9 G                  c000c500    00000194     system_config.lib : interrupt.obj (.bss:fnRAMVectors)) [' c! Y8 G- I! e! E, @& j' y$ m
                  c000c694    00000080     (.common:cb_Fxn)
0 F2 ^9 H$ n. ~1 e. W                  c000c714    00000064     (.common:_dstBuff)" H5 f; v) n4 M% F
                  c000c778    00000064     (.common:_srcBuff)2 D3 e9 ]) O# d' [* W/ A: x6 {  ^3 a
                  c000c7dc    00000004     (.common:dstBuff)5 ]. l. t; q0 ~4 L0 f
                  c000c7e0    00000004     (.common:irqRaised)0 O7 w& ~8 r+ _2 s* M# s
                  c000c7e4    00000004     (.common:regionId)8 O4 \% J; H' W, F( t
                  c000c7e8    00000004     (.common:srcBuff)
+ A0 t$ ~6 D+ D* P% y8 m! w5 n* X: Z* F) _' Q0 {1 [$ r

. x8 o# a1 L( M$ o" O: N' Q" ^     如果我想人为的设置源地址和目的地址应该怎么做?6 A" e2 y( `/ c8 x3 B
  
4 q8 M8 a5 f! H  d6 ?$ \; {    .init:{system_config.lib<init.obj> (.text)} > 0xC0000000
. }8 J* q- \2 \8 E: z7 M* [6 g) W' d    .bss                >  DDR2   RUN_START(bss_start), RUN_END(bss_end)
/ m! H' a; Z! }# z2 j- P4 V- P4 \  k    .far                        >  DDR2
  m! ]+ x- S4 Q, q" F3 _  X/ r0 v! i" @5 o) w' g
    还有一个问题就是想请问一下cmd文件中.bss里在DDR2后面的RUN_START(bss_start), RUN_END(bss_end)是什么意思?   
0 t$ b) L4 o, H8 u9 V
( ?2 Q4 ^; z% b5 k" L4 b  N
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

3

主题

852

帖子

3538

积分

创龙

Rank: 8Rank: 8

积分
3538
推荐
发表于 2016-9-29 09:42:18 | 只看该作者
默认的自动分配地址,你想人为的设置源地址和目的地址,在定义时指定地址就好
5 J( f5 N# p# Fvolatile char   _srcBuff[MAX_BUFFER_SIZE];+ v0 E% s. `: ?0 M* B* Y4 l
volatile char   _dstBuff[MAX_BUFFER_SIZE];  o  \" @; p) x: N  N

$ q# g* J* {5 n' |5 P5 i* @5 Lvolatile char *srcBuff;
3 s% Z; B4 |, o; c, xvolatile 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,
. j4 o" T+ W7 h2 z* \地址在定义时如何具体指定?
: ^+ ^8 T/ H, l8 |, J) B- {我这样写是错的。。。/ E( W- f" n+ q- u
volatile char   _srcBuff[MAX_BUFFER_SIZE] = (char*)0xc000c878;4 X9 [/ n0 d; j) ~$ U; B/ l

/ O+ @0 \4 ]& G
回复 支持 反对

使用道具 举报

0

主题

10

帖子

58

积分

QQ游客

积分
58
5#
发表于 2016-9-29 14:18:16 | 只看该作者
如果数组地址的话,可以用#pragma DATA_SECTION来指定 ,放到CMD中定义的字段中。  f2 ?$ d5 P. s& E1 l
如果是配置EDMA的目的和原地址 在EMDA 参数RAM里面配置。
回复 支持 反对

使用道具 举报

3

主题

8

帖子

164

积分

注册会员

Rank: 2

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

RE: liyulin

2 G  |. }0 y/ T+ \6 o5 c" p& Z' k

! k$ w7 E, X- c+ r6 [% b     嗯,我刚才试了一下,用#pragma DATA_SECTION,然后在cmd文件中来指定数组地址是可以实现的。) V% R# I+ F1 u: R9 L- d
   
6 g; j8 s5 c( w: {; O& A     然而我真正的意图是你说的第二种,我看了参数RAM的配置,程序如下:; C6 f% r* p, S1 A
        
8 b3 s7 n* f: ?# b        // 给参数 RAM 赋值
3 l$ t# p5 K  N0 r        paramSet.srcAddr    = (unsigned int)(srcBuff);' ?, F: F* }2 ~% @$ m! E8 {
        paramSet.destAddr   = (unsigned int)(dstBuff);" K2 @" n9 y. z* W9 s. V5 K( q
   
+ W( G" I- w* y        paramSet.aCnt = (unsigned short)acnt;( n5 s& y+ t& e
        paramSet.bCnt = (unsigned short)bcnt;+ G! m6 y1 x8 b6 p1 ^3 n
        paramSet.cCnt = (unsigned short)ccnt;% r* x& T) U4 v& C
5 w( V* N" [- N8 T6 C
/ ?4 ?1 j: O: M$ ?$ m
        // 设置 SRC / DES 索引
+ a8 q6 f. z1 @3 [. C+ {& S+ F        paramSet.srcBIdx = (short)acnt;
# p6 z7 u% a9 ~4 R! ?: L6 v        paramSet.destBIdx = (short)acnt;
1 b: `: s' W4 T/ }0 Z$ x2 N
) D' y6 e4 T0 C6 I/ t8 H: k5 k  
: a( y3 E& r9 e- r+ F- V      还没想好在这里怎么人为的把地址给srcAddr和destAddr8 L" t% }+ g- q# ?1 v* s/ f
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-17 16:42 , Processed in 0.045632 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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