Всем добрый день!
Начал писать прошивку для платы (чип Atmega640) и сразу наткнулся на проблему: AtmelStudio 7 отказывается собирать проект. К своему сожалению, я не могу вспомнить, что предшествовало этой ошибке, но понимаю, что «случайно» она возникнуть не могла. Теперь к делу.
В плане кода там даже толком ничего не написано, но я убрал всё лишнее, как будто бы это был новый, чистый проект, и при сборке (Ctrl + Alt + F7) появляется вот это:
В меню Output в свою очередь появляются следующие сообщения:
Код:
—— Rebuild All started: Project: latr_beta_2020, Configuration: Debug AVR ——
Build started.
Project «latr_beta_2020.cproj» (Clean target(s)):
Target «Clean» in file «C:\Program Files (x86)\Atmel\Studio\7.0\Vs\Compiler.targets» from project «D:\Atmel progects\latr_beta_2020\latr_beta_2020\latr_beta_2020\latr_beta_2020.cproj» (entry point):
Using «RunCompilerTask» task from assembly «C:\Program Files (x86)\Atmel\Studio\7.0\Extensions\Application\AvrGCC.dll».
Task «RunCompilerTask»
Shell Utils Path C:\Program Files (x86)\Atmel\Studio\7.0\shellUtils
C:\Program Files (x86)\Atmel\Studio\7.0\shellUtils\make.exe clean
rm -rf main.o
rm -rf main.d
rm -rf «latr_beta_2020.elf» «latr_beta_2020.a» «latr_beta_2020.hex» «latr_beta_2020.lss» «latr_beta_2020.eep» «latr_beta_2020.map» «latr_beta_2020.srec» «latr_beta_2020.usersignatures»
Done executing task «RunCompilerTask».
Done building target «Clean» in project «latr_beta_2020.cproj».
Done building project «latr_beta_2020.cproj».
Build succeeded.
—— Rebuild All started: Project: latr_beta_2020, Configuration: Debug AVR ——
Build started.
Project «latr_beta_2020.cproj» (default targets):
Target «PreBuildEvent» skipped, due to false condition; (‘$(PreBuildEvent)’!=») was evaluated as (»!=»).
Target «CoreBuild» in file «C:\Program Files (x86)\Atmel\Studio\7.0\Vs\Compiler.targets» from project «D:\Atmel progects\latr_beta_2020\latr_beta_2020\latr_beta_2020\latr_beta_2020.cproj» (target «Build» depends on it):
Task «RunCompilerTask»
Shell Utils Path C:\Program Files (x86)\Atmel\Studio\7.0\shellUtils
C:\Program Files (x86)\Atmel\Studio\7.0\shellUtils\make.exe all —jobs 4 —output-sync
Building file: .././main.c
Invoking: AVR/GNU C Compiler : 5.4.0
«C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe» -x c -funsigned-char -funsigned-bitfields -DDEBUG -I»C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.3.300\include» -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega640 -B «C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.3.300\gcc\dev\atmega640» -c -std=gnu99 -MD -MP -MF «main.d» -MT»main.d» -MT»main.o» -o «main.o» «.././main.c»
Finished building: .././main.c
C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe: ‘latr_beta_2020.elf’: No such file
C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objdump.exe: ‘latr_beta_2020.elf’: No such file
make: *** [latr_beta_2020.elf] Error 1
Building target: latr_beta_2020.elf
Invoking: AVR/GNU Linker : 5.4.0
«C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe» -o latr_beta_2020.elf main.o -Wl,-Map=»latr_beta_2020.map» -Wl,—start-group -Wl,-lm -Wl,—end-group -Wl,—gc-sections -mmcu=atmega640 -B «C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.3.300\gcc\dev\atmega640»
Finished building target: latr_beta_2020.elf
«C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe» -O ihex -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures «latr_beta_2020.elf» «latr_beta_2020.hex»
«C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe» -j .eeprom —set-section-flags=.eeprom=alloc,load —change-section-lma .eeprom=0 —no-change-warnings -O ihex «latr_beta_2020.elf» «latr_beta_2020.eep» || exit 0
«C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objdump.exe» -h -S «latr_beta_2020.elf» > «latr_beta_2020.lss»
D:\Atmel progects\latr_beta_2020\latr_beta_2020\latr_beta_2020\Debug\Makefile(106,1): error: recipe for target ‘latr_beta_2020.elf’ failed
Done executing task «RunCompilerTask» — FAILED.
Done building target «CoreBuild» in project «latr_beta_2020.cproj» — FAILED.
Done building project «latr_beta_2020.cproj» — FAILED.
Build FAILED.
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
Исходя из сообщений, я понимаю, что вся проблема в Makefile, но не могу понять, как мне это исправить (он же генерируется автоматически), и, самое главное, как я к этому пришёл. Попробовал создать ещё один пустой проект, и в нём появляется точно такая же проблема.
Если кто-нибудь сталкивался с чем-то подобным, пожалуйста, напишите мне, в чём может быть проблема, и как это исправить. Тулчейн выбран такой:
На всякий случай прикладываю свой makefile.
Заранее всех благодарю за ответы.
I just installed atmel studio 7 and I can’t make a new project, i even tried to use an example project, but the it gives the error
project creation failed
Here’s what I get whenever I try to make a new project
I dunno if that is relevant or not, but I have VisualStudio 2015 installed before any of this.
Also, I think Atmel studio 7 comes with it’s own compiler, so there is no need to install WinAVR.
What should i do ?
asked Jan 27, 2016 at 11:01
Found a solution to this mess, my guess is that Atmel studio 7 installs visual studio shell that conflicts with the visual studio 2015 that is already installed, so what i did is :
- uninstall Atmel studio 7
- uninstall visual studio
- restart PC
- install Atmel studio
- install visual studio(be careful, see note in edit)
sometimes you might find it hard to do step 2, if you can’t then try to restore windows using a restore point before installing Atmel. and then try to do it again.
EDIT: Just wanted to add that if VS and AS are both installed, no matter what is the order of installation, VS will always work just fine, and AS won’t work.
answered Jan 28, 2016 at 9:16
Omar AwamryOmar Awamry
1,4523 gold badges15 silver badges29 bronze badges
1
|
Внимание! Форум переехал на Tehnodium.ru |
Спасибо!!!
Я поясню…
Изучение мк, сов. верно, идёт именно с создания проекта, написания некоторого кода, просмотра кода в маш. кодах МК и проверки его работы (пока в симуляторе)
этот процесс идет сам собой и вопросов к программе атмел7 по этому поводу не возникает …
хотя, на мой взгляд прога (Атмел7)сложна (я валю все на себя — отсутствие опыта и практики, слабое знание английского)
На офф. сайте атмел нашел только 7 версию… где-бы взять 6 или 4 …
дизассемблирование мне нужно для изучения реальных работающих программ — это правда в будущем (например, реализация контроля температуры и управления нагревателем в паяльных станциях…)
с ассемблером я знаком неплохо (занимался сис. прог на (х86), давно, правда, сейчас вспоминаю…они похожи (здесь инструкций поменьше, чуть по другому пишутся и более целевые чтоль…
У меня возник еще вопрос…. по размещению кода в памяти (флеш)
пример:
пишу инструкции: (просто запись числа в регистр) в памяти кода программы записаны следующее
nop 00 00
nop 00 00
ldi R18,$16 (hex 16) 26 е1
ldi r18,16 (десятичное 16-hex 10) 20 е1
ldi R17,$16 (hex 16) 16 е1
ldi r17,16 (десятичное 16-hex 10) 10 е1
ldi R16,$16 (hex 16) 06 е1
ldi r16,16 (десятичное 16-hex 10) 00 е1
теперь мои непонятки…
в третьей строке (ldi R18,$16) в коде операции есть код самой операции (??) и передаваемый операнд (16 hex). Если из кода 26е1 выделить 16, то выходит :
код операции ldi R18 — это 2е и он размещен между операндом (16)
тоже и с остальными операциями
непонятна организация размещения кода… (в х86 точно не так) или у меня что-то глючит…
и я не понял по сути 1 вопроса — есть возможность дизассемблирования в атмел 7 hex файлов или нет???