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

211 Comments

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

  2. Williamemusa Williamemusa

    Комплексный подход позволяет не просто стабилизировать физическое состояние пациента, но и обеспечить долговременный результат. Каждый этап лечения сопровождается медицинским наблюдением и корректируется по мере улучшения состояния.
    Разобраться лучше – http://narkologicheskaya-klinika-v-krd19.ru/narkolog-krasnodar-anonimno/

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

  4. RolandGuerm RolandGuerm

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

  5. Rustylot Rustylot

    Когда требуется нарколог на дом, обычно речь идёт не о «консультации на будущее», а о ситуации, которая уже мешает жить здесь и сейчас: затяжной запой, тяжёлая абстиненция, сильная тревога и бессонница, тремор, скачки давления, рвота, выраженная слабость, паника или состояние, при котором человек не готов ехать в клинику. В Пушкино выездная помощь востребована ещё и потому, что многим важно сохранить приватность и не вовлекать лишних людей: дома проще согласиться на осмотр, не тратить силы на дорогу и избежать стрессовой смены обстановки. В наркологической клинике «Стабильный Выбор» выезд врача строится по принципу «быстро, но безопасно»: сначала оценка состояния и рисков, затем индивидуальная тактика стабилизации и понятный план на ближайшие часы и сутки.
    Изучить вопрос глубже – [url=https://narkolog-na-dom-pushkino12.ru/]skolko-stoit-narkolog-na-domu[/url]

  6. HenryTrurn HenryTrurn

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

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

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

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

Leave a Reply

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