Hi,
hab das STM8S-Discovery Board auf dem Tisch liegen und bekomm die
dazugehörige IDE nicht zum laufen.
Es soll 2 C compiler geben Cosmic und Raisonance.
Wie kann ich die Einbinden? in STVD?
Welche Option gibt es noch als kostenlose IDE?
THX
tweaker
Moin,
ich meine bei ST gelesen zu haben das in Zukunft nur noch der IAR direkt
unterstützt wird.
Ich habe mir Cosmic, Raisonance und IAR angeschaut und bin mit dem IAR
am besten zurecht gekommen.
Alles aus einem Guss ohne Zuhilfenahme von 3rd party Beschreibungen
problemlos in Betrieb zu nehmen.
(max. code size ??? Mein stm8s003 hat nur 8K)
Den Cosmic in die merkwürdige ST IDE einzubinden fand ich gruselig.
Wenn sich noch nicht mal die Examples ohne Fehlermeldung kompilieren
lassen und in der sehr dürftigen Doku Schritte und Menues beschrieben
werden die unauffindbar sind ... Weiß nicht ...
Raisonace hat eine ganz nette IDE wollte aber von dem STlink nichts
wissen.
Für Lau, ohne Beschränkungen: http://sourceforge.net/projects/sdccstm/
Der STM8 Port ist soweit ich weiß recht neu.
Ich mag den SDCC habe aber nur auf 8051 Derivaten damit gearbeitet und
kann zum STM8 Port nix sagen.
Stichwort ST Doku:
Tretet ein und lasset alle Hoffnung fahren.
Ganz schlimmer verquerer Kram den ST da raushaut, sofern man es
geschafft hat das was überhaupt dokumentiert ist in den Tiefen der ST
Server zu finden.
Die Peripheral Librarys sind eher so grobe Ideen wie Peripherie
anzusprechen wäre. Nett um mal in den Code zu schauen wie die das
machen.
Minimaler Nutzen mit maximaler Befehlsanzahl scheint die Devise zu sein.
Gruß
Michael
kann man das ganze auch in vergleich zu nem Atmega setzten?
Sind jetzt auf den ersten blick nur negative Punkte.
Wieso wird der STM8 aber dann so oft eingesetzt?
@Alex
Der 003 kostet gerade mal 30Cent. Darum werden die viel eingesetzt.
Pro:
- SEHR viel MCU fürs Geld
- Debugger / Programmer für 5 Euro
- Gute und durchdachte Peripherie
Der Wechsel auf die sehr populären STM32 soll relativ einfach sein.
So sagt man ...
ATmega:
Schwierig direkt zu vergleichen.
Risc statt Cisc und Harvard statt von Neumann.
Die Megas sind wirklich toll, die IDE und das Software Framework ist
sehr anständig.
Megas sind älter, teurer und sehr gut beschrieben.
Ich persönlich finde die Xmegas Turbo gut, aber die haben zum Teil noch
hässliche bugs wenn man versucht die nagelneue Peripherie in sehr
speziellen Kombinationen zu betreiben. Muss man ja aber auch nicht tun.
Der unzuverlässige Debugger nervt da viel mehr.
Microchip Pics liegen irgendwo dazwischen.
Für wirklich jeden absurden Spezialfall gibt es einen ideal passenden
PIC.
Zumeist ein sehr anständiges Preis Leistungsverhältniss.
Finde ich auch gut, aber man muss ordentlich extra Zeit einplanen um
diese absurden PIC Bugs zu finden, oder den alles entscheidenden kleinen
Satz in 1000 Seiten Fließtext der erklärt warum es nicht geht obwohl es
gehen müsste.
Ein Kriterium ist auch wie leicht man ein MCU Model upgraden kann ohne
den Code umzuschreiben. mega = gut, xmega = exzellent, PIC = mal so mal
so,
ST = grusel. (stm8s003: TSSOP & QFN Gehäuse sind nicht
softwarekompatibel)
Ergo:
Zeige mir die MCU bei der alles stimmt.
Es gibt einfache, schnelle, billige und vielseitige MCUs
Ich habe aber noch keine gefunden die alles zugleich wäre.
Gruß
Michael
vielen Dank, dann mal ein konkretes problem:
bekomme den timer3 interrupt nicht zum laufen am stm8s105c6
Discovery-Board.
Habe das Beispiel-Projekt für das STM8S-Discovery mit dem
Touch-blink-Led umgeschrieben.
Aber der geht nach ein paar zyklen immer in exeption...
Woran kann das liegen`? Irgendwie passt was mit dem Interrupt vector
nicht?!?...
1
/* Includes ------------------------------------------------------------------*/
>Es soll 2 C compiler geben Cosmic und Raisonance.
Raisonance hat wohl eine modernere IDE.
>Der 003 kostet gerade mal 30Cent.
Ja, wenn man damit hinkommt.
Die CPU ist oft schneller als AVR, aber STM8 haben auch Nachteile.
Ua sind nur wenige IOPins schnell schaltbar und haben höheren I (weshalb
man das jedesmal extra nachprüfen muss). Auch gibt es da mMn (noch)
wenige Derivate.
Hab ich auch erst so gemacht.
Hat auch nicht geklappt und da hab ich mich an das ST Konzept gehalten.
stm8s_it.h / .c einbinden
in der .c den richtigen Abschnitt suchen und editieren.
Bei mir z.B. der Timer1 overflow
/**
* @brief Timer1 Capture/Compare Interrupt routine.
* @param None
* @retval None
*/
INTERRUPT_HANDLER(TIM1_CAP_COM_IRQHandler, 12)
{
/* In order to detect unexpected events during development,
it is recommended to set a breakpoint on the following instruction.
*/
TIM1_OCx_IRQ_Routine(); // das ist meine Routine in der main()
}
in der main()
void TIM1_OVF_IRQ_Routine(void)
{
//
}
Wo ist Dein " enableInterrupts(); " ?
vielen Dank.
Ich habs nun so gelöst mit hilfe der iostm8s105c6.h habe ich die nummern
der Vectoren ausgelesen.(Die Header lässt sich nicht compileren warum
auch immer...)
und direkt reingeschrieben. Jetzt springt er in den TimerInterrupt.
richtig die Flags hab ich auch zurücksetzten müssen.
1
/* Includes ------------------------------------------------------------------*/
Jetzt kommen aber die Interrupts immer an unterschiedlichen stellen.
Normalerweise sollte ja einer nach Timer überlauf und der andere am
Vergleichsergebnis kommen?
mal noch ne Frage:
Wenn ich die "iostm8s003f3.h" einfüge bekomme ich beim compilieren immer
folgende Fehlermeldung
Error[Pe018]: expected a ")" C:\Program Files (x86)\IAR Systems\Embedded
Workbench 6.5\stm8\inc\iostm8s003f3.h 1164
Woran kann das liegen?
Eine eigene Frage?
Dieser Thread ist über 13 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.