Atollic TrueStudio - undefined _ebss

OP #5266993
Hallo zusammen

Ich versuche ein Beispielprojekt aus der 
STM32_USB-Host-Device_Lib_V2.1.0 zu compilieren.

in der 2.1.0 gab es im gegensatz zur 2.2.0 noch ein Aollic Projekt.
Ich habe also das Projekt importiert und versuche zu builden.

Leider bekomme ich die Fehler:
1
undefined reference to `_ebss'  startup_stm32f10x_cl.s  line 100  C/C++ Problem
2
undefined reference to `_estack'  startup_stm32f10x_cl.s  line 73  C/C++ Problem
3
undefined reference to `_sbss'  startup_stm32f10x_cl.s  line 91  C/C++ Problem
4
undefined reference to `_sdata'  startup_stm32f10x_cl.s  line 86  C/C++ Problem
5
undefined reference to `_sidata'  startup_stm32f10x_cl.s  line 80  C/C++ Problem

_ebss ist jedoch im Startup definiert. Wie alle anderen auch:
1
/* start address for the initialization values of the .data section.
2
defined in linker script */
3
.word  _sidata
4
/* start address for the .data section. defined in linker script */
5
.word  _sdata
6
/* end address for the .data section. defined in linker script */
7
.word  _edata
8
/* start address for the .bss section. defined in linker script */
9
.word  _sbss
10
/* end address for the .bss section. defined in linker script */
11
.word  _ebss


Ich nutze Atollic 8.0.0


Hoffe jemand kann helfen.
Danke!
Gast #5267066
Claudio H. schrieb:
> _ebss ist jedoch im Startup definiert. Wie alle anderen auch:

Das sind keine Definitionen, sondern Imports. Diese Symbole sind im 
Linker-Script (.ld Endung) definiert. Hast du das korrekt importiert und 
in TrueStudio eingestellt?
OP #5267067
Dr. Sommer schrieb:
> Claudio H. schrieb:
>> _ebss ist jedoch im Startup definiert. Wie alle anderen auch:
>
> Das sind keine Definitionen, sondern Imports. Diese Symbole sind im
> Linker-Script (.ld Endung) definiert. Hast du das korrekt importiert und
> in TrueStudio eingestellt?

Vermutlich habe ich dies wohl nicht richtig gemacht.

Wie importiert man denn ein Linkerscript in atollic?
Gast #5267069
Claudio H. schrieb:
> Wie importiert man denn ein Linkerscript in atollic?
Keine Ahnung, man bezahlt doch extra Geld dafür dass das da alles so 
einfach ist (SCNR)! Bei "normalem" eclipse stellt man das in den 
Projekteigenschaften bei den Linker Settings ein.
Gast #5267117
Claudio H. schrieb:
> Ja. Es ist für den selben Controller.
Dann ist's ja gut. Btw, falls du an der Implementierung von USB und VCP 
auf STM32 interessiert bist, schau vielleicht mal hier: 
USB-Tutorial mit STM32

Hast du denn auch die anderen Einstellungen übernommen, also 
Compiler-Optionen für den Controller (-mcpu=..., -mfpu=... usw.)? Das 
wäre die nächste Fehlerquelle...
OP #5267164
Dr. Sommer schrieb:
> falls du an der Implementierung von USB und VCP
> auf STM32 interessiert bist, schau vielleicht mal hier:
> USB-Tutorial mit STM32

Ja bin ich.
Hab mir das tutorial bereits angeschaut.
Leider ist es in C++. Ich habe grundsätzlich keine Mühe mit C++, möchte 
das aktuelle Projekt jedoch nicht portieren.

Dr. Sommer schrieb:
> Hast du denn auch die anderen Einstellungen übernommen, also
> Compiler-Optionen für den Controller (-mcpu=..., -mfpu=... usw.)? Das
> wäre die nächste Fehlerquelle...

Nein habe ich nicht.


Leider scheint ein VCP relativ komplext zu implementiere zu sein.
Was ich an den Examples von ST nicht mag sind die ständigen 
Abhängigkeiten von ihren Eval Boards im Code. Immer diese vielen 
verstreuten Includes.
Bis man da durchblickt....

Habe nun versucht den code von hier in ein neues Projekt zu integrieren:
https://codeofphi.com/?p=23

Leider scheitere ich an: Symbol 'RCC_USBCLKSource_PLLCLK_1Div5' could 
not be resolved

Obwohl ich das entsprechende File includiert habe und Eclipse auch 
hinspringt bei CTRL+Click.

Anbei mal das Zip mit den Files.


Kennt jemand eventuell eine möglichst schlanke, C implementation eines 
VCPs auf einem STM32F105/103?
Angehängte Dateien:
Gast #5267188
Claudio H. schrieb:
> Leider ist es in C++. Ich habe grundsätzlich keine Mühe mit C++, möchte
> das aktuelle Projekt jedoch nicht portieren.
Ist doch nur minimaler Aufwand, wenn du nicht gerade exzessiv 
C++-Bezeichner wie "this" oder "class" verwendet hast... Aber das 
Tutorial funktioniert eh nicht mit dem STM32F105, weil der die deutlich 
kompliziertere "OTG"-USB-Peripherie hat.

Claudio H. schrieb:
> Leider scheint ein VCP relativ komplext zu implementiere zu sein.
Der VCP nicht so, aber die USB-Ansteuerung, ja.

Claudio H. schrieb:
> Was ich an den Examples von ST nicht mag sind die ständigen
> Abhängigkeiten von ihren Eval Boards im Code. Immer diese vielen
> verstreuten Includes.
Seh ich genauso...

Claudio H. schrieb:
> Leider scheitere ich an: Symbol 'RCC_USBCLKSource_PLLCLK_1Div5' could
> not be resolved
Der Code klappt mit dem STM32F105 eh nicht, weil der wie gesagt die 
"OTG"-Peripherie nutzt.

Claudio H. schrieb:
> Kennt jemand eventuell eine möglichst schlanke, C implementation eines
> VCPs auf einem STM32F105/103?
Für den F103 gäbs noch den von W.S.: 
Beitrag "Re: STM32F4 USB CDC"
Für den F105 wirds kaum eine "schlanke" geben, denn der "OTG"-Core ist 
sehr komplex.
OP #5269672
Dr. Sommer schrieb:
> Claudio H. schrieb:
>> Kennt jemand eventuell eine möglichst schlanke, C implementation eines
>> VCPs auf einem STM32F105/103?
> Für den F103 gäbs noch den von W.S.:
> Beitrag "Re: STM32F4 USB CDC"
> Für den F105 wirds kaum eine "schlanke" geben, denn der "OTG"-Core ist
> sehr komplex.

Für die Nachwelt:

Hier habe ich eine "schlanke" Implementation des VCPs durchgeführt.
Es ist alles im ZIP enthalten.

Beitrag "Re: STM32 - BusFault finden"

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 8 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.