The Stack Overflow podcast is back! Listen to an interview with our new CEO.

New answers tagged


System Clock is clocked by AHB bus divided by 8. So simply divide the result by 8. Or better yet, when you currently multiply by 8000, multiply only by 1000.


This section from the datasheet is useful -


Ok, since you are unable to share more details. I'll give you some general points: the Scatter-gather functionality in the DMA module is going to save your bacon; Take time to understand how it works and how to use it. If you are worried about memory accesses, just go ahead and place your ping and pong buffers in different memories. Scatter-gather will ...


You can find this in the ARM AMBA 5 AHB Protocol Specification, section 3.5: Masters must not attempt to start an incrementing burst that crosses a 1KB address boundary. Note that in the AXI specification they changed this to a 4K boundary


Some reasons: printf uses _write and _read. You can write your own ones for example if you want to redirect output to SWO malloc & friends use _sbrk. Bur I would rather avoid dynamic allocation in the limited resources implementations. This version of _sbrk is very poor (it assumes that the stack is at the largest addresses and heap is just before etc ...


The LDR = trick is pseudo code. Assembly language is defined by the assembler, the program you run to read your file. No reason to assume any two assemblers define the same assembly language, usually they are pretty close but have differences. pseudo instruction/code like this is not necessarily something you would expect to be supported everywhere, it is ...


The assembler in Code Composer Studio does not use the "=" to indicate a literal operand to an LDR instruction. The gnu assembler does use the "=" but I don't know about other tools. However, you need additional directives to indicate that you are writing an ARM Thumb-2 function. There are other problems with your code, but we'll give you time to think ...

Top 50 recent answers are included