Gast
#1858882
Hallo, in anlehnung an meinen Beitrag vor einigen Tagen zum AMD NET186 Board (was keiner zu kennen schien) habe ich noch eine frage. Nach vielen Stunden suchen bin ich im Webarchiv in einer version von 2002 der AMD seite doch auf die Dateien gestoßen die ich brauche. Ein programmierbeispiel habe ich angehängt. Um folgendes geht es auch in meiner Frage. Der speicher ist wie folgt auf geteilt: 0h-7ffff -> RAM; 80000h - FFFFFh -> ROM (Flash). Die serielle schnittstelle nimmt die *.hex dateien (mittels MAKEHEX aus exe erstellt) entgegen und bringt sie an ihren Adressen im speicher unter. In der Main file steht: ** For this version of the program, I will choose to put SRAM at ** 80000h, and modify UMCS to move start of flash to C0000h. THis is ** because E86MON puts it's stack at the top of DRAM at 7ffffh, and moving ** DRAM down would crash E86MON. ** Note that if this code is saved in Flash by an E86MON download, it will ** be saved at 80000h. When E86MON runs it, it moves the code to DRAM first. ** Then the code will make the lower part of Flash not available. So ** a reset must be pressed after running the code to regain access to the ** lower part of Flash. ICh kann aber nirgendwo im Programmcode irgendwas entdecken das das verursachen könnte (außer tonnenweise defines die ich nicht durchblicke). Auch in den batchdateien nichts zu finden. Kann mir bitte jemand erklären wie man dafür sorgt das ein C programm an eine bestimmte stelle im Speicher geschrieben wird? In ASM gäbe es die ORG direktive. Gibt es sowas ähnliches auch in C? Aber bei einer EXE macht das ja eigentlich überhaupt keinen sinn oder? mfg. Sebastian