I want to know how exactly DMA works in the Pandaboard. I have read the TRM of OMPA4460 which is used in the Pandaboard that the DMA System can manage a total 128 requests at a time, on up to 32 logical channels, and 4 interrupt requests. When DMA is in progress, is there any chance that the CPU will be able to perform another task at a time?
Is the CPU blocked while multiple DMA transfers are in progress on OMAP 4460?
800 Views Asked by AudioBubble At
1
There are 1 best solutions below
Related Questions in ARM
- Why Device Tree Structure (DTS) file is needed both in bootloader and kernel source code?
- How can I use LD to place ARM reset vectors in a program segment
- Errors in makefile for qemu 0.14.1 in ubuntu 15.04 64 bit
- Text as parameter in inline assembly (ARM)?
- GSL: nm outputs "undefined Symbol (U)"
- How to address multiple definition compiler error
- Did anyone compiled GSL for androind?
- Linker Error on cross compiling Project in eclipse
- How to set privilaged mode in ARM Cortex-A8?
- Why is a write to a memory-mapped peripheral register not actioned (LPC43xx)?
- what's ARM TCM memory
- Traversing a string using arm assembly inside V8 source
- C Global declared in ISR
- Which is better? int8_t vs int32_t in 32 bits MCU
- Cannot find -lgtk-x11-2.0. Also, some modules are not found by cmake, though they are installed
Related Questions in EMBEDDED-LINUX
- How to offload NAPI poll function to workqueue
- Why Device Tree Structure (DTS) file is needed both in bootloader and kernel source code?
- Qtwebengine on Embedded linux, with qtwayland and OpenGL not working, black rectangles seen on browser
- board firmware update through uefi capsule feature from Linux
- How to get list of programs which can open a particular file extension in Linux?
- u-boot select boot partition based on GPIO state
- Bit Bang with SPI (fwirte, write performance)
- How to setup test SMTP server for devices on local network
- Documentation for regulator framework with device tree
- TechWell TW6869 driver does not generate interrupts on embedded device
- How to change tty group on Linux (build with buildroot)
- How to save console log from chrome in local file without any third party tool?
- Raw access on eMMC with alternating speeds
- Qt application randomly failing to properly paint the interface showing black screen instead
- Trouble implementing android_serialport_api into my own application
Related Questions in DMA
- STM32F4 Handling peripheral error while making a DMA Transfer (RX)
- disabling CONFIG_NET_DMA
- how is DMA-capable memory defined?
- Need Help to Develop Linux PCIe Driver using DMA Concept
- STM32F4 TIM6 interruption doesn't happen while DMA working
- Linux DMA from User Space Bus Error
- What does DMA Channel virtualization mean?
- What is the use of the DMA controller in a processor?
- C++: Using dynamic memory allocation to write a function similar to the C realloc() function (i.e. change it's size)
- Is there a way to read a file into memory using DMA in Linux?
- Direct Memory Access with JTAG in Trust Zone
- FAST DMA benefit from FPGA using threads in C++
- I'm looking for sample code to service the USCI (UART) on an MSP430 via DMA not interrupts
- UART DMA for varying sized arrays
- How to benchmark PCIe and DMA?
Related Questions in OMAP
- "Kernel panic" in loading and devtmpfs mounting error into craneboard(am3517_crane)
- OMAP 4430 Usage of Linux with DSP
- Deciphering CMake Errors
- Linux 3.8: omap serial driver : write data sliced in two = why?
- Connecting Android Development Board to Ubuntu 11.04
- Android FM Radio using OmapZoom source code Error
- Cross compiling Qt's OpenGL module for arm
- Virtual kernel memory layout: negative values
- Development EGL apps for Omap4 that use PowerVR
- Is the CPU blocked while multiple DMA transfers are in progress on OMAP 4460?
- How to enable Linux penguin logo on Android?
- GNU assembler Directives in X-Loader start.s
- Slow replot of a Qwt graph in embedded linux
- Ducati for OMAP5
- Why is code relocation done in U-boot proper?
Related Questions in PANDABOARD
- OMAP 4430 Usage of Linux with DSP
- Multiple cameras with Raspberry Pi
- How to install Arch linux on pandaboard
- reading and writing a register linux device driver
- Development EGL apps for Omap4 that use PowerVR
- How to add new QEMU machine types without modifying the mainline source code?
- Is the CPU blocked while multiple DMA transfers are in progress on OMAP 4460?
- Installing ROS on pcDuino (Lubuntu 12.04 ARM)
- Error compiling Qt embedded pandaboard: [.moc/release-shared-emb-arm/moc_qabstractanimation.cpp] Error 1
- Linux package cross-compilation
- using C++ opencv on ubuntu : cvCaptureFromAVI() doesn't work
- Android 4.0 on Panda Board - When Installing custom app --> missing shared library
- Problems setting Eclipse IDE for cross-compiling for Arm based PandaBoard-ES
- How to port Android kitkat on Panda board?
- Boot partition is not created properly on SD card for pandabaord
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
The purpose of DMA is to specifically transfer data between an I/O device and main memory. By design this is intended to relieve the CPU of performing this transfer, which is known as programmed I/O. Once the CPU has set up the DMA controller to perform this data transfer, the CPU is then free to execute instructions for any other purpose. So the answer is "yes, a 100% chance".
Since the PandaBoard's SoC has a DMA controller with multiple channels, then several I/O operations can be concurrently performed. The constraint on performance & throughput would be memory bandwidth. Note that modern CPUs tend to use less memory bandwidth (or use memory in a more bursty manner) because of instruction and data caches. Typically the CPU is given priority access to memory when both the CPU and DMA controller contend for memory.
Note that none of these characteristics are exclusive to the PandaBoard.