Hi,
I'm working on SoC with ARM Cortex A9 processor and a CoreLink DMA-330 IP. The DMA controller has its own assembly instructions. My question is: How do I compile this DMA specific instruction set? DO I simply use the ARM Compiler (6) or do I need an extra tool for this?
Thanks
Hello, as a possible variant:
follow to https://lwn.net/Articles/380310/ as example: pl330_dmago() ;there are loads instruction in hex directly to DBGINST0 register.
Ch 4.3 Instructions of https://static.docs.arm.com/ddi0424/d/DDI0424D_dma330_r1p2_trm.pdf have a instructions encoding
https://developer.arm.com/docs/dai0239/latest/example-programs-for-the-corelink-dma-controller-dma-330-application-note-239
" A software driver instructs the DMAC to start execution of a DMA channel program by using one of the APB interfaces to inject a DMAGO instruction. The driver must poll the DMAC to ensure that a channel is idle before it attempts to inject a DMAGO for that channel "
How to inject https://developer.arm.com/docs/ddi0424/b/functional-overview/using-the-apb-slave-interfaces :
"
issue an instruction for the DMAC to execute by programming the following debug registers:
DBGCMD Register, see Debug Command Register
DBGINST0 Register, see Debug Instruction-0 Register
DBGINST1 Register, see Debug Instruction-1 Register.
As I say above directly via register.
Hi Bulat,
thanks for the quick response. It's all I need to know.