Description
Hello,
Thanks for the tutorial!
I was testing out the project and compiling using macports arm-none-eabi does not generate *.out files. In the Makefile the nano.specs seemed to be the offender. As the linker complained about not being able to find -lc_nano.
This solved my problem.
--- Makefile.orig 2021-03-18 15:21:20.000000000 -0300
+++ Makefile 2021-03-18 15:23:17.000000000 -0300
@@ -60,7 +60,7 @@
LDFLAGS += -T$(LINKER_SCRIPT)
LDFLAGS += -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard
-LDFLAGS += -specs=nano.specs -specs=nosys.specs -lc -lm -lnosys
+LDFLAGS += -specs=nosys.specs -lc -lm -lnosys
LDFLAGS += -Wl,--gc-sections
Another issue was using an outdated GNU make. gmake v3.81 did not like the #define, where v4.3 worked as expected. FYI, I am on MacOS High Sierra. Otherwise I had to copy the contents of the define do-link into the build/%out: build/%.o
section.
I was following your example trying to learn to use the DMA on top of Zephyr (avoiding their DMA+ADC drivers as custom options are needed for an ADC project. I could could get the DMA to initiate interrupts, but no data was ever copied from the peripheral to memory, as in your ex2.c.
I tried to simplify life by troubleshooting and just did straight memory to memory, but again, I see successful transmission interrupts occurring, but no data is ever copied from DMA2_Stream0->PAR
to DMA2_Stream0->M0AR
, whether it is a variable, array etc... Even if I initialize the destination array, it never changes, even though there was data in the source array or in ADC1->DR. Have you ever seen a situation where that occurs?
PS, thanks again for the nice tutorial!