Forum: Mikrocontroller und Digitale Elektronik Anfänger: HEX File für ATMEL 90USB162 aus vorhandenem Code erzeugen


von MichaGue (Gast)


Lesenswert?

Hallo zusammen,

meine µC-Zeiten liegen bereits über 10 Jahre zurück, deshalb bezeichne 
ich mich mal als Anfänger.

Folgendes Problem:
ich habe mir eine kleine Schaltung von diamex gekauft 
(http://www.diamex.de/dxshop/USB-Temperatur-Sensor-Tester-fuer-DS18B20). 
Es handelt sich um einen µC (Atmel 90USB162) mit dem man Sensoren vom 
Typ DS18B20 auslesen kann.

Der Quellcode des µCs ist auf der oben genannten Seite unter dem 
Menüpunkt "Download" -> "Software und Anleitung Temperatursensor" zu 
finden. Softwareseitig wird die max. Anzahl auf 5 Sensoren begrenzt. Ich 
würde diesen Wert gerne auf 24 erhöhen.

Definiert ist die maximale Anzahl der Kanäle in der main.c in Zeile 13.

Die Verbindung mittels FLIP zum µC funktioniert.

Probleme habe ich nun bei der Erzeugung eines passenden HEX-Files. Kann 
mir jemand unter die Arme greifen und erklären, wie ich den vorhandenen 
Code ins ATMEL Studio lade, und ein neues HEX-File erzeuge bzw. gibt es 
eine Anfängeranleitung, aus der man die entsprechenden Informationen 
entnehmen kann?

Vielen Dank für Eure Unterstützung.

Gruß Michael

von BIOS (Gast)


Lesenswert?

1) Wenn du das gemacht hast.

          MSYS - Paket inkl. GCC-Compiler:
           1. Archiv entzippen, z.B. auf C:/msys
           2. "msys.bat" starten
           3. Auf der Kommandozeile folgendes eintippen:
           cd /home/temp-sensor/
           4. make clean
           5. make

           MSYS - Paket inkl. GCC-Compiler

2) Dann download die "Software und Anleitung für Temperatursensor"

          Software und Anleitung für Temperatursensor:
          Inklusive Sourcecode für AT90USB162
          Software und Anleitung für Temperatursensor

3) ändere deine Zeile im code
4) wechsel in das verzeichnis "BIOS" in cmd window un tippe
 make clean
 make
ein

von MichaGue (Gast)


Lesenswert?

Hallo,

vielen Dank für die Hinweise.

Schritt 1-3: erfolgreich
Schritt 4:

make clean -> erfolgreich
make -> Ich erhalte ich folgende Fehlermeldung:


$ make

-------- BEGIN --------

Compiling: usb_rawhid.c
avr-gcc -c -mmcu=at90usb162 -I. -Os -std=gnu99 -DF_CPU=16000000UL -Iinc 
-I.. -finline-limit=0 -ffunction-sections -fdata-sections 
-fno-inline-small-functions -Wall -Wstrict-prototypes -MD -MP -MF 
.deps/usb_rawhid.o.d usb_rawhid.c -o usb_raw
hid.o
sh: avr-gcc: command not found
make: *** [usb_rawhid.o] Error 127
-----------------------

Woran könnte das liegen?

Herzlichen Dank.

Gruß Michael

von Jim M. (turboj)


Lesenswert?

AVR-gcc ist nicht installiert oder nicht im PATH.

von BIOS (Gast)


Lesenswert?

Hallo Michael,
was passiert wenn du die msys.bat ausführst? Bleibt das cmd Window offen 
?

Gruß,
BIOS

von BIOS (Gast)


Angehängte Dateien:

Lesenswert?

Hi Michael,
habe es für dich übersetzt aber nicht getestet, also ohne Gewähr.

#define MAXSENSORS 24

von MichaGue (Gast)


Lesenswert?

Hi Bios,

vorab schon mal vielen Dank für das HEX-File. Werde es testen. Trotzdem 
würde ich gerne den Fehler verstehen.

Das CMD-Window bleibt offen, wenn ich die mysys.bat ausführe. WinACR 
habe ich im Verzeichnis C:/WinAVR installiert. Den Pfad habe ich auch in 
der makefile angepasst.

Muss der Pfad noch an anderer Stelle angepasst werden?

Danke.

Gruß Michael

von Jim M. (turboj)


Lesenswert?

Mit PATH war die Umgebungsvariable gemeint. In den dort angegebenen 
Verzeichnissen wird nach ausführbaren Dateien gesucht.

von MichaGue (Gast)


Lesenswert?

@Bios,

Dein HEX-File funktioniert, vielen Dank. Bzgl. der 
Kompilierungsproblematik muss ich mich noch mal dahinterklemmen. Mir 
sind die ganzen Begrifflichkeiten und Abhängigkeiten nicht mehr 
geläufig.

@Jim,
sorry, wenn ich nochmal nachfrage. WinAVR ist mittlerweile unter 
C:/WinAVR installiert. Im Makefile habe ich den Pfad entsprechend 
angepasst. Wo muss die Umgebungsvariable noch angepasst werden? Danke.

Gruß Michael

von BIOS (Gast)


Lesenswert?

Hi Michael,
die Umgebungsvariable setzt man über Windows.
Explorer -> rechte Maustaste auf Computer -> Eigenschaften -> Erweiterte 
Systemeinstellungen
Tab "Erweitert" dort Umgebungsvariablen
Dort dann bei Systemvariablen
in die Path Variable dein Installations Verzeichnis eingeben
BSP:
C:\WinAVR-20100110\bin;C:\WinAVR-20100110\utils\bin;

Gruß,
BIOS

von MichaGue (Gast)


Angehängte Dateien:

Lesenswert?

Hallo BIOS,

habe die Umgebungsvariable entsprechend Deinem Hinweis aktualisiert 
(siehe Anhang). Bei mir ist der Installationspfad C:\WinAVR.

Der Fehler beim Kompilieren bleibt leider bestehen.

-------- BEGIN --------
Compiling: usb_rawhid.c
avr-gcc -c -mmcu=at90usb162 -I. -Os -std=gnu99 -DF_CPU=16000000UL -Iinc
-I.. -finline-limit=0 -ffunction-sections -fdata-sections
-fno-inline-small-functions -Wall -Wstrict-prototypes -MD -MP -MF
.deps/usb_rawhid.o.d usb_rawhid.c -o usb_raw
hid.o
sh: avr-gcc: command not found
make: *** [usb_rawhid.o] Error 127
-----------------------

Wo könnte ich noch nach der Ursache suchen? Vielen Dank.

Gruß Michael

von re62 (Gast)


Lesenswert?

Hallo Micha
bei mir steht die AVR-GCC.Exe in diesem Pfad.
C:\Program Files (x86)\Atmel\AVR Studio 
5.1\extensions\Atmel\AVRGCC\3.3.1.27\AVRToolchain\bin.
Ist natürlich bei Dir anders.

Suche doch die Datei mit dem Explorer und kopiere dann die Pfadangabe 
direkt in die Umgebungsvariablen
mfg

von Fred (Gast)


Lesenswert?

Auf deinem Rechner suchen, wo avr-gcc.exe liegt.

a) existiert: Pfad dahin in $PATH
b) existiert nicht: installieren

Mehr gibts dazu wirklich nicht zu sagen.

von Maxx (Gast)


Lesenswert?

Fred schrieb:
> Auf deinem Rechner suchen, wo avr-gcc.exe liegt.
>
> a) existiert: Pfad dahin in $PATH
> b) existiert nicht: installieren
>
> Mehr gibts dazu wirklich nicht zu sagen.

Doch: $PATH ist nicht $PATH.

Sprich: Ist die Kommandozeile die ganze Zeit aktiv gewesen? Dann werden 
die Umgebungsvariablen nicht aktualisiert bis sie manuell geändert 
werden oder die Kommandozeile neu geöffnet wird, wenn du sie in den 
Windows-Einstellungen änderst.

Du kannst mit "set" alle Variablen sehen

Sonst per "echo %PATH%" mal ausgeben lassen

von MichaGue (Gast)


Lesenswert?

Danke für Eure Rückmeldung.

Ich finde auf meinem PC die avr-gcc.exe zweimal.

1.) C:\WinAVR\bin
2.) C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.1 
002\avr8-gnu-toolchain\bin

Verwendeter Variabelname: AVR32_HOME

Ich habe jetzt beide einmal als Umgebungsvariable eingetragen. Als 
erstes Pfad (1), dann getestet, dann Pfad (2) und getestet. In der 
Konsole habe mittels "set" jeweils geprüft, ob die Variable auch 
registriert ist.

Der bekannte Fehler bleibt bestehen:

-------- BEGIN --------
Compiling: usb_rawhid.c
avr-gcc -c -mmcu=at90usb162 -I. -Os -std=gnu99 -DF_CPU=16000000UL -Iinc
-I.. -finline-limit=0 -ffunction-sections -fdata-sections
-fno-inline-small-functions -Wall -Wstrict-prototypes -MD -MP -MF
.deps/usb_rawhid.o.d usb_rawhid.c -o usb_raw
hid.o
sh: avr-gcc: command not found
make: *** [usb_rawhid.o] Error 127
-----------------------

Hat sonst noch jemand eine Idee? Danke.

von Maxx (Gast)


Lesenswert?

Poste bitte mal die Ausgabe von "set".

von MichaGue (Gast)


Lesenswert?

$ set
!C:='C:\Users\michague\Downloads\msys\1.0'
ALLUSERSPROFILE='C:\ProgramData'
APPDATA='C:\Users\michague\AppData\Roaming'
AVR32_HOME='C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 
GCC\Native\3.4.2.1
002\avr8-gnu-toolchain\bin'
BASH=/bin/sh
BASH_ARGC=()
BASH_ARGV=()
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="3" [1]="1" [2]="0" [3]="1" [4]="release" 
[5]="i686-pc-msys")

BASH_VERSION='3.1.0(1)-release'
CLASSPATH='.;C:\Program Files (x86)\Java\jre6\lib\ext\QTJava.zip'
COLUMNS=80
COMMONPROGRAMFILES='C:\Program Files (x86)\Common Files'
COMMONPROGRAMFILES(X86)='C:\Program Files (x86)\Common Files'
COMMONPROGRAMW6432='C:\Program Files\Common Files'
COMPUTERNAME=X201
COMSPEC='C:\Windows\SysWOW64\cmd.exe'
CREDDIR='%pkidata%\pki_data'
DIRSTACK=()
EUID=500
FP_NO_HOST_CHECK=NO
GROUPS=()
HISTFILE=/home/michague/.bash_history
HISTFILESIZE=500
HISTSIZE=500
HOME=/home/michague
HOMEDRIVE='\\'
HOMEPATH='ABCDEF\michague$'
HOMESHARE='\\ABCDEF\michague$'
HOSTNAME=X201
HOSTTYPE=i686
IFS='
'
INSTSERVER=PC1234
INSTSERVER2=PC1234
IVIROOTDIR32='C:\Program Files (x86)\IVI Foundation\IVI\'
IVIROOTDIR64='C:\Program Files\IVI Foundation\IVI\'
KMP_DUPLICATE_LIB_OK=TRUE
LINES=25
LOCALAPPDATA='C:\Users\michague\AppData\Local'
LOCALPKIDATA='C:\Users\michague'
LOGNAME=michague
LOGONSERVER='\\GHIJK'
MACHTYPE=i686-pc-msys
MAILCHECK=60
MAKE_MODE=unix
MKL_SERIAL=YES
MSYSCON=sh.exe
MSYSTEM=MINGW32
NIDAQMXSWITCHDIR='C:\Program Files (x86)\National 
Instruments\NI-DAQ\Switch\'
NIEXTCCOMPILERSUPP='C:\Program Files (x86)\National 
Instruments\Shared\ExternalCompilerSupport\C\'
NIIVIPATH='C:\Program Files (x86)\IVI Foundation\IVI\'
NUMBER_OF_PROCESSORS=4
O2K3_MBXNAME=MG
O2K3_MBXSERVER=SI-MBX07
OLDPWD=/
OPTERR=1
OPTIND=1
OS=Windows_NT
OSTYPE=msys
PATH=.:/usr/local/bin:/mingw/bin:/bin:/bin/subversion:/bin/git:/bin/Code 
souceryG
++Lite/bin
PATHEXT='.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC'
PC_NTPROD=wks
PC_OS=w7
PC_OS_MAJORVER=6
PC_OS_MINORVER=1
PC_SP_MAJORVER=1
PERSONALFOLDER='u:\Eigene Dateien'
PIPESTATUS=([0]="0")
PKIDATA='C:\Users\michague'
POSIXLY_CORRECT=y
PPID=1
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_ARCHITEW6432=AMD64
PROCESSOR_IDENTIFIER='Intel64 Family 6 Model 37 Stepping 5, 
GenuineIntel'
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=2505
PROGRAMDATA='C:\ProgramData'
PROGRAMFILES='C:\Program Files (x86)'
PROGRAMFILES(X86)='C:\Program Files (x86)'
PROGRAMW6432='C:\Program Files'
PROMPT='$P$G'
PS1='\[\033]0;$MSYSTEM:\w\007
\033[32m\]\u@\h \[\033[33m\w\033[0m\]
$ '
PS2='> '
PS4='+ '
PSMODULEPATH='C:\Windows\system32\WindowsPowerShell\v1.0\Modules\'
PUBLIC='C:\Users\Public'
PWD=/home/michague
QTJAVA='C:\Program Files (x86)\Java\jre6\lib\ext\QTJava.zip'
READYAPPS='C:\SWTOOLS\ReadyApps'
SAPKM_USER_TEMP='C:\Users\michague\AppData\Local'
SESSIONNAME=Console
SHELL=/bin/sh
SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comme 
nts:moni
tor:posix
SHLVL=1
SYSTEMDRIVE=C:
SYSTEMROOT='C:\Windows'
TCVIS_CLUSTER_PATH='C:\Program 
Files\Siemens\Teamcenter8.3\Visualization\Product
s\Mockup\VisView.exe'
TCVIS_USE_FMS=false
TEMP=/tmp
TERM=cygwin
TMP=/tmp
TSMPATH='C:\Program Files\ThinkPad\UltraNav Utility'
UID=500
USERDNSDOMAIN=DE.010101.COM
USERDOMAIN=DE
USERDOMAIN_ROAMINGPROFILE=DE
USERNAME=michague
USERPROFILE='C:\Users\michague'
VXIPNPPATH='C:\Program Files (x86)\IVI Foundation\VISA\'
VXIPNPPATH64='C:\Program Files\IVI Foundation\VISA\'
WD='C:\Users\michague\Downloads\msys\1.0\\bin\'
WINDIR='C:\Windows'
_=/home/michague
i='/etc/profile.d/*.sh'

von Maxx (Gast)


Lesenswert?

MichaGue schrieb:
> PATH=.:/usr/local/bin:/mingw/bin:/bin:/bin/subversion:/bin/git:/bin/Code
> souceryG
> ++Lite/bin

Da steht nichts vom avg-gcc drin.

von MichaGue (Gast)


Lesenswert?

Okay, danke. Jetzt habe ich auch verstanden, in welchen Variablennamen 
die Angaben gehören. ASCHE AUF MEIN HAUPT! Steht ja alles schon weiter 
oben. Sorry.

Nichts desto trotz stehe ich wohl immer noch auf dem Schlauch.

Die über set erhaltenen Angaben in Path

PATH=.:/usr/local/bin:/mingw/bin:/bin:/bin/subversion:/bin/git:/bin/Code
souceryG
++Lite/bin

finde ich so aber nicht unter Windows in den Umgebungsvariablen.

Hier ist folgendes zu finden:
C:\WinAVR\bin;C:\WinAVR\utils\bin;C:\Program Files\Common 
Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common 
Files\Microsoft Shared\Windows 
Live;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYST 
EMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program 
Files\Intel\DMIX;C:\SWTOOLS\ReadyApps;C:\Program Files\7-Zip;C:\Program 
Files (x86)\IVI Foundation\IVI\bin;C:\Program Files\IVI 
Foundation\IVI\bin;C:\Program Files\IVI 
Foundation\VISA\Win64\Bin\;C:\Program Files (x86)\IVI 
Foundation\VISA\WinNT\Bin\;C:\PROGRA~2\IVIFOU~1\VISA\WinNT\Bin;C:\Progra 
m  Files (x86)\IVI Foundation\VISA\WinNT\Bin;C:\Program 
Files\Siemens\Teamcenter8.3\Visualization\Products\Mockup\ClearanceDB;C: 
\Program  Files\Intel\WiFi\bin\;C:\Program Files\Common 
Files\Intel\WirelessCommon\;C:\Program Files (x86)\Windows 
Live\Shared;C:\Program Files (x86)\QuickTime\QTSystem\;C:\Program Files 
(x86)\Atmel\Atmel Toolchain\AVR8 
GCC\Native\3.4.2.1002\avr8-gnu-toolchain\bin

Der Pfad zur avr-gcc.exe ist mit C:\WinAVT\bin eingetragen. Es ändert 
sich die Angabe in path allerdings nicht, wenn ich set aufrufe. (Konsole 
wurde vorher geschlossen und neu gestartet).

Noch eine Idee? Vielen Dank.

von MichaGue (Gast)


Lesenswert?

Sodelle,

Problem gelöst. Ich habe unter der im ersten Link verfügbaren Msys 
Installation Abstand genommen, mir ein MinGW auf den Rechner gepackt, 
Source Code angepasst und kompiliert.

Alles fehlerfrei. Vielen Dank für die Unterstützung.

Gruß Michael

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.