01 #include <stdio.h>
02 #include <string.h>
03 #include "system.h"
04 #include "sys/alt_dma.h"
05 #include "unistd.h"
06
07 int main(void)
08 {/*
09 alt_dma_rxchan rx;
10 //创建DMA接收信道
11 rx = alt_dma_rxchan_open("/dev/dma_0");
12 //当信道创建成功
13 if(rx != NULL)
14 {
15 printf("Dma transition start.");
16 while(1)
17 {
18 //设置DMA传输的数据位宽 本例中为8位
19 alt_dma_rxchan_ioctl(rx,ALT_DMA_SET_MODE_8,NULL);
20 //指定从uart接收数据
21 alt_dma_rxchan_ioctl(rx,ALT_DMA_RX_ONLY_ON,(void*)UART_0_BASE);
22
23 //提交DMA接收请求 指定接收数据的位置(sdram)以及传输数据量
24 if(alt_dma_rxchan_prepare(rx,
25 SDRAM_0_BASE,
26 1024,
27 NULL,
28 NULL) < 0)
29 {
30 printf ("Error: failed to post receive request\n");
31 }
32 //关闭DMA接收信道
33 alt_dma_rxchan_close(rx);
34 usleep(1000000);
35 }
36 }
37
38 */
39 alt_dma_txchan tx;
40 tx = alt_dma_txchan_open("/dev/dma_1");
41 if(tx != NULL)
42 {
43 printf("Dma transition start.");
44 while(1)
45 {
46 alt_dma_txchan_ioctl(tx,ALT_DMA_SET_MODE_8,NULL);
47 alt_dma_txchan_ioctl(tx,ALT_DMA_TX_ONLY_ON,(void*)(UART_0_BASE+2));
48
49 //注意是UART_0_BASE+2,因为UART的txdata寄存器在rxdata之后,偏移量为一个rxdata的长度(16位,2个字节)
50 if(alt_dma_txchan_send(tx,
51 SDRAM_0_BASE,
52 1024,
53 NULL,
54 (void*) NULL) < 0)
55 {
56 printf ("Error: failed to post transmit request\n");
57 }
58 //关闭DMA发送信道
59 alt_dma_txchan_close(tx);
60 usleep(1000000);
61 }
62 }
63 return 0;
64 }

局外狗
- 粉丝: 94
最新资源
- 电子商务环境下基于ISO27001的企业信息安全管理体系研究.doc
- 2022年WebGIS课程期末考试复习资料.docx
- 项目管理的几点个人体会.docx
- 网络对青少年学生身心健康成长的影响及对策研究样本.doc
- 基于的模拟电子钟单片机课程设计.docx
- (源码)基于Spring Boot和Vue的贪吃蛇对战平台.zip
- 软件系统运维手册.docx
- 如何构建网络环境下的计算机信息安全体系.doc
- 国家开放大学电大《网络营销与策划》机考第二套标准试题及答案.docx
- 计算机图形学实验指导书.doc
- 银行网络安全建设方案书样本.doc
- 巧用Excel确定内含报酬率.doc
- 歌唱比赛评分系统设计(C语言完整版).doc
- 基于网络平台的教育管理流程简介.ppt
- (源码)基于Arduino的LXARDOSCOPE示波器软件.zip
- 健康网络专题知识讲座.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈


