Skip to content

Compiling using macports arm-none-eabi-gcc v9.2.0_1 #1

Open
@ddkn

Description

@ddkn

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!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions