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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

3

主题

8

帖子

164

积分

注册会员

Rank: 2

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

5 g7 j& @) k% `4 v" O7 F  J    用的创龙TL138-A3开发板,裸机,例程是EDMA3。2 |: O/ H. s/ C! ^2 U& W

% s. E5 C6 w1 [  v! i3 n& O0 X    例程中可以看到数据的传输,但是貌似没有找到在哪里配置的SRC和DST。 # |. @+ [' n/ S0 l
! R% {  L9 m% {3 R  P
    看了工程编译后的map文件,发现编译完后就已经分配好了,如下:
( R9 a1 |6 \" h; P.bss       0    c000c500    000002ec     UNINITIALIZED+ U9 i) D! u* ^' j6 a
                  c000c500    00000194     system_config.lib : interrupt.obj (.bss:fnRAMVectors)
7 z6 R9 P/ i3 W! m; q7 ^8 M                  c000c694    00000080     (.common:cb_Fxn)5 n- @* a! `9 H5 f
                  c000c714    00000064     (.common:_dstBuff)
/ V, \' O/ }2 ?. I$ h                  c000c778    00000064     (.common:_srcBuff)
; f; y3 |, X- F+ ]4 p( _- T+ U                  c000c7dc    00000004     (.common:dstBuff)4 {+ c5 A7 N# z
                  c000c7e0    00000004     (.common:irqRaised)
) e! j' E8 ^' q2 H                  c000c7e4    00000004     (.common:regionId)
! j0 k7 m4 f1 g9 O- Y                  c000c7e8    00000004     (.common:srcBuff)
8 z" k1 m7 B3 r; t6 M
% v- _1 Q7 H3 \1 n3 S) x" p$ _' }
+ M9 d- @! @7 I" G8 }0 ^% i     如果我想人为的设置源地址和目的地址应该怎么做?- s( Z  h: y) k9 i
  - Q1 v* F, r& W
    .init:{system_config.lib<init.obj> (.text)} > 0xC0000000# w6 w7 I: k8 r3 {, m( @& T& {& ~
    .bss                >  DDR2   RUN_START(bss_start), RUN_END(bss_end)
4 F% r% [7 H4 k0 @; _    .far                        >  DDR2$ q* N1 K$ Q! Q( A8 q" ~& a7 x

* Q& [7 t2 N& Q' t/ b    还有一个问题就是想请问一下cmd文件中.bss里在DDR2后面的RUN_START(bss_start), RUN_END(bss_end)是什么意思?   
5 ~  @. P2 e4 Z; v# ?/ b3 N6 l# P0 `9 g  M, c& e+ q3 k  B
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

3

主题

852

帖子

3538

积分

创龙

Rank: 8Rank: 8

积分
3538
推荐
发表于 2016-9-29 09:42:18 | 只看该作者
默认的自动分配地址,你想人为的设置源地址和目的地址,在定义时指定地址就好
% G+ ]! C& w8 z/ w, B# o( Gvolatile char   _srcBuff[MAX_BUFFER_SIZE];
' y9 |7 X/ o( z+ K1 F" `" {volatile char   _dstBuff[MAX_BUFFER_SIZE];
2 I# z& d1 ]" d- R9 a' _# G# d& v/ u! E$ ?
volatile char *srcBuff;
+ S( q; r3 Y. \! ^1 Rvolatile 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,
& ^5 T# x( X8 W; h- J地址在定义时如何具体指定?
1 M. Y8 N3 R. D) `3 C+ s我这样写是错的。。。" _7 M- |+ v' s0 ]+ l
volatile char   _srcBuff[MAX_BUFFER_SIZE] = (char*)0xc000c878;
' w8 L! P7 y  y/ ~/ ]$ p, _' y% i" `& g; z+ E- n- }
回复 支持 反对

使用道具 举报

0

主题

10

帖子

58

积分

QQ游客

积分
58
5#
发表于 2016-9-29 14:18:16 | 只看该作者
如果数组地址的话,可以用#pragma DATA_SECTION来指定 ,放到CMD中定义的字段中。) w6 f1 s( N4 g9 L9 _2 ~3 q. h! ]
如果是配置EDMA的目的和原地址 在EMDA 参数RAM里面配置。
回复 支持 反对

使用道具 举报

3

主题

8

帖子

164

积分

注册会员

Rank: 2

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

RE: liyulin

4 q; `6 m6 }# d3 P1 c) O% _$ {. }- q
* ?! T0 O- O8 M
     嗯,我刚才试了一下,用#pragma DATA_SECTION,然后在cmd文件中来指定数组地址是可以实现的。
6 ^' k9 ?+ K# s1 b. a4 c8 F* \   ) G3 N" m+ k0 K9 P0 f% R
     然而我真正的意图是你说的第二种,我看了参数RAM的配置,程序如下:
3 H! ?9 G7 Y* I+ G7 r$ g6 d        
3 ^3 T; k: g. h6 [& d        // 给参数 RAM 赋值7 Q" \$ U; l% `, R) F. q. E
        paramSet.srcAddr    = (unsigned int)(srcBuff);
8 m/ h, K9 Z! P% j6 `" a$ M4 v; z        paramSet.destAddr   = (unsigned int)(dstBuff);
( q" j( ~, w/ Q/ v* B0 h   
/ L+ r& {6 o' l$ g        paramSet.aCnt = (unsigned short)acnt;
( L" F% t' [% e" U; {. F. @! A        paramSet.bCnt = (unsigned short)bcnt;0 P7 b* ]8 c  s! W* a! z
        paramSet.cCnt = (unsigned short)ccnt;5 d' E) ^, V, G3 Z% q7 P
- k( j- T2 p* x4 X4 v* x! J) x, G

: j+ r2 f* [- L2 i; _        // 设置 SRC / DES 索引
$ |3 x/ m! Y; L4 X# y- \4 ~8 l        paramSet.srcBIdx = (short)acnt;* i$ P+ e, T" i* m& z
        paramSet.destBIdx = (short)acnt;
4 U5 L. F1 p0 s! D5 M8 `$ R$ x+ i
  ( ]6 r% V1 P! u( k6 I! C. o% e0 ^
      还没想好在这里怎么人为的把地址给srcAddr和destAddr
5 l0 l" h2 b  C+ Z
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-17 23:21 , Processed in 0.039811 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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