Skip to content

Compile to Teensy 3.0 on Windows using Makefile

Good Night,

If you don’t want to use Arduino IDE (Or Teensy IDE? 😉 to programming and uploading your code to Teensy 3.0 you can use Makefiles.

The last IDE version can be found on PJRC Forum . As he said in the Beta 10 version, there is an Makefile example on “arduino-1.0.3\hardware/teensy/cores/teensy3” but to use it you need to add the arm binaries to your system path. To do this, open your command prompt. Start – execute – cmd.

And then type:

PATH = %PATH%;C:\CAMINHO_PARA_O_ARDUINO\arduino-1.0.3\hardware\tools\arm-none-eabi\bin

[If you don’t want to know the modifications that I did, just jump to the end where you can find a resume]

To guarantee that I will not screw everything, I did a copy of “arduino-1.0.3\hardware/teensy/cores/teensy3” and did my modifications on it. I executed:

cs-make.exe

Receveid this error message:

C:\CAMINHO_PARA_O_ARDUINO\arduino-1.0.3\Projects\Example_not_working>cs-make.exe
C:/Users/X-warrior/Desktop/tools/arm-none-eabi/bin/arm-none-eabi-gcc -Wall -g -Os -mcpu=cortex-m4 -mthumb -nostdlib -MMD -DF_CPU=48000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH -I. -c -o analog.o analog.c
process_begin: CreateProcess(NULL, C:/Users/X-warrior/Desktop/tools/arm-none-eabi/bin/arm-none-eabi-gcc -Wall -g -Os -mcpu=cortex-m4 -mthumb -nostdlib -MMD -DF_CPU=48000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH -I. -c -o analog.o analog.c, …) failed.
make (e=2): The system cannot find the file specified.
cs-make.exe: *** [analog.o] Error 2

Checking the Makefile I decided to change some configs and used FULL PATH for it.
TOOLSPATH = C:\CAMINHO_PARA_O_ARDUINO\arduino-1.0.3\hardware\tools
COMPILERPATH = C:\CAMINHO_PARA_O_ARDUINO\arduino-1.0.3\hardware\tools\arm-none-eabi\bin

The error received was the same, so checking the code again I saw the “abspath” and thought that maybe the problem was this, since I changed my folder location. So I removed all “$(abspath” remember that it has a parenthesis that closes the command. So for example:

$(abspath $(COMPILERPATH)) will be $(COMPILERPATH)

Trying to get it working again with cs-make, it started compiling it, but on the end I received this error:

C:\Users\X-warrior\Desktop\arduino-1.0.3\hardware\tools\arm-none-eabi\bin/arm-none-eabi-objcopy -O ihex -R .eeprom main.elf main.hex
C:\Users\X-warrior\Desktop\arduino-1.0.3\hardware\tools/teensy_post_compile -file=main -path= -tools=C:\Users\X-warrior\Desktop\arduino-1.0.3\hardware\tools
Opening Teensy Loader…
Teensy Loader could not find the file main
cs-make.exe: *** [main.hex] Error 1

Triple checking the Makefile I found “path=$(shell pwd)” and I didn’t remember this pwm command on windows so I tried to execute it and it didn’t work. So I changed it to “path=$(shell echo %cd%)”. Before I start compiling again I decide to clean directory using cs-make clean

I received the following errors:

C:\Users\X-warrior\Desktop\arduino-1.0.3\Projects\Example_not_working>cs-make.exe clean
rm -f *.o *.d main.elf main.hex
process_begin: CreateProcess(NULL, rm -f *.o *.d main.elf main.hex, …) failed.
make (e=2): The system cannot find the file specified.
cs-make.exe: *** [clean] Error 2

And then I noticed that it was calling rm -f which isn’t a windows command too. I changed the rm command to:

del *.o
del *.d
del $(TARGET).elf
del $(TARGET).hex

With this I managed to clean the files and tried to compile again, and… IT WORKS! I did a few tests using main.cpp that was being compiled and uploaded to my Teensy 3. Anyways to work with all that files wasn’t attractive so I decided to go a little further and do some cleaning. So inside my “Project” folder I copied all files excluding Makefile and main.cpp to my new folder inside my project “teensy/”. This way I can compile it without all that files on my working folder. I needed to do a few more changes on Makefile as follow:

C_FILES := $(wildcard *.c) \
$(wildcard $(addprefix teensy/, *.c)) \
$(wildcard $(addprefix teensy/util, *.c)) \
$(wildcard $(addprefix teensy/avr, *.c))
CPP_FILES := $(wildcard *.cpp) \
$(wildcard $(addprefix teensy/, *.cpp)) \
$(wildcard $(addprefix teensy/util, *.cpp)) \
$(wildcard $(addprefix teensy/avr, *.cpp))
OBJS := $(C_FILES:.c=.o) $(CPP_FILES:.cpp=.o)

Linker configuration to:

LDFLAGS = -Os -Wl,–gc-sections -mcpu=cortex-m4 -mthumb -Tteensy/mk20dx128.ld

And to keep it consistent:

$(TARGET).elf: $(OBJS) teensy/mk20dx128.ld
$(CC) $(LDFLAGS) -o $@ $(OBJS)

And then I found this error:

teensy/keylayouts.c:1: fatal error: avr/pgmspace.h: No such file or directory
compilation terminated.
cs-make: *** [teensy/keylayouts.o] Error 1

So I updated the CPPFLAGS to:

CPPFLAGS = -Wall -g -Os -mcpu=cortex-m4 -mthumb -nostdlib -MMD $(OPTIONS) -I. -Iteensy/

And also remembered that the clean should be updated too.

clean:
del *.o
del *.d
del $(TARGET).elf
del $(TARGET).hex
del $(CURRENT_PATH)\teensy\*.o
del $(CURRENT_PATH)\teensy\*.d

And add this on the begin of “Configurations that shouldn’t be updated”

CURRENT_PATH=$(shell echo %cd%)

With all this I managed to get the Makefile working on Windows compiling and uploading for Teensy 3.0

Summary:
You must update TOOLSPATH , COMPILERPATH and use your FULL PATH
Then create a folder “My_Project”
Create another folder inside your project called “teensy” (My_Project/teensy/)
Copy “arduino-1.0.3\hardware/teensy/cores/teensy3/” to “My_Project/teensy/” (subdir too, but not the Makefile)
Add the Makefile that you can download on the end of this post inside “My_Project”
Copy “Meu_Projeto/teensy/main.cpp” too “Meu_Projeto/main.cpp”
Programm inside main.cpp
Compile and upload with cs-make.exe

Makefile to Teensy on Windows

Matheus

Published inCcppTeensywindows

761 Comments

  1. Инфузия — это не одна «сильная сыворотка», а набор целевых вмешательств. Мы восстанавливаем объём циркулирующей жидкости, корректируем электролиты, снижаем токсическую нагрузку на печень, мягко приглушаем тремор и тревогу, готовим нервную систему к ночи. Противорвотная поддержка и гастропротекция подключаются при необходимости, витаминные комплексы — по показаниям, кардиокоррекция — только после оценки рисков. Врач заранее проговаривает, какие ощущения допустимы (сонливость, умеренная слабость), а какие — повод для немедленного контакта. Цель — не «забить» симптом на час, а задать предсказуемую траекторию на дни, чтобы вернулись управляемость, аппетит и ровный сон. Когда вмешательства дозированы и понятны, пациент меньше «проверяет себя» нагрузками, а семья перестаёт «разгонять» тревогу разговорами — это повышает эффективность терапии без увеличения чека.
    Узнать больше – http://www.domen.ru

  2. После первичной диагностики начинается активная фаза медикаментозного вмешательства. Современные препараты вводятся капельничным методом, что позволяет быстро снизить уровень токсинов в крови и восстановить нормальные обменные процессы, стабилизируя работу печени, почек и сердечно-сосудистой системы.
    Подробнее – вывод из запоя на дому цена

  3. BrettEvodo BrettEvodo

    Для получения устойчивого результата наркологическая клиника использует методы, основанные на индивидуальной оценке. В работе учитываются соматические показатели, реакции нервной системы и данные лабораторных исследований. Такой формат лечения обеспечивает предсказуемое влияние на физиологические процессы и снижает вероятность осложнений. В клинике применяется непрерывный мониторинг, позволяющий своевременно корректировать лечебные меры. Работа направлена на нормализацию метаболизма, восстановление баланса внутренних систем и плавное уменьшение симптоматики.
    Ознакомиться с деталями – http://

  4. Danielheemi Danielheemi

    Часто предприниматели объединяют понятия тендер и госзакупки, так как обе процедуры связаны с конкурсным выбором поставщика. Однако между ними существуют определённые различия, которые важно понимать перед началом работы в этой сфере.
    Не упустите важные детали – https://tendernoe-soprovozhdenie-rostov-na-donu.ru

  5. Миссия клиники заключается в предоставлении качественной помощи людям, страдающим от различных зависимостей. Мы понимаем, что зависимость — это заболевание, требующее комплексного подхода. В “Клиника Наркологии и Психотерапии” мы стремимся создать атмосферу доверия, где каждый пациент может открыто говорить о своих проблемах, получая поддержку от опытных специалистов. Наша команда предлагает лечение, основанное на научных данных и современных методах, что позволяет достигать высоких результатов.
    Изучить вопрос глубже – http://alko-konsultaciya.ru

  6. BrianGag BrianGag

    В Химках много дворовых проездов и часов пик, из-за которых легко потерять драгоценное время. Мы согласуем удобные окна, нейтральные входы и «тихие» маршруты, чтобы помощь начиналась без пауз и лишних взглядов. Чем меньше социальных контактов и хаоса, тем ниже тревога и выше приверженность режиму — это не «сервис ради сервиса», а клинический инструмент, который напрямую влияет на исход.
    Подробнее тут – http://vyvod-iz-zapoya-himki9.ru

  7. Показана при обезвоживании, «скачущем» давлении и пульсе, угрозе судорог, упорной рвоте, эпизодах спутанности сознания, тяжёлой соматике. За сутки–двое удаётся выровнять показатели, наладить сон и безопасно перейти к амбулаторному этапу.
    Исследовать вопрос подробнее – http://narkologicheskaya-klinika-moskva999.ru/

  8. JessieWes JessieWes

    На этом этапе специалист уточняет, сколько времени продолжается запой, какой вид алкоголя употребляется и имеются ли сопутствующие заболевания. Тщательный анализ собранной информации позволяет оперативно подобрать оптимальные методы детоксикации и минимизировать риск осложнений.
    Ознакомиться с деталями – вывод из запоя клиника донецк

  9. QuintinWoria QuintinWoria

    В основе работы клиники «ИжТрезвоМед Центр» лежит принцип персонализированной медицины. Это означает, что каждый пациент получает не шаблонное лечение, а тщательно подобранный комплекс процедур, учитывающий его состояние, историю заболевания, уровень мотивации и социальную ситуацию. Такой подход позволяет добиться стабильного результата даже в сложных случаях. Лечение проводится анонимно, без постановки на учёт и разглашения данных, что особенно важно для тех, кто ценит конфиденциальность.
    Получить дополнительную информацию – наркологическая клиника нарколог в ижевске

  10. MichaelFrutt MichaelFrutt

    Запой — это не только усталость и похмелье. В первые часы нарастают обезвоживание, электролитные сдвиги, скачки давления и пульса, усиливается тревога, нарушается сон и аппетит. На этом фоне резко возрастает риск аритмий, судорожной готовности, ухудшения когнитивных функций и травм вследствие падений. «МедТоника» организует помощь так, чтобы человек не оставался один на один с симптомами: с первого звонка дежурный врач уточняет длительность и объём употребления, принимает во внимание сопутствующие заболевания и лекарства, оценивает риски по давлению, пульсу, сатурации и ориентирует, где безопаснее стартовать — на дому или в стационаре. Цель первых суток — снять интоксикацию, стабилизировать жизненно важные показатели, вернуть управляемость сну и поведению, чтобы далее перейти к предсказуемой стабилизации. Когда есть ясный план на 48–72 часа, снижается вероятность срыва и импульсивных решений, которые обычно и ломают прогресс.
    Подробнее тут – https://vyvod-iz-zapoya-moskva99.ru/vyvod-iz-zapoya-v-klinike-v-moskve/

Leave a Reply

Your email address will not be published. Required fields are marked *