Zwei Programme zusammenhängen

Gast #688378
Lesenswert?
• ▲
▼
Hallo

Ich möchte auf einen AVR zwei Programme laden. Ich möchte folgendes 
machen: Nach einem Reset liest der AVR einen Schalter ein und springt 
dann entweder zum ersten oder zum zweiten Programm.
Kann der AVR-GCC anstelle einer hex Datei nur Assembler machen? Dann 
könnte ich den Programmstart in ASM schreiben und das ganze so 
zusammenhängen. Oder hat jemand einen anderen Vorschlag?

Danke für eure Hilfe
Gast #688391
Lesenswert?
• ▲
▼
So etwa?

---
main_one(void)
{
 while(1)
 {

 }
}

main_two(void)
{
 while(1)
 {

 }
}

int main(void)
{
 uint8_t x=0;

 DDRA = 0x00;
 x = PINA;
 x &= 0x01;

 if(x == 0)
 {
  main_one();
 }
 else if(x == 1)
 {
  main_two();
 }

}
---
#689025
Lesenswert?
• ▲
▼
Philipp wrote:
> Es sind unabhängige Projekte. Aber ich habe eine Lösung: Ich
> disassembliere die HEX Datei, die mir der GCC gemacht hat, und bau die
> zwie ASM Files zusammen.

Viel Spass.
Da dürfte es wesentlich einfacher sein ein drittes Projekt
aufzusetzen, welches die Teile aus den beiden vorhandenen
Projekten in Quellcodeform wiederverwendet. Dazu müssen
wahrscheinlich die beiden Originalprojekte etwas verändert
werden, vorallem wirst du in main() etwas aufräumen müssen
und möglicherweise eine Zwischenfunktion so wie das oben
schon mal gezeigt wurde, einbauen, aber das hat wenigstens
Zukunft und ist zum Laufen zu bringen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 19 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.