mirror of https://github.com/g4klx/MMDVM.git
89 lines
4.9 KiB
Plaintext
89 lines
4.9 KiB
Plaintext
In order to build MMDVM, you need to tell the Arduino GUI to link with the
|
|
CMSIS DSP library, which is doesn't do by default.
|
|
|
|
My development is on Windows and so I can vouch for the following instructions.
|
|
|
|
For Arduino 1.6.3 with SAM 1.6.4
|
|
--------------------------------
|
|
|
|
1. Go to the where the platform.txt file is located. On my Windows machine it's
|
|
in:
|
|
|
|
C:\Users\Jonathan\AppData\Roaming\Arduino15\packages\arduino\hardware\sam\1.6.4
|
|
|
|
On Mac OS X it's located in:
|
|
|
|
/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/sam
|
|
|
|
2. You'll need to open the file in a text editor and find the line:
|
|
|
|
## Combine gc-sections, archives, and objects
|
|
recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" {compiler.c.elf.flags} -mcpu={build.mcu} "-T{build.variant.path}/{build.ldscript}" "-Wl,-Map,{build.path}/{build.project_name}.map" {compiler.c.elf.extra_flags} -o "{build.path}/{build.project_name}.elf" "-L{build.path}" -mthumb -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--entry=Reset_Handler -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align -Wl,--warn-unresolved-symbols -Wl,--start-group "{build.path}/syscalls_sam3.c.o" {object_files} "{build.variant.path}/{build.variant_system_lib}" "{build.path}/{archive_file}" -Wl,--end-group -lm -gcc
|
|
|
|
In my version it's line 73.
|
|
|
|
3. Modify it to read as follows:
|
|
|
|
## Combine gc-sections, archives, and objects
|
|
recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" {compiler.c.elf.flags} -mcpu={build.mcu} "-T{build.variant.path}/{build.ldscript}" "-Wl,-Map,{build.path}/{build.project_name}.map" {compiler.c.elf.extra_flags} -o "{build.path}/{build.project_name}.elf" "-L{build.path}" -mthumb -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--entry=Reset_Handler -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align -Wl,--warn-unresolved-symbols -Wl,--start-group "{build.path}/syscalls_sam3.c.o" {object_files} "{build.variant.path}/{build.variant_system_lib}" "{build.system.path}/CMSIS/CMSIS/Lib/ARM/arm_cortexM3l_math.lib" "{build.path}/{archive_file}" -Wl,--end-group -lm -gcc
|
|
|
|
The change is near the end, and is the addition of:
|
|
|
|
"{build.system.path}/CMSIS/CMSIS/Lib/ARM/arm_cortexM3l_math.lib"
|
|
|
|
Which is the CMSIS AMR3 DSP library for little-endian operation.
|
|
|
|
4. Save the file and start up the Arduino GUI and build MMDVM.
|
|
|
|
I would like to get instructions for doing the same on a Linux platform. As a
|
|
starter find the relevent platform.txt and try adding:
|
|
|
|
"{build.system.path}/CMSIS/CMSIS/Lib/ARM/libarm_cortexM3l_math.a"
|
|
|
|
or maybe:
|
|
|
|
"{build.variant.path}/libarm_cortexM3l_math.a"
|
|
|
|
For Arduino 1.6.7 with SAM 1.6.6
|
|
--------------------------------
|
|
|
|
1. Go to the where the platform.txt file is located. On my Windows machine it's
|
|
in:
|
|
|
|
C:\Users\Jonathan\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.6
|
|
|
|
On Mac OS X it's located in:
|
|
|
|
/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/sam
|
|
|
|
2. You'll need to open the file in a text editor and find the line:
|
|
|
|
|
|
## Combine gc-sections, archives, and objects
|
|
recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" -mcpu={build.mcu} -mthumb {compiler.c.elf.flags} "-T{build.variant.path}/{build.ldscript}" "-Wl,-Map,{build.path}/{build.project_name}.map" {compiler.c.elf.extra_flags} -o "{build.path}/{build.project_name}.elf" "-L{build.path}" -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--entry=Reset_Handler -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align -Wl,--start-group "{build.path}/core/syscalls_sam3.c.o" {object_files} "{build.variant.path}/{build.variant_system_lib}" "{build.path}/{archive_file}" -Wl,--end-group -lm -gcc
|
|
|
|
In my version it's line 73.
|
|
|
|
3. Modify it to read as follows:
|
|
|
|
|
|
## Combine gc-sections, archives, and objects
|
|
recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" -mcpu={build.mcu} -mthumb {compiler.c.elf.flags} "-T{build.variant.path}/{build.ldscript}" "-Wl,-Map,{build.path}/{build.project_name}.map" {compiler.c.elf.extra_flags} -o "{build.path}/{build.project_name}.elf" "-L{build.path}" -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--entry=Reset_Handler -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align -Wl,--start-group "{build.path}/core/syscalls_sam3.c.o" {object_files} "{build.variant.path}/{build.variant_system_lib}" "{build.system.path}/CMSIS/CMSIS/Lib/ARM/arm_cortexM3l_math.lib" "{build.path}/{archive_file}" -Wl,--end-group -lm -gcc
|
|
|
|
The change is near the end, and is the addition of:
|
|
|
|
"{build.system.path}/CMSIS/CMSIS/Lib/ARM/arm_cortexM3l_math.lib"
|
|
|
|
Which is the CMSIS AMR3 DSP library for little-endian operation.
|
|
|
|
4. Save the file and start up the Arduino GUI and build MMDVM.
|
|
|
|
I would like to get instructions for doing the same on a Linux platform. As a
|
|
starter find the relevent platform.txt and try adding:
|
|
|
|
"{build.system.path}/CMSIS/CMSIS/Lib/ARM/libarm_cortexM3l_math.a"
|
|
|
|
or maybe:
|
|
|
|
"{build.variant.path}/libarm_cortexM3l_math.a"
|