Seite 2 von 2

Re: UP Display in B&J Timer Gehäuse

Verfasst: 5. Aug 2017, 23:14
von Klamm
Hallo!

Da ich in letzter Zeit irgendwie nie jemanden im Chat antreffe antworte ich mal selbst auf meinen Letzten Beitrag hier.

Also die Funktion Speicherinhalt AC anfordern, Speicherinhalt AC antworten, Speicherinhalt AC senden entsprechen den Funktionen UserMemoryRead,-Response und -Write.

Nach einem Memory Read 01 80 FF (01= Wie viele Bytes ausgegeben werden sollen 80 FF= die Startadresse der zu lesenen Bytes) vom Bus kommt auch die Antwort auf dem Bus UserMemoryResponse 01 80 FF. Nur eben kein Speicherinhalt.

Ich habe jetzt einfach mal den Code vom einfachen MemoryRead und MemoryWrite genommen und die Bit´s geändert, die die Art der APCI Antwort angeben.
Ausserdem habe ich den Code minimal geänert, damit die richtige anzahl an Bytes ausgelesen und geantwortet bzw beschrieben wird.

Das Blöde ist, dass ich mit userEeprom[0x80FF]=8; (8 ist die Antwort die ETS hier verlangt) hier nicht weiter komme, weil beim debuggen dann immer

__attribute__ ((section(".after_vectors")))
void HardFault_Handler(void)
{
while(1)
{
}
}

kommt.

Wenn ich den User_Eeprom_Size einfach auf zb 32000 stelle um dann auch auf 80FF zugreifen zu können bekomme ich beim Build die Fehlermeldung, dass RamLoc8 bss um 22000 Stellen überlaufen ist.

Ich werde dem weiter nachgehen aber vielleicht hat ja hier einer eine Idee oder einen Lösungsansatz.

Hatte jetzt folgende Ideen:
1. Nicht den RAM beschreiben sondern mit IAP direkt irgendwie den Flash beschreiben, bei UserMemoryWrite.
2. Die Eeprom Größe wirklich irgendwie vergrößern um über den gleichen Code wie MemoryRead/Write nutzen zu können.

Weiß bei beidem aber nicht wirklich was oder wie ich das angehen soll.