<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[String aus MC Flash mit strcat lesen wie?]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte ein String das sich im Flash eines MC's befindet auslesen bekomme es aber nicht hin.</p>
<p>Das String ist in ASCII + 0x00 am Ende im Flash hinterlegt.</p>
<pre><code>strcpy(Command,&quot;Firmware: &quot;);				// FW-Version
strcat(Command, ??? Pointer to Flash address ???);
</code></pre>
<p>Ich weis nicht wie ich den Pointer auf das String setzten muss...<br />
Das String befindet sich ab Adresse: 0xDF6080</p>
<p>Hier ein Beispiel wir ein 16-Bit Wert aus dem Flash ausgelesen wird:</p>
<pre><code>// Read from Flash
unsigned short read_flash(unsigned short adr)
{
		return (*(__far unsigned int*) (0xDF6000 + adr * 2));
}
</code></pre>
<p>Gruß<br />
Jackson</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/346963/string-aus-mc-flash-mit-strcat-lesen-wie</link><generator>RSS for Node</generator><lastBuildDate>Sun, 12 Apr 2026 06:26:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/346963.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 31 Mar 2018 13:01:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to String aus MC Flash mit strcat lesen wie? on Sat, 31 Mar 2018 13:01:22 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte ein String das sich im Flash eines MC's befindet auslesen bekomme es aber nicht hin.</p>
<p>Das String ist in ASCII + 0x00 am Ende im Flash hinterlegt.</p>
<pre><code>strcpy(Command,&quot;Firmware: &quot;);				// FW-Version
strcat(Command, ??? Pointer to Flash address ???);
</code></pre>
<p>Ich weis nicht wie ich den Pointer auf das String setzten muss...<br />
Das String befindet sich ab Adresse: 0xDF6080</p>
<p>Hier ein Beispiel wir ein 16-Bit Wert aus dem Flash ausgelesen wird:</p>
<pre><code>// Read from Flash
unsigned short read_flash(unsigned short adr)
{
		return (*(__far unsigned int*) (0xDF6000 + adr * 2));
}
</code></pre>
<p>Gruß<br />
Jackson</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2554347</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2554347</guid><dc:creator><![CDATA[Jackson0]]></dc:creator><pubDate>Sat, 31 Mar 2018 13:01:22 GMT</pubDate></item><item><title><![CDATA[Reply to String aus MC Flash mit strcat lesen wie? on Sun, 01 Apr 2018 05:11:10 GMT]]></title><description><![CDATA[<pre><code>const char *string = (char*)0xDF6080;
puts(string);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2554387</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2554387</guid><dc:creator><![CDATA[Wutz]]></dc:creator><pubDate>Sun, 01 Apr 2018 05:11:10 GMT</pubDate></item><item><title><![CDATA[Reply to String aus MC Flash mit strcat lesen wie? on Sun, 01 Apr 2018 05:37:29 GMT]]></title><description><![CDATA[<p>Jackson0 schrieb:</p>
<blockquote>
<p>Hier ein Beispiel wir ein 16-Bit Wert aus dem Flash ausgelesen wird:</p>
<pre><code>// Read from Flash
unsigned short read_flash(unsigned short adr)
{
		return (*(__far unsigned int*) (0xDF6000 + adr * 2));
}
</code></pre>
</blockquote>
<p>Für String dann so:</p>
<pre><code>__far char* get_str_from_flash (unsigned short offset)
{
    return (__far char*) (0xDF6000 + offset);
}
</code></pre>
<p>Wobei der Offset in deinem konkreten Fall 0x80 sein muss</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2554388</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2554388</guid><dc:creator><![CDATA[Pulling my Strings]]></dc:creator><pubDate>Sun, 01 Apr 2018 05:37:29 GMT</pubDate></item><item><title><![CDATA[Reply to String aus MC Flash mit strcat lesen wie? on Sun, 01 Apr 2018 13:40:42 GMT]]></title><description><![CDATA[<p>funktioniert leider beides nicht.</p>
<p>Ich glaube das (__far unsigned int*) nicht mit der Datenstrucktur zu tun hat, also egal ob es char, short oder sonstwas ist, sondern das das rein was mit der Speicheradresse des Flash (0xDF6xxx) zu tun hat.<br />
Deswegen muss es immer Integer sein.</p>
<p>Kann man nicht irgendwie direkt den Pointer in strcat auf die Flash Speicherstelle setzen wie in dem Beispiel:</p>
<pre><code>strcat(Command,&amp;InputData[13]);
</code></pre>
<p>Das InputData String ist 30 Bytes groß un der Pointer wird ab Byte 14 bis Stringende gesetzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2554416</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2554416</guid><dc:creator><![CDATA[Jackson0]]></dc:creator><pubDate>Sun, 01 Apr 2018 13:40:42 GMT</pubDate></item><item><title><![CDATA[Reply to String aus MC Flash mit strcat lesen wie? on Sun, 01 Apr 2018 17:10:43 GMT]]></title><description><![CDATA[<p>Manchmal gibt es für den Flashzugriff eigene Funktionen.<br />
Das hängt aber auch vom µC und Compiler ab.</p>
<p>Da diese Informationen aber streng geheim sind, dürfen die genauen Antworten auch nicht öffentlich gepostet werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2554425</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2554425</guid><dc:creator><![CDATA[DirkB]]></dc:creator><pubDate>Sun, 01 Apr 2018 17:10:43 GMT</pubDate></item><item><title><![CDATA[Reply to String aus MC Flash mit strcat lesen wie? on Sun, 01 Apr 2018 18:02:25 GMT]]></title><description><![CDATA[<p>_far und _near (oder so), geben die adressbreite an. vielleicht musst du eine spezielle lstrcat-funktion nehmen, die mit __far char* umgehen kann? wie heißt der chip den du benutzt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2554426</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2554426</guid><dc:creator><![CDATA[Stringer]]></dc:creator><pubDate>Sun, 01 Apr 2018 18:02:25 GMT</pubDate></item><item><title><![CDATA[Reply to String aus MC Flash mit strcat lesen wie? on Sun, 01 Apr 2018 18:04:15 GMT]]></title><description><![CDATA[<p>DirkB schrieb:</p>
<blockquote>
<p>Da diese Informationen aber streng geheim sind, dürfen die genauen Antworten auch nicht öffentlich gepostet werden.</p>
</blockquote>
<p>das ist doch egal.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2554427</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2554427</guid><dc:creator><![CDATA[stringteufel]]></dc:creator><pubDate>Sun, 01 Apr 2018 18:04:15 GMT</pubDate></item><item><title><![CDATA[Reply to String aus MC Flash mit strcat lesen wie? on Sun, 01 Apr 2018 19:33:25 GMT]]></title><description><![CDATA[<p>Nein da ist nix geheimes dran nur halt ein spezieller Berich im Flash (0xDF4000-0xDF7FFF) der als Datenspeicher benutzt werden kann. Es ist ein Cypress FX16 MC.</p>
<pre><code>// Read from Flash
unsigned short read_flash(unsigned short adr)
{
        return (*(__far unsigned int*) (0xDF6000 + adr * 2));
}

read = read_flash(0x00);	// 16Bit Daten (short) aus Flash auslesen
</code></pre>
<p>zum Beispiel funktioniert prima...</p>
<p>Hier noch ein anderes Beispiel:</p>
<pre><code>typedef struct  PPG_Setup_Data {   // Länge 10 Byte
    char Channel;
    char Status;
    short Period;
    short Duty100;
    short Duty50;
    short Duty1;
} Setup_PPG;

__far Setup_PPG *PPG = (__far Setup_PPG*) ((__far unsigned int*) (0xDF4000));
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2554433</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2554433</guid><dc:creator><![CDATA[Jackson0]]></dc:creator><pubDate>Sun, 01 Apr 2018 19:33:25 GMT</pubDate></item><item><title><![CDATA[Reply to String aus MC Flash mit strcat lesen wie? on Mon, 02 Apr 2018 07:57:29 GMT]]></title><description><![CDATA[<p>Befindet sich an Adresse 0xDF6080 wirklich der String selbst, oder nur ein Zeiger auf den String (der dann wiederum an der dort eingetragenen Adresse liegt)?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2554442</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2554442</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Mon, 02 Apr 2018 07:57:29 GMT</pubDate></item><item><title><![CDATA[Reply to String aus MC Flash mit strcat lesen wie? on Mon, 02 Apr 2018 10:55:03 GMT]]></title><description><![CDATA[<p>Nein dort ist wirklich der String selbst gespeichert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2554446</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2554446</guid><dc:creator><![CDATA[Jackson0]]></dc:creator><pubDate>Mon, 02 Apr 2018 10:55:03 GMT</pubDate></item><item><title><![CDATA[Reply to String aus MC Flash mit strcat lesen wie? on Mon, 02 Apr 2018 11:15:03 GMT]]></title><description><![CDATA[<p>Du lässt dir aber auch wirklich alles aus der Nase ziehen... Ist die Zeichenkette nullterminiert, warum funktioniert der Code von Wutz und Pulling my Strings nicht („funktioniert nicht” ist keine Beschreibung des Fehlers).</p>
<p>Wenn du weißt, dass der String 30 Byte lang ist, kannst du 15 shorts (Annahme 8/16 Bit) daraus ziehen und den String selber zusammenbauen und nullterminieren?<br />
Ansonsten kannst du auch direkt im Debugger verfolgen, was da vor sich geht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2554449</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2554449</guid><dc:creator><![CDATA[yahendrik]]></dc:creator><pubDate>Mon, 02 Apr 2018 11:15:03 GMT</pubDate></item><item><title><![CDATA[Reply to String aus MC Flash mit strcat lesen wie? on Mon, 02 Apr 2018 11:52:24 GMT]]></title><description><![CDATA[<p>Schreib doch deine eigene <code>strcat</code> Funktion, die mit den <strong>__far</strong>-Pointern für den Flash umgehen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2554452</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2554452</guid><dc:creator><![CDATA[DirkB]]></dc:creator><pubDate>Mon, 02 Apr 2018 11:52:24 GMT</pubDate></item><item><title><![CDATA[Reply to String aus MC Flash mit strcat lesen wie? on Mon, 02 Apr 2018 12:36:23 GMT]]></title><description><![CDATA[<p>Ich hatte bereits im ersten Beitrag geschrieben:<br />
Das String ist in ASCII + 0x00 am Ende im Flash hinterlegt.</p>
<p>Die Testausgabe war leer (als wenn String an erster Stelle eine 0x00 hätte).</p>
<p>Debugger habe ich leider keinen.</p>
<p>Wenn ich mit Short auslese sind alle einzelnen Short high und low Bytes vertauscht und die müsste ich dann auch noch &quot;umdrehen&quot;. Ich könnte das Programmieren dachte aber es gibt einen ganz simplen Weg mit dem Adresspointer...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2554454</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2554454</guid><dc:creator><![CDATA[Jackson0]]></dc:creator><pubDate>Mon, 02 Apr 2018 12:36:23 GMT</pubDate></item><item><title><![CDATA[Reply to String aus MC Flash mit strcat lesen wie? on Mon, 02 Apr 2018 13:40:59 GMT]]></title><description><![CDATA[<p>Jackson0 schrieb:</p>
<blockquote>
<p>dachte aber es gibt einen ganz simplen Weg mit dem Adresspointer...</p>
</blockquote>
<p>Der C-Standard kennt keinen Flashspeicher.<br />
Wenn der in deinem System mit einem besonderen Pointer angesprochen wird, ist das eine spezielle Erweiterung, deren Handhabung du in der Dokumentation zu deinem System nachlesen musst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2554459</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2554459</guid><dc:creator><![CDATA[DirkB]]></dc:creator><pubDate>Mon, 02 Apr 2018 13:40:59 GMT</pubDate></item><item><title><![CDATA[Reply to String aus MC Flash mit strcat lesen wie? on Mon, 02 Apr 2018 14:47:00 GMT]]></title><description><![CDATA[<p>Jackson0 schrieb:</p>
<blockquote>
<p>Ich könnte das Programmieren dachte aber es gibt einen ganz simplen Weg mit dem Adresspointer...</p>
</blockquote>
<p>Wie das geht habe ich dir gezeigt.<br />
Wenn dein Hardwareanbieter sich nicht an die Standard C Regeln hält, dann musst du dich eben exakt an dessen Vorgaben halten und kannst keine standardkonformen Weg einschlagen.<br />
C bietet für Bit- und Zeigerfrickelei enorme Vielfalt, viel mehr als jede andere Programmiersprache, deshalb wird es oft - wie du siehst - von Hardwarefricklern benutzt - dann natürlichermaßen - wie du siehst - ohne jegliche Plattformunabhängigkeit und du bewegst dich in deinem eigenen Universum, also ohne die Chance, gängige Standard C Wege zu beschreiten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2554467</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2554467</guid><dc:creator><![CDATA[Wutz]]></dc:creator><pubDate>Mon, 02 Apr 2018 14:47:00 GMT</pubDate></item><item><title><![CDATA[Reply to String aus MC Flash mit strcat lesen wie? on Tue, 03 Apr 2018 07:03:54 GMT]]></title><description><![CDATA[<blockquote>
<p>Wenn ich mit Short auslese sind alle einzelnen Short high und low Bytes vertauscht und die müsste ich dann auch noch &quot;umdrehen&quot;. Ich könnte das Programmieren dachte aber es gibt einen ganz simplen Weg mit dem Adresspointer...</p>
</blockquote>
<p>Es wird wohl so sein das dein Flash eben nur short-weise genutzt werden kann und das sollte auch definitiv aus einer Hardware Doku zu deinem System hervor gehen, wenn es wirklich so ist - was nur du bestätigen kannst - musst du es eben short-weise machen</p>
<p>was aber definitiv nicht erklärt warum dann dein Setup_PPG Beispiel &quot;geht&quot;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2554505</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2554505</guid><dc:creator><![CDATA[Gast3]]></dc:creator><pubDate>Tue, 03 Apr 2018 07:03:54 GMT</pubDate></item><item><title><![CDATA[Reply to String aus MC Flash mit strcat lesen wie? on Tue, 03 Apr 2018 08:08:18 GMT]]></title><description><![CDATA[<p>und es wäre wohl auch sehr hilfreich wenn du sagen würdest welchen<br />
FX16 du hast</p>
<p><a href="http://www.cypress.com/products/16fx" rel="nofollow">http://www.cypress.com/products/16fx</a></p>
<p>und welchen C/C++ Kompiler du verwendest</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2554507</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2554507</guid><dc:creator><![CDATA[Gast3]]></dc:creator><pubDate>Tue, 03 Apr 2018 08:08:18 GMT</pubDate></item><item><title><![CDATA[Reply to String aus MC Flash mit strcat lesen wie? on Tue, 03 Apr 2018 11:04:11 GMT]]></title><description><![CDATA[<p>warst du nach den letzten Versuchen so frustriert das du den MC ertst mal ein Jahr in die Schublade gesteckt hast <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p><a href="https://www.c-plusplus.net/forum/342041-full">https://www.c-plusplus.net/forum/342041-full</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2554516</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2554516</guid><dc:creator><![CDATA[Gast3]]></dc:creator><pubDate>Tue, 03 Apr 2018 11:04:11 GMT</pubDate></item></channel></rss>