Forum: PC Hard- und Software Wine-Problem: AVRStudio4 unter Linux 64 Bit läuft nicht mehr


von White R. (Firma: n/a) (white_rabbit)


Lesenswert?

Hallo.
Ich bin kürzlich mit meinem PC "umgezogen" -- von einem 32-Bit-System, 
unter dem AVR Studio 4 noch mit wine lief auf ein aktuelles 
64-Bit-System
(genauergesagt Kubuntu 14.04 LTS).

Der Umzug lief zwar glatt und die Programme laufen auch alle, doch 
leider funktioniert AVR Studio 4 unter Wine nicht mehr. Eigentlich soll 
die Version 4.18 SP2 ja laut WineHQ sogar den Status "Gold" besitzen.

Hier erscheint beim Start aber nur diese Meldung. Vielleicht hat ja 
jemand eine Idee, was da fehlt oder falsch läuft:
1
--------------------------------------------
2
cd ~/.wine/drive_c/Program Files (x86)/Atmel/AVR Tools/AvrStudio4
3
wine AVRStudio.exe  ---> 
4
5
Unhandled exception: page fault on write access to 0x02171542 in 32-bit code (0x004ef829).
6
Register dump:
7
 CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
8
 EIP:004ef829 ESP:0033cf98 EBP:0033cfc8 EFLAGS:00010246(  R- --  I  Z- -P- )
9
 EAX:02103dc0 EBX:00000001 ECX:0018e2f8 EDX:020fc324
10
 ESI:029177c8 EDI:029177c8
11
Stack dump:
12
0x0033cf98:  d487bf77 00001b58 029177c8 00000001
13
0x0033cfa8:  0033cfb8 029177c8 02103dc0 d484fd6e
14
0x0033cfb8:  0033cf98 0033d14c 0056dcfa 00000000
15
0x0033cfc8:  0033d158 102acec3 d484e3fe 00000000
16
0x0033cfd8:  00000000 000302e6 0001022c 00000007
17
0x0033cfe8:  00000001 0033d098 0033d098 02917400
18
000c: sel=0067 base=00000000 limit=00000000 32-bit r-x
19
Backtrace:
20
=>0 0x004ef829 in avrstudio (+0xef829) (0x0033cfc8)
21
  1 0x102acec3 in bcgcbpro103090 (+0x2acec2) (0x0033d158)
22
  2 0x102ad926 in bcgcbpro103090 (+0x2ad925) (0x0033d220)
23
  3 0x102ad14b in bcgcbpro103090 (+0x2ad14a) (0x0033d258)
24
  4 0x004c95dc in avrstudio (+0xc95db) (0x020889f0)
25
  5 0x00000001 (0x00592f84)
26
  6 0x004d6c80 in avrstudio (+0xd6c7f) (0x004bcae0)
27
0x004ef829: movb  $0x1,0x6d782(%eax)
28
Modules:
29
Module  Address      Debug info  Name (144 modules)
30
PE    340000-  34f000  Deferred        avrrot3
31
PE    3d0000-  3df000  Deferred        atmelavrevtq
32
PE    3f0000-  3ff000  Deferred        atmelerrmsgq
33
PE    400000-  72c000  Export          avrstudio
34
PE   1ed0000- 1efa000  Deferred        avrcoordinator
35
PE   2000000- 2013000  Deferred        avrdisassembler
36
PE   2030000- 204a000  Deferred        avrice50trace
37
PE   2170000- 21cc000  Deferred        avrdebugger
38
PE   27f0000- 27fe000  Deferred        libelf
39
PE   2bb0000- 2c48000  Deferred        stk500dll
40
PE   2c50000- 2c80000  Deferred        libelfdwarfparser
41
PE   2c80000- 2ca1000  Deferred        libdwarf
42
PE  10000000-10582000  Export          bcgcbpro103090
43
PE  1f7a0000-1f7da000  Deferred        odbc32
44
PE  1f840000-1f857000  Deferred        odbcint
45
PE  785e0000-7897c000  Deferred        mfc90
46
ELF  7b800000-7ba5b000  Deferred        kernel32<elf>
47
  \-PE  7b810000-7ba5b000  \               kernel32
48
ELF  7bc00000-7bcdb000  Deferred        ntdll<elf>
49
  \-PE  7bc10000-7bcdb000  \               ntdll
50
ELF  7bf00000-7bf04000  Deferred        <wine-loader>
51
ELF  7c44f000-7c490000  Deferred        usp10<elf>
52
  \-PE  7c460000-7c490000  \               usp10
53
ELF  7c666000-7c6a4000  Deferred        libxslt.so.1
54
ELF  7c6a4000-7c720000  Deferred        wininet<elf>
55
  \-PE  7c6b0000-7c720000  \               wininet
56
ELF  7c720000-7c7c2000  Deferred        urlmon<elf>
57
  \-PE  7c730000-7c7c2000  \               urlmon
58
ELF  7c7c2000-7c7e8000  Deferred        liblzma.so.5
59
ELF  7c7e8000-7c942000  Deferred        libxml2.so.2
60
ELF  7c942000-7ca00000  Deferred        msxml3<elf>
61
  \-PE  7c950000-7ca00000  \               msxml3
62
ELF  7cf96000-7cfb3000  Deferred        libgcc_s.so.1
63
ELF  7cfc4000-7cfe2000  Deferred        msxml<elf>
64
  \-PE  7cfd0000-7cfe2000  \               msxml
65
ELF  7cfe2000-7d012000  Deferred        p11-kit-trust.so
66
ELF  7d012000-7d01b000  Deferred        librt.so.1
67
ELF  7d01b000-7d022000  Deferred        libffi.so.6
68
ELF  7d022000-7d027000  Deferred        libgpg-error.so.0
69
ELF  7d027000-7d03f000  Deferred        libresolv.so.2
70
ELF  7d03f000-7d08a000  Deferred        libdbus-1.so.3
71
ELF  7d08a000-7d0c6000  Deferred        libp11-kit.so.0
72
ELF  7d0c6000-7d0da000  Deferred        libtasn1.so.6
73
ELF  7d0da000-7d160000  Deferred        libgcrypt.so.11
74
ELF  7d160000-7d16c000  Deferred        libkrb5support.so.0
75
ELF  7d16c000-7d19c000  Deferred        libk5crypto.so.3
76
ELF  7d19c000-7d25a000  Deferred        libkrb5.so.3
77
ELF  7d25a000-7d26c000  Deferred        libavahi-client.so.3
78
ELF  7d26c000-7d332000  Deferred        libgnutls.so.26
79
ELF  7d332000-7d377000  Deferred        libgssapi_krb5.so.2
80
ELF  7d377000-7d3e4000  Deferred        libcups.so.2
81
ELF  7d400000-7d413000  Deferred        gnome-keyring-pkcs11.so
82
ELF  7d59d000-7d5d4000  Deferred        uxtheme<elf>
83
  \-PE  7d5a0000-7d5d4000  \               uxtheme
84
ELF  7d5d4000-7d5da000  Deferred        libxfixes.so.3
85
ELF  7d5da000-7d5e5000  Deferred        libxcursor.so.1
86
ELF  7d5e5000-7d5f5000  Deferred        libxi.so.6
87
ELF  7d5f5000-7d5f9000  Deferred        libxcomposite.so.1
88
ELF  7d5f9000-7d604000  Deferred        libxrandr.so.2
89
ELF  7d604000-7d60f000  Deferred        libxrender.so.1
90
ELF  7d60f000-7d615000  Deferred        libxxf86vm.so.1
91
ELF  7d615000-7d619000  Deferred        libxinerama.so.1
92
ELF  7d619000-7d620000  Deferred        libxdmcp.so.6
93
ELF  7d620000-7d624000  Deferred        libxau.so.6
94
ELF  7d624000-7d646000  Deferred        libxcb.so.1
95
ELF  7d646000-7d77a000  Deferred        libx11.so.6
96
ELF  7d77a000-7d78d000  Deferred        libxext.so.6
97
ELF  7d78d000-7d791000  Deferred        libkeyutils.so.1
98
ELF  7d791000-7d796000  Deferred        libcom_err.so.2
99
ELF  7d796000-7d7a4000  Deferred        libavahi-common.so.3
100
ELF  7d7a4000-7d7ba000  Deferred        dwmapi<elf>
101
  \-PE  7d7b0000-7d7ba000  \               dwmapi
102
ELF  7d7bc000-7d84e000  Deferred        winex11<elf>
103
  \-PE  7d7d0000-7d84e000  \               winex11
104
ELF  7da42000-7da6b000  Deferred        libexpat.so.1
105
ELF  7da6b000-7daa6000  Deferred        libfontconfig.so.1
106
ELF  7daa6000-7dace000  Deferred        libpng12.so.0
107
ELF  7dace000-7db6e000  Deferred        libfreetype.so.6
108
ELF  7db9d000-7dbb1000  Deferred        psapi<elf>
109
  \-PE  7dba0000-7dbb1000  \               psapi
110
ELF  7dbb1000-7dbcb000  Deferred        libz.so.1
111
ELF  7dbd5000-7dbfa000  Deferred        imm32<elf>
112
  \-PE  7dbe0000-7dbfa000  \               imm32
113
ELF  7dbfa000-7dc62000  Deferred        dbghelp<elf>
114
  \-PE  7dc00000-7dc62000  \               dbghelp
115
ELF  7dc62000-7dc84000  Deferred        oleacc<elf>
116
  \-PE  7dc70000-7dc84000  \               oleacc
117
ELF  7dc84000-7dd0e000  Deferred        gdiplus<elf>
118
  \-PE  7dc90000-7dd0e000  \               gdiplus
119
ELF  7dd0e000-7de4b000  Deferred        msvcp90<elf>
120
  \-PE  7dd50000-7de4b000  \               msvcp90
121
ELF  7de4b000-7df81000  Deferred        oleaut32<elf>
122
  \-PE  7de60000-7df81000  \               oleaut32
123
ELF  7df81000-7e1b4000  Deferred        shell32<elf>
124
  \-PE  7df90000-7e1b4000  \               shell32
125
ELF  7e1e1000-7e221000  Deferred        winspool<elf>
126
  \-PE  7e1f0000-7e221000  \               winspool
127
ELF  7e221000-7e30c000  Deferred        comdlg32<elf>
128
  \-PE  7e230000-7e30c000  \               comdlg32
129
ELF  7e30c000-7e413000  Deferred        comctl32<elf>
130
  \-PE  7e310000-7e413000  \               comctl32
131
ELF  7e413000-7e435000  Deferred        libtinfo.so.5
132
ELF  7e435000-7e45a000  Deferred        libncurses.so.5
133
ELF  7e45b000-7e475000  Deferred        imagehlp<elf>
134
  \-PE  7e460000-7e475000  \               imagehlp
135
ELF  7e475000-7e489000  Deferred        msimg32<elf>
136
  \-PE  7e480000-7e489000  \               msimg32
137
ELF  7e489000-7e4c1000  Deferred        msvcr100<elf>
138
  \-PE  7e490000-7e4c1000  \               msvcr100
139
ELF  7e4c1000-7e569000  Deferred        msvcrt<elf>
140
  \-PE  7e4d0000-7e569000  \               msvcrt
141
ELF  7e569000-7e596000  Deferred        msvcr90<elf>
142
  \-PE  7e570000-7e596000  \               msvcr90
143
ELF  7e5bc000-7e636000  Deferred        shlwapi<elf>
144
  \-PE  7e5d0000-7e636000  \               shlwapi
145
ELF  7e636000-7e65e000  Deferred        mpr<elf>
146
  \-PE  7e640000-7e65e000  \               mpr
147
ELF  7e65e000-7e689000  Deferred        msacm32<elf>
148
  \-PE  7e660000-7e689000  \               msacm32
149
ELF  7e689000-7e70a000  Deferred        rpcrt4<elf>
150
  \-PE  7e690000-7e70a000  \               rpcrt4
151
ELF  7e70a000-7e846000  Deferred        ole32<elf>
152
  \-PE  7e720000-7e846000  \               ole32
153
ELF  7e846000-7e8b8000  Deferred        advapi32<elf>
154
  \-PE  7e850000-7e8b8000  \               advapi32
155
ELF  7e8b8000-7e9d5000  Deferred        gdi32<elf>
156
  \-PE  7e8c0000-7e9d5000  \               gdi32
157
ELF  7e9d5000-7eb2f000  Deferred        user32<elf>
158
  \-PE  7e9f0000-7eb2f000  \               user32
159
ELF  7eb2f000-7ebe9000  Deferred        winmm<elf>
160
  \-PE  7eb40000-7ebe9000  \               winmm
161
ELF  7ef59000-7ef66000  Deferred        libnss_files.so.2
162
ELF  7ef66000-7ef72000  Deferred        libnss_nis.so.2
163
ELF  7ef72000-7ef8b000  Deferred        libnsl.so.1
164
ELF  7ef8b000-7efd1000  Deferred        libm.so.6
165
ELF  7efe6000-7f000000  Deferred        version<elf>
166
  \-PE  7eff0000-7f000000  \               version
167
ELF  f7411000-f75bf000  Deferred        libc.so.6
168
ELF  f75bf000-f75c4000  Deferred        libdl.so.2
169
ELF  f75c5000-f75e1000  Deferred        libpthread.so.0
170
ELF  f75e7000-f75f0000  Deferred        libnss_compat.so.2
171
ELF  f7610000-f77c5000  Dwarf           libwine.so.1
172
ELF  f77c7000-f77e9000  Deferred        ld-linux.so.2
173
ELF  f77e9000-f77ea000  Deferred        [vdso].so
174
Threads:
175
process  tid      prio (all id:s are in hex)
176
0000000e services.exe
177
  0000001f    0
178
  0000001e    0
179
  00000019    0
180
  00000018    0
181
  00000016    0
182
  00000014    0
183
  00000010    0
184
  0000000f    0
185
00000012 winedevice.exe
186
  0000001d    0
187
  0000001a    0
188
  00000017    0
189
  00000013    0
190
0000001b plugplay.exe
191
  00000021    0
192
  00000020    0
193
  0000001c    0
194
00000027 (D) C:\Program Files (x86)\Atmel\AVR Tools\AvrStudio4\AVRStudio.exe
195
  0000000b   -1
196
  00000047    0
197
  00000046    0
198
  00000044    0
199
  00000042    0
200
  00000040    0
201
  0000003e    0
202
  0000003d    0
203
  0000003c    0
204
  0000003a    0
205
  00000039    0
206
  00000038    0
207
  00000037    0
208
  00000035    0
209
  00000033    0
210
  00000032    0
211
  00000031    0
212
  0000002f    0
213
  0000002d    0
214
  0000002c    0
215
  00000028    0 <==
216
00000029 explorer.exe
217
  0000002b    0
218
  0000002a    0
219
System information:
220
    Wine build: wine-1.6.2
221
    Platform: i386 (WOW64)
222
    Host system: Linux
223
    Host version: 3.13.0-57-generic
224
------------------------------------------------------

von Markus W. (dl8mby)


Lesenswert?

Hallo White Rabbit,

machmal:

find usr -name libwine\*

ldd /usr/lib64/libwine.so.1

und

ldd /usr/lib/libwine.so.1

und schau Dir die Ausgabe an, ob eventuell Libs fehlen.

Ebenso bei wine

which wine
/usr/bin/wine

ldd /usr/bin/wine

Falls was fehlt, nachinstallieren.

Eventuell benötigst Du winetricks um
MS-Libs zu installieren, die AVR-Studio benötigt.

Gruß
Markus

von White R. (Firma: n/a) (white_rabbit)


Lesenswert?

1
> find /usr/ -name libwine\*
2
3
/usr/lib/x86_64-linux-gnu/libwine.so.1.0
4
/usr/lib/x86_64-linux-gnu/libwine.so.1
5
/usr/lib/x86_64-linux-gnu/wine/libwinecrt0.a
6
/usr/lib/x86_64-linux-gnu/wine/libwined3d.def
7
/usr/lib/x86_64-linux-gnu/libwine.so
8
/usr/lib/i386-linux-gnu/libwine.so.1.0
9
/usr/lib/i386-linux-gnu/libwine.so.1
10
/usr/lib/i386-linux-gnu/wine/libwinecrt0.a
11
/usr/lib/i386-linux-gnu/wine/libwined3d.def
12
/usr/lib/i386-linux-gnu/libwine.so
13
14
15
> ldd /usr/lib64/libwine.so.1
16
ldd: /usr/lib64/libwine.so.1: Datei oder Verzeichnis nicht gefunden
17
18
> ldd /usr/lib/libwine.so.1
19
ldd: /usr/lib/libwine.so.1: Datei oder Verzeichnis nicht gefunden
20
21
> und schau Dir die Ausgabe an, ob eventuell Libs fehlen.
22
Offensichtlich ... weißt du, wie die benötigten Pakete heißen?
23
24
25
> which wine
26
> /usr/bin/wine
27
Ja, ist bei mir auch so.
28
29
30
> ldd /usr/bin/wine
31
  linux-gate.so.1 =>  (0xf76e9000)
32
  libwine.so.1 => /usr/bin/../lib/i386-linux-gnu/libwine.so.1 (0xf7532000)
33
  libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf74e7000)
34
  libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf74e1000)
35
  libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf7333000)
36
  /lib/ld-linux.so.2 (0xf76ea000)

> Eventuell benötigst Du winetricks um
Winetricks habe ich ... aber
> MS-Libs zu installieren, die AVR-Studio benötigt.
... welche?

von White R. (Firma: n/a) (white_rabbit)


Lesenswert?

Sehe gerade, dass ich stattdessen dieses Verzeichnis habe:
1
locate libwine.so.1
2
/opt/wine-staging/lib/libwine.so.1
3
/opt/wine-staging/lib/libwine.so.1.0
4
/opt/wine-staging/lib64/libwine.so.1
5
/opt/wine-staging/lib64/libwine.so.1.0
6
/usr/lib/i386-linux-gnu/libwine.so.1
7
/usr/lib/i386-linux-gnu/libwine.so.1.0
8
/usr/lib/x86_64-linux-gnu/libwine.so.1
9
/usr/lib/x86_64-linux-gnu/libwine.so.1.0
darin liegen die Dateien offenbar. Zum Teil installiert von 
"wine1.6-amd64"

: Bearbeitet durch User
von Markus W. (dl8mby)


Lesenswert?

Hallo White Rabbit,

winetricks aufrufen und z.B. MSVC Libs installieren.

Wird automatisch via Webdownload von MS gemacht.

Kann nicht sagen, ob es Dir bei AVR-Studio hilft,
mir hat es aber bei anderen Programen geholfen.

Da ist etwas Probieren angesagt.

Es sei denn Jamand weiss es ganz ganau, an welcher Stellschraube
zu drehen ist.

Viel Glück & Erfolg!

Markus

Nachtrag:

winetricks dlls list
====================

Markus

: Bearbeitet durch User
von White R. (Firma: n/a) (white_rabbit)


Lesenswert?

>
> winetricks aufrufen und z.B. MSVC Libs installieren.

So ein Paket gibts hier nicht ... es gibt aber eins, das so ähnlich 
klingt:
msvcirt ... und das ist drauf.

Mich wundert, dass dieses Problem offenbar sonst niemand hat??

von Bernd K. (prof7bit)


Lesenswert?

White R. schrieb:
> Mich wundert, dass dieses Problem offenbar sonst niemand hat??

Weil keiner auf die abwegige Idee kommt ein prähistorisches Atmelstudio 
unter Linux zu verwenden? Wozu auch?

von Markus W. (dl8mby)


Lesenswert?

Hallo White Rabbit,

wenn Dein Rechner genug Power und RAM hat, kannst Du ja via Qemu od.
Virtualbox einen virtuellen Win-XP Rechner installieren und damit Dein
Glück mit AVR-Studio versuchen.

In wie weit Probleme beim Brennen via USB/RS232 mit dieser Methode 
entstehen ist eine andere Frage.

Gruß
Markus

von w.r. (Gast)


Lesenswert?

Was verwendet du denn stattdessen?
Die neueren Versionen sind alle riiiiesig und laufen mit wine auch nicht 
vernünftig (laut winehq)

von ich (Gast)


Lesenswert?

einen Normelen Editor (kate bzw. geany) und ne Konsole.

Oder
Für Eclipse gibt/gab es eine AVR addon.
MfG
ich

von White R. (Firma: n/a) (white_rabbit)


Lesenswert?

Und wie kompilierst du den Code (in der Konsole)?
Kannst du den Aufruf mal hier posten?

avrdude funktioniert hier bereits ... der Zwischenschritt fehlt mir aber 
unter Linux noch.

Übrigens: unter Virtualbox läuft es natürlich ... aber eigentlich wollte 
ich es einfach(er) haben...

von Peter II (Gast)


Lesenswert?

White R. schrieb:
> Und wie kompilierst du den Code (in der Konsole)?

make

von ich (Gast)


Lesenswert?

hi, machst dein makefile (bin grad net daheim),
und dann:
1
> make
2
> make Flash #selbst hinzugefügt bin zu faul, immer den riesen befehl zu suchen

debuggen über avarice und gdb (bzw. mit einer seiner GUIs).

also kein Hexenwerk.
MfG
ich

von White R. (Firma: n/a) (white_rabbit)


Lesenswert?

Äh -- so einfach??? Ohne weitere Optionen? Rafft "make" von selbst, für 
welche Plattform da programmiert wurde???

von c-hater (Gast)


Lesenswert?

Bernd K. schrieb:

> Weil keiner auf die abwegige Idee kommt ein prähistorisches Atmelstudio
> unter Linux zu verwenden? Wozu auch?

Weil's allemal besser ist, als auf der Kommandozeile rumzuhampeln wie zu 
Zeiten unserer ehrwürdigen Ahnen?

Oder alternativ: Weil man damit noch vor dem Wärmetod des Universums zu 
einem Ergebnis kommt? Im Gegensatz zu Java-Bläh wie Eclipse, was noch 
nichtmal ganz fertig gestartet ist, wenn ich im Atmel-Studio4 schon 
lustig das fertige Programm im Simulator laufen lasse...

von klausr (Gast)


Lesenswert?

White R. schrieb:
> Äh -- so einfach??? Ohne weitere Optionen? Rafft "make" von selbst, für
> welche Plattform da programmiert wurde???

Nein, das steht natürlich im Makefile. So ein Makefile schreibt man 
einmal und verwendet es dann als Template. Beispiel für ein STM32 
Makefile:
1
# Makefile for STM32F4
2
3
TARGET:=Blinker
4
5
TOOLCHAIN_PATH:=/usr/bin
6
TOOLCHAIN_PREFIX:=arm-none-eabi
7
OPTLVL:=s # Optimization level, can be [0, 1, 2, 3, s].
8
9
PROJECT_NAME:=$(notdir $(lastword $(CURDIR)))
10
SYSLIBS:=$(CURDIR)/syslibs
11
DISCOVERY:=$(SYSLIBS)/STM32F4-Discovery
12
STMLIB:=$(SYSLIBS)/StdPeriphLib
13
STD_PERIPH:=$(STMLIB)/STM32F4xx_StdPeriph_Driver
14
LINKER_SCRIPT=$(SYSLIBS)/ldscript/stm32_flash.ld
15
16
INCLUDE=-I$(CURDIR)
17
INCLUDE+=-I$(SYSLIBS)/CMSIS  
18
INCLUDE+=-I$(STMLIB)
19
INCLUDE+=-I$(STD_PERIPH)/inc
20
INCLUDE+=-I$(DISCOVERY)
21
22
# vpath is used so object files are written to the current directory instead
23
# of the same directory as their source files
24
vpath %.c $(DISCOVERY) $(STD_PERIPH)/src $(SYSLIBS)/Startup
25
26
# Startup File
27
SRC = stm32f4xx_Startup.c
28
29
# Project Source Files
30
SRC += main.c
31
SRC += stlinky.c
32
33
# Discovery Source Files
34
SRC += stm32f4_discovery.c
35
36
# Standard Peripheral Source Files
37
SRC+=misc.c
38
SRC+=stm32f4xx_exti.c
39
SRC+=stm32f4xx_flash.c
40
SRC+=stm32f4xx_gpio.c
41
SRC+=stm32f4xx_rcc.c
42
SRC+=stm32f4xx_syscfg.c
43
44
CDEFS=-DSTM32F4XX
45
CDEFS+=-DUSE_STDPERIPH_DRIVER
46
47
MCUFLAGS=-mcpu=cortex-m4 -mthumb
48
#MCUFLAGS=-mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -ffunction-sections -fdata-sections -Os -flto 
49
#MCUFLAGS=-mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb
50
51
COMMONFLAGS=-O$(OPTLVL) -g -Wall -Werror 
52
CFLAGS=$(COMMONFLAGS) $(MCUFLAGS) $(INCLUDE) $(CDEFS)
53
54
LDLIBS=
55
LDFLAGS=$(COMMONFLAGS) -fno-exceptions -ffunction-sections -fdata-sections -nostartfiles -Wl,--gc-sections,-T$(LINKER_SCRIPT)
56
57
#####
58
#####
59
60
OBJ = $(SRC:%.c=%.o) $(ASRC:%.s=%.o)
61
62
CC=$(TOOLCHAIN_PATH)/$(TOOLCHAIN_PREFIX)-gcc
63
LD=$(TOOLCHAIN_PATH)/$(TOOLCHAIN_PREFIX)-gcc
64
OBJCOPY=$(TOOLCHAIN_PATH)/$(TOOLCHAIN_PREFIX)-objcopy
65
AS=$(TOOLCHAIN_PATH)/$(TOOLCHAIN_PREFIX)-as
66
AR=$(TOOLCHAIN_PATH)/$(TOOLCHAIN_PREFIX)-ar
67
GDB=$(TOOLCHAIN_PATH)/$(TOOLCHAIN_PREFIX)-gdb
68
69
70
all: $(OBJ)
71
  $(CC) -o $(TARGET).elf $(LDFLAGS) $(OBJ)  $(LDLIBS)
72
  $(OBJCOPY) -O ihex   $(TARGET).elf $(TARGET).hex
73
  $(OBJCOPY) -O binary $(TARGET).elf $(TARGET).bin
74
  mv $(OBJ) objs
75
  
76
.PHONY: clean
77
78
clean:
79
  rm -f objs/* 
80
  rm -f $(TARGET).elf
81
  rm -f $(TARGET).hex
82
  rm -f $(TARGET).bin
83
  rm -f *~
84
85
flash:
86
  st-flash write $(TARGET).bin 0x8000000

von w.r. (Gast)


Lesenswert?

Bei aller Linux-Begeisterung: Einfacher ist das so nicht....
Mir wäre ein laufendes AVRStudio immer noch lieber.

von Bernd K. (prof7bit)


Lesenswert?

w.r. schrieb:
> Bei aller Linux-Begeisterung: Einfacher ist das so nicht....
> Mir wäre ein laufendes AVRStudio immer noch lieber.

Dann installier halt Eclipse und das AVR-Plugin dafür, zieh Dir bei der 
Gelegenheit noch die aktuelle Linux-Toolchain von Atmel (die von Ubuntu 
geht auch, ist aber älter), fertig.

Da Eclipse auch für andere Sachen die IDE der Wahl ist trifft sich das 
ganz gut, auch unter Windows macht Eclipse deutlich mehr Spaß als das 
monströse und hässliche Atmel-Studio (6.x) mit seimem halbgaren Editor 
(die wichtigste Komponente einer IDE) der nur eine halbgare 
Autocomplete-Atrappe anbietet und auch sonst selbst die grundlegendsten 
Assistenzfunktionen vermissen lässt, dafür aber mit einer fehlerhaften 
und nicht abschaltbaren Codeformatierung aufwartet die einem zwölf mal 
am Tag ungefragt irgendwo ein } else { verrutscht (übrigens DAS ALLEIN 
schon hätte mir nach ein paar Tagen gereicht), da macht Eclipse mehr 
Spaß und senkt auch den Blutdruck.

Wenn man einmal mit Eclipse das Licht gesehen hat dann will man die 
halbfertige Atmel-Spielzeuig-IDE nicht mehr mit der Beißzange anfassen.

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.