- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
DMA 的实际工作原理是我所知道的理论;-- http://en.wikipedia.org/wiki/Direct_memory_access
但是在编程中我们必须如何管理它?
我正在使用 RPI 并期待使用 DMA 实现以下操作。
假设我想使用SPI从SD卡读取----TX读取数据---到USART。
我是否必须编写数据传输例程并将它们提供给 DMA,或者由 DMA tx 和 rx channel 处理?
使用什么 Linux 内部结构?
有专家可以告诉一下在这方面应该采取什么步骤吗?我是 DMA 编程新手。lin
最佳答案
您可以查看Raspberrypi SoC硬件规范。 http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf
Broadcom DMA 支持 SPI TX/RX 和 SD 主机接口(interface)。这意味着它至少可以支持设备到内存(我不确定broadcom SoC是否支持设备到设备DMA)。
不同的SoC有不同的DMA配置方式。例如,在一些简单的DMA引擎上只需要分配源地址、递增/递减(长度)、目标地址、递增/递减(长度)、计数器和中断。当完成一次 DMA 传输时,会触发一个中断。
粗略回顾Broadcom的SoC。它还有其他选项,例如:WAITS、PERMAP。我不是Broadcom SoC专家,也许你可以使用默认值来配置它。
关于LINUX -- DMA 用于数据传输 -- 从 SPI 读取 --- tx 到 usart - RPi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13679836/
我在通过 USART 接收数据时遇到了一些麻烦。我真正想要实现的是,我可以通过 USART 接收没有特定长度(只有最大可能长度)的命令。所以我使用中断例程来检查接收到的每个字符,但不知何故我仍然无法实
我有一个问题,我必须用 USART 按下我电脑上的键来控制 ATMEGA 1280 的 PWM。我可以使用 ASCII 键和控制 PWM 来控制它。问题是他们要求使用箭头键,现在问题是箭头键没有 AS
我目前正在开展一个项目,我们必须使用 AVR ATMEGA328 微 Controller (特别是 USART 外设)来控制 8 个 LED。我们必须向微 Controller 发送命令,以不同的速
我正在使用具有 16kb 闪存和 1kb Sram 的 AVR Controller atmega16。我已将数据存储在静态数组中,即 static char raw_data[15361]; 并尝试
我试图在同一个全局数组上发送 2 个不同的字符串,并通过 UART 传输 DMA,作为我的终端日志。然而,发生的情况是它发送了第一个字符串,无论我尝试什么(重新初始化整个 DMA 和 UART),它都
我有一个使用 tx 中断传输数据的 USART 类。现在我想创建一个使用 DMA 传输数据的变体。你想要什么: 使用继承来创建两个 USART 子类,例如ISRUSART 和 DMAUSART? 或
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 5 年前。 Improve this qu
我正在为 ARM Cortex M3 编程。我有在 USART 端口上运行的标准输出功能。我应该如何在我的 Windows 7 计算机上监控我的开发板通过 USART 发送的数据?我应该使用标准的“U
我正在尝试将 HC-05 与我的 STM32F3 DISCOVERY 结合使用,但我无法让 USART 正常工作。 无论我手动从 HC-05 读取数据还是使用中断,它都不起作用。 我尝试在 ardui
在 STM32F2 上使用两个以 115200 波特运行的 USART,一个用于与 radio 模块通信,一个用于从 PC 进行串行通信。时钟速度为 120MHz。 当同时从两个 USART 接收数据
我正在为内置 PIC18F25K80 的板编写一些库。现在我正在尝试对 UART 库进行编程,并且我已经尝试了所有方法,但在发送字符串时我无法使其工作。 我正在使用 XC8 编译器,并且库中有以下代码
我的 USART 正在从“黑匣子”接收一个字符串,该字符串包含两个 double 值和几个十六进制值。该字符串放置在我的缓冲区 rbuf.buf 中,总大小为 32 个字符。通常我会收到 19 个字符
使用下面的测试代码,我尝试使用 中的 simulator 通过 xmega128a3u 的 USART 发送数据Atmel Studio. 观察 I/O 查看数据寄存器从未设置,即使我正在设置它。是我
您好,我目前正在研究 USART 通信,试图从任何 GPIO 引脚传输和接收数据。 我成功地以任何波特率传输数据,但在接收时卡住了。 我一次能收到一个角色。引脚设置为使用 RX 引脚的外部下降沿中断。
我正在尝试使用 USART 通信接收和发送数据,我使用的是 atmega16。我在 PC 中创建了一个程序来将字符串发送到 micro,如果字符串匹配,micro 将激活 adc 并将 adc 数据发
我在尝试读取完整的字符串时遇到了一些问题和奇怪的行为。我正在使用配备 atxmega32a4u 的自制演示板,基本上我想做的是通过串行通信设置一个参数(输出电压设定点),而 MCU 做他的事情(控制降
这是我在 stm8l 中使用 usart 的代码。我面临的主要问题是,无论我为 USART_DR 寄存器分配什么值,它始终采用值 0xff 而不会随着我增加 char 变量而改变。只有 USART_S
我正在研究一个名为 TSL2301 的线扫描 ccd 传感器。我想通过 stm32f103 的 USART 读取像素,但我总是只能收到 0xFF,有人使用这个传感器来帮助我吗?我使用了 STM32f1
我使用带有 AVR Studio 5 的 EVK1105 开发板作为我的 AVR 项目的开发 IDE。我在其中使用 FreeRTOS。我在这个板上有 3 个 USART 端口。一个外部模块通过 USA
我是在 Atmel studio 环境中开发嵌入式系统的新手,我使用 Atxmega128a1 和 32MHz 系统时钟。我试图在每次定时器中断溢出(0.05s)时通过RS232模块向PC发送一些字符
我是一名优秀的程序员,十分优秀!