PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Studio7 - Suche Zeitstempel im Build-Kommentar



oberallgeier
03.07.2017, 12:17
Beim Studio7 vermisse ich die praktische, aussagekräftige Zeitangabe beim Output von Build.

Das Studio4 hatte so etwas, da begann der Build-Output mit z.B. "Build started 3.7.2017 at 13:14:17 ..". So einen Zeitstempel habe ich im Studio 7 nicht, ich finde auch keinen Schalter, wie man den einbringen könnte.

Frage: gibts etwas Vergleichbares oder dasselbe in Studio7 ? Wo schaltet man das ein - kann ich das einschalten?

Danke für Eure Hilfen.

oberallgeier
14.12.2020, 15:39
Hallo alle,
3 Fragen zu Studio7 (nen neuen Thread dafür aufzumachen fand ich nicht wirklich nützlich?) :

Umgebung: Windows 10 pro, Atmel Studio 7, 7.0.2397.

Seit einiger Zeit (? - fiel mir früher jedenfalls nicht auf) bekomme ich beim Öffnen von Studio7 eine Fehlermeldung, siehe Fall 1. Nach dem Compilieren und flashen habe ich bisher keine Fehler festgestellt. Allerdings - siehe weiter unten (Fall 2 und 3).

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Fall/Fehler/Frage 1

Folgende Fehlermeldung (beim Öffnen von Studio7) :
15:22:48: [ERROR] Failed to initialize ASF distribution 'global name 'statvfs_result' is not defined'

Help zeigt an (u.a.) :
Atmel Studio 7 (Version: 7.0.2397 - )
© 2019 Microchip Technology, Inc.
All rights reserved

Dazu (u.a.) :
Installed Packages: Atmel Software Framework - 3.47.0.1648
ASF
Version: 3.47.0
Package GUID: 4CE20911-D794-4550-8B94-6C66A93228B8
Company: Atmel
HelpUrl: http://asf.atmel.com/3.47.0
Release Description: ASF - 3.47.0 Release

ASF
Version: 3.46.0
...

ASF
Version: 3.45.0
...

ASF
Version: 3.44.1
...

usf bis
ASF
Version: 3.39.0
...

etcetc.

Bei der Suche nach updates wurde mir angeboten (hab ich runtergeladen):
as-installer-7.0.2542-web.exe

Frage 1:
a) Bitte kann mir jemand Hintergrund und/oder Zweck der oben genannten Meldung erklären?
b) Soll ich die neue Studio7-Version installieren? Zuerst die alte löschen?

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Fall/Fehler/Frage 2
Beim Compilieren entsteht eine seltsame Meldung die ich mir (ebenfalls) nicht erklären kann:
Target "PostBuildEvent" skipped, due to false condition; ('$(PostBuildEvent)' != '') was evaluated as ('' != '').
Der ganze Output-Kommendar:
------ Build started: Project: ARCo, Configuration: default AVR ------
Build started.
Project "ARCo.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:\D_pro-fils\compu_MC\C7\ARCo\ARCo\ARCo.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: .././ARCo.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 -I"..\..\..\..\C5_Ronny-5_etc\ARCo\..\R5_Lib01" -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0. 106\include" -Os -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -Wall -mmcu=atmega1284p -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0. 106\gcc\dev\atmega1284p" -c -gdwarf-2 -std=gnu99 -MD -MP -MF "ARCo.d" -MT"ARCo.d" -MT"ARCo.o" -o "ARCo.o" ".././ARCo.c"
Finished building: .././ARCo.c
Building target: ARCo.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 ARCo.elf ARCo.o -Wl,-Map="ARCo.map" -Wl,--start-group -Wl,--end-group -Wl,--gc-sections -mmcu=atmega1284p -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0. 106\gcc\dev\atmega1284p"
Finished building target: ARCo.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 "ARCo.elf" "ARCo.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 "ARCo.elf" "ARCo.eep" || exit 0
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objdump.exe" -h -S "ARCo.elf" > "ARCo.lss"
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O srec -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "ARCo.elf" "ARCo.srec"
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-size.exe" "ARCo.elf"
text data bss dec hex filename
20040 4057 948 25045 61d5 ARCo.elf
Done executing task "RunCompilerTask".
Task "RunOutputFileVerifyTask"
Program Memory Usage : 23578 bytes 18,0 % Full
Data Memory Usage : 4486 bytes 27,4 % Full
Warning: Memory Usage estimation may not be accurate if there are sections other than .text sections in ELF file
EEPROM Memory Usage : 519 bytes 12,7 % Full
Done executing task "RunOutputFileVerifyTask".
Done building target "CoreBuild" in project "ARCo.cproj".
Target "PostBuildEvent" skipped, due to false condition; ('$(PostBuildEvent)' != '') was evaluated as ('' != '').
Target "Build" in file "C:\Program Files (x86)\Atmel\Studio\7.0\Vs\Avr.common.targets" from project "D:\D_pro-fils\compu_MC\C7\ARCo\ARCo\ARCo.cproj" (entry point):
Done building target "Build" in project "ARCo.cproj".
Done building project "ARCo.cproj".

Build succeeded.
========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========

Frage 2: Bitte kann mir jemand Hintergrund und/oder Zweck der Meldung "... Target "PostBuildEvent" skipped ..." erklären?

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Fall/Fehler/Frage 3
Ich - beispielsweise - habe folgende Definitionen:

..
//#define SRfger 2600 // Schulterschwenk fast geradeaus nach vorne
#define SR1ger 2800 // Schulterschwenk geradeaus nach vorne
//#define SRlau1 3000 // Schulterschwenk "leicht auswärts 3000
..
Die beiden Größen SRfger und SRlau1 werden nicht (mehr) benutzt. Egal ob ich diese beiden Größen auskommentiere oder "ordentlich" definiere, der Bericht über Programm- und Datenverbrauch bleibt gleich:

Task "RunOutputFileVerifyTask"
Program Memory Usage : 23578 bytes 18,0 % Full
Data Memory Usage : 4486 bytes 27,4 % Full
Warning: Memory Usage estimation may not be accurate if there are sections other than .text sections in ELF file
EEPROM Memory Usage : 519 bytes 12,7 % Full
Done executing task "RunOutputFileVerifyTask".

Frage 3: Ich dachte bisher ein #define erstellt einen Namen für ne Größe und reserviert einen Speicherplatz. Hier ist das nicht der Fall . . . ?

021aet04
14.12.2020, 17:15
Zu den Fehlermeldungen kann ich nichts sagen.

Zu den defines aber schon.
Die defines dienen nur das du den Code besser lesen kannst. Es wird kein Speicher irgendwie bzw irgendwo reserviert.

Beim Übersetzen werden alle "define-Namen" durch den Wert ersetzt.
Als Beispiel, so schreibst du es:

#define speed 100
main
{
OCR0A = speed;
}

So wird es nach dem übersetzen:

main
{
OCR0A = 100;
}

Du siehst es aber nicht, dass es ersetzt wird. Wenn du das define 20x verwendest, wird es 20x ersetzt. Das ist auch der Grund, warum du im Programm nicht auf ein define schreiben kannst. Wenn du z.B. in meinem Beispiel "speed = 150;" schreibst, kommt ein Fehler und du kannst das Programm nicht übersetzen.

MfG Hannes

oberallgeier
14.12.2020, 17:29
Guten Abend Hannes,

baaahhhh - das ist ja oberfies. Du schreibst :
.. Die defines dienen nur das du den Code besser lesen kannst. Es wird kein Speicher irgendwie bzw irgendwo reserviert ..
Nun schreibt aber mein Kernighan-Ritchie (Zweite Ausgabe, ANSI C. 1990 ISBN 3-446-15487-3) im Vorwort zur deutschen Ausgabe, S ix:


... im Deutschen kann man Deklarationen, die Eigenschaften von Namen vereinbaren, völlig von Definitionen unterscheiden, die dazu auch noch Speicherplatz bereitstellen, denn ..... und diesen Hinweis hatte ich so verstanden, dass eben >>.. dazu auch noch Speicherplatz ..<< bereitgestellt wird. Danke, nun ist mir das wenigstens klar.

Danke!