5 Replies Latest reply on Jun 26, 2014 2:35 AM by SpiderKenny

    DMA in Galileo?

    AK51

      Hi,

       

      My project has a hardware interrupt and then the Galileo records the analog signal into a dual buffer. I need the DMA for that. Does anyone know if there is any DMA library? I can get the HWI working fine but I can't find the DMA on the internet. Thanks

        • 1. Re: DMA in Galileo?
          Intel_Jesus

          Hi AK51,

           

          Take a look at the Intel® Quark Datasheet, there are multiple topics about DMA. UART Controller with DMA, Remote Management Unit DMA, SPI DMA Block, etc. Is this what you are looking for?

           

          Regards,

          Intel_Jesus

          • 2. Re: DMA in Galileo?
            AK51

            Hi,

             

            Thanks. I'm looking at the datasheet

            file:///C:/Documents%20and%20Settings/etc/My%20Documents/Downloads/329676_QuarkDatasheet.pdf

            It is 920 page... How can I set the bits in Ardunio? Do I need another IDE?

             

            Is there any simple API I can just call it? Any sample code?

            I know Arduino Due has DMA, I thought Galileo should have it... :<

            • 3. Re: DMA in Galileo?
              AK51

              Hi,

               

              Here is what I need

              Wait for Hardware interrupt

              start recording analog data and store in Buffer A.

              Use Buffer B data and do lots of calculation.

              and repeat

               

              Thanks

              • 4. Re: DMA in Galileo?
                Intel_Jesus

                Hi AK51,

                 

                Hardware interrupt is not supported on Galileo.

                 

                Regards,

                Intel_Jesus

                • 5. Re: DMA in Galileo?
                  SpiderKenny

                  Although HW Interrupt is not supported, i'm pretty sure you can do buffered continuous ADC capture though.

                  You'd need to do this though the system file system either in a native linux app, or through use of the System(...) calls in Arduino.

                   

                  It is an area that I am looking into as well, so I'll be doing a bit of digging soon and will let you know what I find.

                   

                  The basics of it are like this:

                  You configure the ADC buffer size, capture mode, triggers etc via the file system, and the ADC fills a file with the captures. It continues to capture while you work on the contents of the buffer.

                  A google for ADC on Linux embedded will probably throw up some good stuff.