Ir ao conteúdo

Compilando para Teensy 3.0 no Windows utilizando Makefile

Boa tarde,

Se você não quer utilizar a Arduino IDE (Teensy IDE?) para programar e enviar seus códigos para o Teensy 3.0 você pode utilizar o Makefile.

A última versão da IDE por enquanto você consegue no Forum do PJRC . Como ele diz, existe um exemplo de Makefile na pasta: “arduino-1.0.3\hardware/teensy/cores/teensy3” porém para utiliza-lo você precisa fazer alguns passos como adicionar o “arduino-1.0.3\hardware\tools\arm-none-eabi\bin” ao seu PATH para que possa utilizar os executaveis desta pasta tranquilamente. Para isso abra o seu Prompt de Comando: Iniciar – Executar – CMD

E em seguida insira o seguinte comando:

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

[Se você não quer entender as modificações que eu realizei va para o final da publicação]

Para garantir que não estragaria o arquivo, fiz uma copia completa do diretório. Em seguida ao executar o

cs-make.exe

Recebia a seguinte mensagem de erro:

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

Verificando o Makefile decidi alterar as configurações das váriaveis para caminho completo já que eu fiz uma copia do teeensy/core.
TOOLSPATH = C:\CAMINHO_PARA_O_ARDUINO\arduino-1.0.3\hardware\tools
LIBRARYPATH = Deixei como estava
COMPILERPATH = C:\CAMINHO_PARA_O_ARDUINO\arduino-1.0.3\hardware\tools\arm-none-eabi\bin

O erro continuou o mesmo, continuando a entender o código percebi os “abspath” e pensei que poderia estar dando problema por eu estar usando caminhos absolutos então removi todos os “$(abspath” lembrando que o mesmo possui um parêntesis que fecha o comando. Então por exemplo:

$(abspath $(COMPILERPATH)) ficará $(COMPILERPATH)

Tentando compilar novamente com cs-make, iniciou a compilar mas no final aconteceu o seguinte erro:

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

Analisando o arquivo encontrei: “path=$(shell pwd)” e me pareceu que pwd não era um comando válido de shell em windows. Testei no console, e não era. Então alterei para “path=$(shell echo %cd%)”. Antes de compilar novamente decidi tentar limpar os arquivos que já foram gerados com cs-make clean

O erro encontrado foi:

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

E me pareceu que ele estava chamando rm -f no windows o que também não é um comando válido. Alterei o comando rf para:

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

Com isso consegui limpar os arquivos. E tentei compilar novamente e funcionou! Realizei uns testes alterando o main.cpp e estava sendo compilado e enviado ao meu Teensy 3.0 como deveria ser. De qualquer forma trabalhar com todos aqueles arquivos e os meus juntos seria um tanto quanto trabalhoso, então copiei todos os arquivos com exceção do Makefile e do main.cpp para teensy/ dentro do meu projeto. Assim eu conseguiria compilar com o Makefile sem ter todos os arquivos em uma confusão. Alterei os CPP e C files para:

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)

As configurações do linker para:

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

E para ficar consistente:

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

E encontrei o seguinte erro:

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

Alterei as CPPFLAGS para:

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

E também lembrei que o clean deveria ser alterado para:

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

E adicionei:

CURRENT_PATH=$(shell echo %cd%)

Logo após as configurações que não devem ser alteradas pelo usuário. Com isso consegui utilizar o Makefile no Windows 7 para compilar e fazer upload para o Teensy 3.0 e mantendo os arquivos separados.

Resumo:
Você deve editar as váriaveis TOOLSPATH , COMPILERPATH e LIBRARYPATH para o seu caminho COMPLETO.
Em seguida crie uma pasta para o seu projeto “Meu_Projeto”
Crie uma pasta dentro dela chamada “teensy” (Meu_Projeto/teensy/)
Copie “arduino-1.0.3\hardware/teensy/cores/teensy3/” para “Meu_Projeto/teensy/” (os sub-diretórios também, mas o Makefile não)
Adicione o Makefile que você encontra no final deste post em “Meu_Projeto”
Copie o arquivo “Meu_Projeto/teensy/main.cpp” para o “Meu_Projeto/main.cpp”
Programe apartir do main.cpp
Compile e faça Upload com cs-make

Makefile para Teensy no Windows

Espero que seja útil,
Matheus

Publicado emCcppTeensywindows

817 Comentários

  1. Greggdof Greggdof

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

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

  3. CharlesBot CharlesBot

    Далее, когда физическое состояние стабилизировано, совместно с врачом выбирается стратегия дальнейшего лечения. В «Новая Точка» доступны современные методы кодирования (уколы, таблетки, вшивание препаратов, гипнотерапия), но решение всегда принимается осознанно, с объяснением плюсов, рисков и индивидуальным подбором метода.
    Детальнее – narkologiya-lechenie-alkogolizma

  4. Вывод из запоя — это не просто медицинская процедура, а важный шаг на пути восстановления организма и возвращения человека к нормальной жизни. В клинике «ВладТрезвие Центр» пациенты получают профессиональную помощь, основанную на современных методиках детоксикации и безопасном медикаментозном восстановлении. Каждый случай рассматривается индивидуально, а лечение подбирается с учётом возраста, состояния здоровья и продолжительности запоя. Наркологи центра выезжают на дом круглосуточно, обеспечивая помощь даже в экстренных ситуациях, когда время играет ключевую роль.
    Разобраться лучше – вывод из запоя клиника владивосток

  5. Диагностика включает общий и биохимический анализ крови, оценку работы печени и почек, электрокардиографию и психологическое тестирование для выявления уровня мотивации.
    Узнать больше – centr kodirovaniya ot alkogolizma

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

  7. Jamesgueve Jamesgueve

    Ниже — ориентир, который помогает видеть логику процесса. Это не жёсткий график: врач адаптирует точки и сроки под возраст, фоновые заболевания и исходное состояние.
    Углубиться в тему – наркологическая клиника

  8. MichaelvaR MichaelvaR

    Каждое направление наблюдения играет важную роль в формировании терапевтической программы. Структурированный контроль помогает снижать уровень рисков и обеспечивает возможность оперативной адаптации. Для систематизации данных применяется таблица, отражающая ключевые параметры мониторинга.
    Подробнее – vyvodiz-zapoya-izhevsk18.ru/

  9. Наркологическая клиника — это место, где человек получает не просто медицинскую помощь, а возможность начать жизнь заново. В клинике «АстраМед Трезвость» в Астрахани создана система комплексного лечения алкогольной и наркотической зависимости, включающая диагностику, детоксикацию, медикаментозную терапию и психотерапию. Пациент получает поддержку на каждом этапе: от вывода из запоя до социальной адаптации после реабилитации. Лечение проводится круглосуточно, в комфортных условиях и с соблюдением полной конфиденциальности.
    Выяснить больше – http://narkologicheskaya-klinika-v-astrakhani18.ru/narkologiya-astrakhan-adres/https://narkologicheskaya-klinika-v-astrakhani18.ru

  10. В клинике каждому пациенту уделяют особое внимание. Врачи знают: универсальных решений нет, за каждым случаем — своя история и свои причины. Первый контакт начинается с конфиденциальной консультации. Можно просто позвонить или написать онлайн — уже на этом этапе врач поможет оценить ситуацию, объяснит возможные этапы и даст рекомендации по подготовке к визиту.
    Ознакомиться с деталями – klinika-lechenie-alkogolizma-ceny

  11. Williamvunse Williamvunse

    Процедура вывода из запоя проводится опытными наркологами с применением современных протоколов и сертифицированных препаратов. Процесс включает несколько ключевых этапов:
    Исследовать вопрос подробнее – vyvod-iz-zapoya-cena

  12. RichardBog RichardBog

    Перед началом терапии проводится полная диагностика организма, включая лабораторные исследования и ЭКГ. Это позволяет оценить состояние пациента и подобрать оптимальный курс лечения. После стабилизации физического состояния начинается психотерапевтическая и реабилитационная работа. Такой подход помогает не только снять симптомы, но и устранить первопричины зависимости.
    Выяснить больше – http://narkologicheskaya-klinika-kemerovo18.ru/

  13. BrentMup BrentMup

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

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

  15. BrettEvodo BrettEvodo

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

  16. WilliamInfuh WilliamInfuh

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

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *