cc2430 DMA及IRQMASK问题解析

本文介绍了DMA直接内存存取的原理及其在嵌入式系统中的重要性。通过一个实验展示如何使用DMA将字符串从源地址传输到目标地址,并分析了cc2430中DMA的IRQMASK配置问题。尽管设置IRQMASK为1应该屏蔽中断,但实测发现中断仍然发生,经查阅手册得知,即使IRQMASK置位,中断信号也会产生,这可能是因为设计考虑使程序能够继续执行。
摘要由CSDN通过智能技术生成

    DMA即direct memory access的缩写,即“直接内存存取”。它有什么用呢?它可以不通过cpu来将一个储存空间的数据转移到另一个储存空间,从而大大的降低了系统的负担,让cpu可以执行其他的操作。这对于嵌入式系统来说是很重要的。

    这个实验就是要将一个存在sorcestring[]中的字符串“this is a test string used to demonstrate DMA transfer”通过DMA传到deststring[]中去。

  

    主函数如下:

void main(void){
   DMA_DESC dmaChannel;//配置结构体
   char     sourceString[] = "This is a test string used to demonstrate DMA transfer.";//源字符
   char     destString[ sizeof(sourceString) ];//目的字符串的大小与源字符串相同
   INT8     i;
   INT8     errors = 0;

   initDma();//初始化DMA

   //Clearing the destination
   memset(destString, 0, sizeof(destString) );//目的字符串清零

     // Setting up the DMA channel.
   SET_WORD(dmaChannel.SRCADDRH, dmaChannel.SRCADDRL,   &sourceString); // 读取源字符串的地址

   SET_WORD(dmaChannel.DESTADDRH, dmaChannel.DESTADDRL, &destString);   //目的字符串的地址

   SET

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值