Skip to main content
T J
Senior III
December 30, 2016
Solved

Where can I find the Register descriptions for the ARMv6-M / Cortex M0 processor ?

  • December 30, 2016
  • 4 replies
  • 939 views
Posted on December 30, 2016 at 02:30

Cortex M0 is an ARMv6-M processor. (using an '091 with CubeMX 4.18, Keil uV5 )

I am trying to initialise the DMA Circular buffer configuration

I cannot find an implementation of the Circular buffer.

in the examples,

 Uart two boards_COMDMA

 EvalUartHyperterminalDMA

both use NORMAL mode. 

  hdma_tx.Init.Mode                = DMA_NORMAL;

???

    This topic has been closed for replies.
    Best answer by Tesla DeLorean
    Posted on December 30, 2016 at 09:03

    ARM has Technical Reference Manuals for the core, the peripherals including DMA are not in the core.

    ST has a Reference Manual for each STM32 model. Circular DMA is a bit that causes it to reinitialize itself at the TC event. Use HT and TC interrupts to manage the currently inactive half of the buffer.

    4 replies

    Tesla DeLorean
    Tesla DeLoreanBest answer
    Guru
    December 30, 2016
    Posted on December 30, 2016 at 09:03

    ARM has Technical Reference Manuals for the core, the peripherals including DMA are not in the core.

    ST has a Reference Manual for each STM32 model. Circular DMA is a bit that causes it to reinitialize itself at the TC event. Use HT and TC interrupts to manage the currently inactive half of the buffer.

    Tips, Buy me a coffee, or three.. PayPal Venmo (See Profile) Up vote any posts that you find helpful, it shows what's working..
    T J
    T JAuthor
    Senior III
    December 30, 2016
    Posted on December 31, 2016 at 00:25

    Thanks Clive,

    can you point me to a document that describes the CIRCULAR buffer function, flags and control method ?

    Tesla DeLorean
    Guru
    December 31, 2016
    Posted on December 31, 2016 at 02:15

     ,

     ,

    Not sure I can help you with HAL coding, I've posted quite a few examples of USART DMA

    These for the F4, but illustrative

     ,

     ,
    Tips, Buy me a coffee, or three.. PayPal Venmo (See Profile) Up vote any posts that you find helpful, it shows what's working..
    T J
    T JAuthor
    Senior III
    December 31, 2016
    Posted on December 31, 2016 at 02:47

    Thanks Clive, I have it all running now in NORMAL mode.

    :(

    but now, I cant declare putc.

    extern 'C' puts works perfectly, but

    extern 'C' putc wont compile

    I am now using putcU1 to inject the single char into the DMA buffer

    I guess I need to learn how to initialise a stream and point to it.

    :(

    Would you have any links for guidance ?

    thanks to
    Andrei Chichak
    
    The peripherals are not a part of the ARM architecture. These are added by the manufacturers and vary wildly.
    You are probably looking for theSTM32F091 reference manual. Weighing in at 1004 pages:
    http://www.st.com/content/ccc/resource/technical/document/reference_manual/c2/f8/8a/f2/18/e6/43/96/DM000319pdf/files/…
     
    
    �?�?�?�?�?�?�?�?�?�?�?