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

717 Comentários

  1. MichaelvaR MichaelvaR

    Таблица позволяет поддерживать единую структуру наблюдения и фиксировать изменения состояния. Такая модель обеспечивает прозрачность процессов и повышает точность принимаемых решений.
    Подробнее тут – http://vyvodiz-zapoya-izhevsk18.ru

  2. Одним из ключевых достоинств выезда нарколога на дом является возможность лечения в привычной для пациента среде, что способствует снижению стресса и ускоряет процесс выздоровления. Кроме того, лечение на дому гарантирует полную анонимность и индивидуальный подход к каждому пациенту.
    Получить дополнительные сведения – https://narcolog-na-dom-v-irkutske66.ru/

  3. После оформления заявки по телефону или на сайте оператор уточняет адрес и текущее состояние пациента. В критических ситуациях врач может прибыть в течение 60 минут, в стандартном режиме — за 1–2 часа. На месте проводится сбор анамнеза и оценка жизненных показателей: артериального давления, пульса, сатурации и температуры тела. Затем выбирается оптимальный протокол детоксикации — «мягкий» метод для постепенного выведения токсинов или экспресс-методика при острой интоксикации. Процедура капельного введения комбинированного раствора длится от двух до четырёх часов: специалист контролирует состояние пациента, корректирует дозировки и при необходимости вводит корригирующие препараты. По окончании врач оставляет детальный план поддерживающей терапии, включающий рекомендации по питанию, приёму сорбентов и витаминов, а также график повторных осмотров.
    Подробнее можно узнать тут – vyezd narkologa na dom ramenskoe

  4. Victorzep Victorzep

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

  5. StevenGyday StevenGyday

    Наводится порядок в информации, запускается инфузия по показаниям, объясняются ожидаемые ощущения и правила вечера. Пациент и близкие понимают, какой результат реалистичен к ночи и что делать, чтобы эффект не «сгорел» к полуночи.
    Подробнее – http://narkologicheskaya-klinika-lyubercy9.ru/narkologicheskaya-klinika-ryadom-v-lyubercah/https://narkologicheskaya-klinika-lyubercy9.ru

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

  7. Вывод из запоя — это не просто медицинская процедура, а важный шаг на пути восстановления организма и возвращения человека к нормальной жизни. В клинике «ВладТрезвие Центр» пациенты получают профессиональную помощь, основанную на современных методиках детоксикации и безопасном медикаментозном восстановлении. Каждый случай рассматривается индивидуально, а лечение подбирается с учётом возраста, состояния здоровья и продолжительности запоя. Наркологи центра выезжают на дом круглосуточно, обеспечивая помощь даже в экстренных ситуациях, когда время играет ключевую роль.
    Подробнее тут – https://vyvodiz-zapoya-vladivostok18.ru/vyvod-iz-zapoya-staczionar-vladivostok

  8. Kevinquows Kevinquows

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

  9. MichaelvaR MichaelvaR

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

  10. SamuelInals SamuelInals

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

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

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

  13. StevenGyday StevenGyday

    Наводится порядок в информации, запускается инфузия по показаниям, объясняются ожидаемые ощущения и правила вечера. Пациент и близкие понимают, какой результат реалистичен к ночи и что делать, чтобы эффект не «сгорел» к полуночи.
    Получить дополнительные сведения – http://

  14. Kevinquows Kevinquows

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

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

Deixe um comentário

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