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 answers
Related Questions in ARM
- Jiobook flashing
- How to flush denormal numbers to zero for apple silicon?
- How to exploit Unified Memory in OpenCL with CL_MEM_ALLOC_HOST_PTR flag?
- ARM Assembly code is not executing in Vitis IDE
- Which version of ARM does the M1 chip run on?
- Vector by Scalar Division with -ffast-math
- Why veneer code generated by gcc for cortex-m0 seems 8-byte aligned?
- Getting almost random time stamp counter on ARM
- Portenta H7 Baremetal Development and a Little Guidance on Embedded System Learning Roadmap
- STM32 RTC3 Mixed Mode: Writing TR resets SSR
- Implementing Quick Sort Algorithm in Visual2 with armv7
- How can I create an Inline assembly command with a multi-variable register offset?
- Inquiry: ARM Compatibility for Puppeteer
- Confusion with thumb instructions while compiling recipe for cortexm4 CPU
- Difficulty understanding virtual LPIs in GICv3
Related Questions in EMBEDDED-LINUX
- Touch calibration error when using Avalonia UI with Raspberry PI 4 (lite) DRM Mode
- Can't ping to 8.8.8.8 and google.com in beaglebone black
- How to extract the .img file into normal kernel source file in the linux?
- Using C++ libgpiod to calculate interval and speed between events
- yocto bitbake 'python3 setup.py bdist_wheel ' execution failed
- How to reduce cached memory used by Linux kernel on embedded linux platform
- Unable to parse input tree, possibly due to dash
- How to add a button handler to GPIO pin through a push button
- Linux of_platform_depopulate() does not remove drivers
- Filling a sk_buff with content of recieved frame
- How to reduce reserved memory allocated by Linux kernel during boot time
- embedded linux buildroot how to work with axi-gpio?
- How do I know when the dsa_loop and dsa_loop_bdinfo linux kernel modules are working?
- buildroot for zedboard, how to enable axi-gpio in device tree?
- Driver is not loading when there 2 or more source files
Related Questions in DMA
- STM32 ADC DMA low raw/Voltage readings
- the end of the I/O operation is notified to the system by an interrupt.how much system time do the mentioned operations occupy?
- Use Nvidia as DMA devices is possible?
- Does the Direct Memory Access (DMA) interfere with the execution of user program execution?
- A breakpoint instruction (__debugbreak() statement or a similar call) was executed in p.exe
- How to use DMAMUX generated events to trigger another DMA request?
- How to use DMA memory to memory in stm32h723zgt6?
- Cache issue when creating shared memory between kernel space and user space
- DMA buf import into Vulkan
- stm32 cubeIDE DMA DAC noise on DAC output
- STM32F4 Serial Port Forwarding Architecture
- STM32 ADC: Continuous conversion (DMA) vs. discontinuous conversion accuracy
- AMD IOMMU IO_PAGE_FAULT
- T-Display-S3-long FreeRTOS Memory allocation fails while there is heap space available
- Arduino Pro Portenta H7 I2S and DMA
Related Questions in OMAP
- Linux kernel issue when booting from U-Boot on Cortex-A15 CPU QEMU
- Finding physical adresses of registers in memoryspace
- Select Wayland output for QT application
- How to recover a embedded CE mobile device bricked after OS update
- Can't read SDRAM of TI OMAP5912 ARM core using JTAG
- AM335x - i2c slave for linux kernel
- How to fix 'warning #1173-D: attribute "deprecated" ignored?'
- Why is code relocation done in U-boot proper?
- Kernel panic on linux-omap 4.3.0-rc5 on IGEPv2 board
- GPIO irq: Falling and Rising edge detection
- Stop MMC queue from fetching new requests when communication with card times out
- Why is UART TX interrupt not forwarded to GIC on OMAP4430
- fw_printenv fw_setenv on var-som-am33 is failing
- Additional static array breaks the DSP application on omapl138 target (ccs5.2)
- OpenGL ES 2.0 on SGX540 OpenGL Offscreen PIXMAP Support
Related Questions in PANDABOARD
- How to enable the Ethernet Interface on Pandaboard?
- What can I use to debug/trace step-by-step Freebsd kernel booting process on Pandaboard?
- Android kernel : How to create /dev/video0 before ueventd daemon gets started?
- L2 Cache lock down on Pandaboard (Cortex-A9)
- error: expected ‘,’ or ‘;’ before ‘__attribute_alloc_size__’
- UART4 with Pandaboard and Arch Linux
- can't connect panda-es to HDMI/DVI display
- Building Yocto on Pandaboard
- Yocto:Could not inherit file classes/autotools-brokensep.bbclass
- SPI1 on Pandaboard ES Rev. B2 with Kernel 3.17
- Boot partition is not created properly on SD card for pandabaord
- How to port Android kitkat on Panda board?
- Problems setting Eclipse IDE for cross-compiling for Arm based PandaBoard-ES
- How to detecting interrupt on a GPIO line in Embedded Linux?
- cross-compile from desktop ubuntu to Pandaboard ubuntu c++
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?
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)
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.