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

625 Comentários

  1. Далее выполняется медицинская детоксикация: корректируется водно-электролитный баланс, снимается интоксикация, поддерживается работа сердечно-сосудистой системы, снижается тремор, стабилизируется сон и тревожность. Важно, что схема подбирается индивидуально: при разных рисках объём поддержки будет различаться. В ряде случаев достаточно амбулаторного наблюдения и рекомендаций, в других — нужен стационар, чтобы контролировать динамику и вовремя корректировать терапию.
    Углубиться в тему – moskva-vyvod-iz-zapoya

  2. ThomasRaw ThomasRaw

    В этом тексте собрано множество случайных сведений и довольно неопределённых мыслей, которые могут чем-то заинтересовать. Мы отмечаем моменты, которые не особенно важны, но всё же занимают своё место в повествовании.
    Вот – недорого

  3. Wesleykef Wesleykef

    В «ЮжУрал Детокс Центр» инфузионная терапия собирается из модулей. Каждый модуль имеет одну цель, измеримый маркер и стоп-критерий. Мы избегаем одновременного подключения нескольких новых элементов, чтобы не потерять причинно-следственную связь. Ниже — примерная «сетка» компонентов; фактическая схема подбирается индивидуально, только по показаниям.
    Исследовать вопрос подробнее – http://kapelnicza-ot-zapoya-v-chelyabinske16.ru/kapelnicza-ot-intoksikaczii-chelyabinsk/

  4. Floydmak Floydmak

    В клинике «Вектор Стабильности» помощь строится от безопасности к устойчивости. Сначала — оценка состояния, исключение опасных признаков, стабилизация. Затем — работа с тягой и триггерами, потому что после прекращения употребления именно бессонница, тревога и психическое истощение чаще всего толкают к срыву. Когда у пациента есть понятный план на уязвимые часы и поддержка по динамике, трезвость становится более управляемой.
    Выяснить больше – chastnaya-narkologicheskaya-klinika

  5. Kennethbog Kennethbog

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

  6. Danielheemi Danielheemi

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

  7. LorenJup LorenJup

    Чтобы избежать опасных последствий, необходимо постепенно и безопасно вывести алкоголь из организма. Клиника «Ясный горизонт» предлагает профессиональный вывод из запоя в Новокузнецке как в условиях стационара, так и с выездом нарколога на дом.
    Узнать больше – срочный вывод из запоя

  8. DavidBoype DavidBoype

    В клинике «Пульс» процесс оказания помощи начинается сразу после вашего обращения. Наша бригада оперативно выезжает на дом, где врач проводит первичный осмотр пациента: измеряет давление, пульс, оценивает степень интоксикации и собирает анамнез. На основе полученных данных подбирается индивидуальный состав капельницы.
    Разобраться лучше – https://kapelnica-ot-zapoya-krasnodar7.ru/

  9. RichardCem RichardCem

    Зависимость редко начинается как «сразу серьёзная проблема». Сначала алкоголь или вещества используются как способ снять напряжение, заглушить тревогу или уснуть. Потом это постепенно превращается в устойчивый механизм: трезвость даётся тяжело, сон ломается, появляется внутренняя дрожь, раздражительность, скачки давления, тревога, а утро всё чаще начинается с мысли «нужно поправиться, иначе не выдержу». В Орехово-Зуево многие долго надеются справиться самостоятельно, потому что стыдно, нет времени или кажется, что «в этот раз точно получится». Но зависимость устроена так, что без грамотной помощи чаще всего возвращает человека в один и тот же круг: попытка прекратить — тяжёлая отмена — снова употребление — ухудшение здоровья и отношений.
    Исследовать вопрос подробнее – https://narkologicheskaya-klinika-orekhovo-zuevo2-12.ru/horoshaya-narkologicheskaya-klinika-v-orekhovo-zuevo/

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

  11. ArthurTeask ArthurTeask

    Дальше задача — восстановить управляемость состояния. Это включает снижение интоксикации, коррекцию обезвоживания, выравнивание показателей, уменьшение тревоги и нормализацию сна. Но чтобы результат закрепился, необходим второй слой: работа с триггерами (стресс, конфликт, усталость, одиночество), профилактика «вечернего отката», поддержка режима и понимание, какие симптомы допустимы, а какие требуют повторной оценки. Именно это отличает лечение зависимости от разовой попытки «стало легче — дальше как-нибудь».
    Получить дополнительные сведения – http://narkologicheskaya-klinika-sergiev-posad12.ru/chastnaya-narkologicheskaya-klinika-v-sergievom-posade/

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

  13. Keithfraps Keithfraps

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

  14. Помимо физической детоксикации, лечение запоя требует комплексной психологической поддержки. Психотерапевты работают с пациентами для выявления глубинных причин зависимости, помогают снизить уровень стресса и развивают навыки самоконтроля, что критически важно для предотвращения рецидивов.
    Получить дополнительную информацию – http://vyvod-iz-zapoya-krasnoyarsk66.ru

  15. Floydmak Floydmak

    Алкогольная зависимость часто держится на страхе отмены. Человек пьёт не ради удовольствия, а чтобы не столкнуться с тремором, потливостью, тошнотой, скачками давления, тревогой и бессонницей. Поэтому лечение начинается с оценки состояния и рисков: насколько тяжёлая отмена, есть ли хронические болезни, были ли осложнения, какие препараты уже принимались. Чем точнее оценка, тем безопаснее стабилизация и тем меньше вероятность ночного ухудшения.
    Подробнее тут – narkologicheskaya-klinika-noginsk

  16. RichardCem RichardCem

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

  17. DavidFut DavidFut

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

  18. В клинике «Вектор Стабильности» помощь строится от безопасности к устойчивости. Сначала — оценка состояния, исключение опасных признаков, стабилизация. Затем — работа с тягой и триггерами, потому что после прекращения употребления именно бессонница, тревога и психическое истощение чаще всего толкают к срыву. Когда у пациента есть понятный план на уязвимые часы и поддержка по динамике, трезвость становится более управляемой.
    Узнать больше – адреса наркологических клиник

  19. Danielheemi Danielheemi

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

  20. Anthonybic Anthonybic

    Современная наркология в клинике ориентирована на всестороннее восстановление физического и психологического здоровья пациентов. Медицинское сопровождение включает этапы детоксикации, медикаментозной терапии, психотерапевтической поддержки и последующей реабилитации. Такой подход способствует не только устранению физической зависимости, но и проработке психологических причин, что снижает риск рецидивов.
    Получить больше информации – http://narkologicheskaya-klinika-novosibirsk0.ru/chastnaya-narkologicheskaya-klinika-novosibirsk/

Deixe um comentário

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