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

1,362 Comments

  1. AndrewRom AndrewRom

    После употребления алкоголя состояние может быстро ухудшиться: появляется головная боль, тошнота, головокружение и слабость. Это следствие того, что в организме накапливаются токсины, продукты распада этанола и нарушается водно-электролитный баланс. С помощью капельницы от похмелья можно быстро справиться с интоксикацией, восполнить недостающие элементы и облегчить состояние пациента. В клинике «Частный медик 24» в Самаре мы предлагаем капельницы, которые помогают снять все неприятные симптомы похмелья, восстанавливая работу организма и минимизируя риски для здоровья.
    Подробнее тут – капельница от похмелья вызов на дом в самаре

  2. Robertacush Robertacush

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

  3. Goodinidat Goodinidat

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

  4. JavierGor JavierGor

    Нарколог на дом — это срочная врачебная помощь, которая нужна в тот момент, когда больного уже сложно везти в клинику, а ждать улучшения без осмотра опасно. Домашний формат особенно актуален при запое, выраженной интоксикации, повторной рвоте, скачках давления, сильном треморе, бессоннице и тревоге. В такой ситуации важно не просто заказать выезд и получить капельницу, а сразу запустить понятный медицинский маршрут: осмотр, консультация, оценка рисков, подбор терапии и решение, можно ли безопасно оставаться дома. Именно поэтому услуга «нарколог на дом» воспринимается не как разовая процедура, а как полноценная наркологическая помощь, где каждое действие связано с текущим состоянием пациента и его безопасностью.
    Получить дополнительные сведения – https://narkolog-na-dom-voronezh-3.ru/

  5. KevinCAk KevinCAk

    Нарколог на дом в Москве — это формат врачебной помощи, который рассматривают при состояниях после употребления алкоголя, когда больному требуется осмотр без посещения клиники. Чаще всего обращение связано с запоем, тяжелым похмельным синдромом, слабостью, нарушением сна, тремором, тревогой, тошнотой, сухостью во рту, скачками давления, сердцебиением и общим ухудшением самочувствия. Дальнейшая тактика определяется после осмотра, с учетом длительности употребления алкоголя, возраста, сопутствующих заболеваний и выраженности текущих симптомов.
    Подробнее можно узнать тут – нарколог на дом анонимно в москве

  6. Harveylib Harveylib

    В Нижнем Новгороде услуга выезда нарколога чаще всего используется при состояниях, когда пациент физически не может посетить клинику или требуется срочное медицинское вмешательство. Врач приезжает с необходимыми препаратами и оборудованием, проводит осмотр и сразу приступает к лечению. Такой формат особенно важен при выраженной интоксикации и нестабильном состоянии.
    Получить дополнительные сведения – http://narkolog-na-dom-nizhnij-novgorod.ru/

  7. Rodolfobesee Rodolfobesee

    Обращение в наркологический стационар в Санкт-Петербурге может стать важным шагом для людей, страдающих от алкогольной или наркотической зависимости. Стационарное лечение предоставляет пациентам не только медицинскую помощь, но и психологическую поддержку, необходимую для успешной реабилитации. Это подход, ориентированный на комплексное восстановление здоровья, физическое и психоэмоциональное состояние пациента.
    Подробнее – narkologicheskij-staczionar-sankt-peterburg-2.ru/

  8. WilliamTebra WilliamTebra

    В Санкт-Петербурге вывод из запоя на дому используется в ситуациях, когда состояние пациента требует медицинской помощи, но позволяет обойтись без лечения в стационаре. Врач проводит консультацию, оценивает длительность запоя, выраженность симптомов и общее состояние, анализируя данные пациента, после чего принимает решение о тактике лечения при алкоголизме. При необходимости можно оформить вызов специалиста или заказать услугу заранее.
    Углубиться в тему – http://vyvod-iz-zapoya-na-domu-sankt-peterburg-11.ru

  9. Процесс введения капельницы с медицинским контролем начинается с того, что медицинский специалист оценивает общее состояние пациента: измеряет артериальное давление, пульс, температуру тела, а также учитывает историю заболеваний. Это позволяет выбрать оптимальный состав растворов и препаратов для максимально быстрого и безопасного восстановления.
    Получить больше информации – капельница от похмелья на дом

  10. RichardMalia RichardMalia

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

Leave a Reply

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