<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=46&amp;t=23093&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2020-05-05T21:02:37+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=46&amp;t=23093&amp;mode</id>
<entry>
<author><name><![CDATA[Draxter32]]></name></author>
<updated>2020-05-05T21:02:37+01:00</updated>
<published>2020-05-05T21:02:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23093&amp;p=226995#p226995</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23093&amp;p=226995#p226995"/>
<title type="html"><![CDATA[Re: STM32G474CE Kasowanie pamięci flash po włączeniu zasilan]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23093&amp;p=226995#p226995"><![CDATA[
Proszę sprawdzić wpis w erracie na stronie siódmej. Być może ma to związek z rejestrem <em>FLASH_ECCR</em>.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8185">Draxter32</a> — 5 maja 2020, o 21:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mromano]]></name></author>
<updated>2020-05-05T17:11:54+01:00</updated>
<published>2020-05-05T17:11:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23093&amp;p=226985#p226985</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23093&amp;p=226985#p226985"/>
<title type="html"><![CDATA[STM32G474CE Kasowanie pamięci flash po włączeniu zasilania]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23093&amp;p=226985#p226985"><![CDATA[
Zrobiłem sobie zapisywanie konfiguracji urządzenia do pamięci flash. Operacja zapisu działa, komórki pamięci przechowują odpowiednie wartości. Po resecie mikrokontrolera zawartość jest prawidłowo odczytywana. Jednak po odłączeniu i podłączeniu zasilania, sektor pamięci zostaje wyczyszczony (pamięć przyjmuje wartość 0xFF). Czy ktoś spotkał się z takim zjawiskiem przy programowaniu STM32? Poniżej zamieszczam funkcję zapisu i odczytu danych.<br /><br /><br />[syntax=c]int eepromSaveConfig() {<br /><br />uint32_t error;<br />uint64_t *configPtr;<br />uint32_t address;<br /><br />FLASH_EraseInitTypeDef erase;<br /><br />HAL_FLASH_Unlock();<br />__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_ALL_ERRORS);<br /><br />erase.Banks = FLASH_BANK_1;<br />erase.NbPages = 1;<br />erase.Page = 127;<br />erase.TypeErase = FLASH_TYPEERASE_PAGES;<br /><br />__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_ALL_ERRORS);<br /><br />if (HAL_FLASHEx_Erase(&amp;erase, &amp;error) != HAL_OK){<br />logging(&quot;Eeprom save error -1&quot;, DEBUG);<br />return -1;<br />}<br /><br />__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_ALL_ERRORS);<br /><br /><br />configPtr = (uint64_t*) &amp;controllerConfig;<br />address = 0x0803F800;<br /><br />for (uint16_t i = 0; i &lt; (sizeof(ControllerCfg_t) - 8); i += 8) {<br />if (HAL_FLASH_Program(FLASH_TYPEPROGRAM_DOUBLEWORD, address,<br />*configPtr))<br />return -2;<br />address += 8;<br />configPtr++;<br />}<br /><br />HAL_FLASH_Lock();<br /><br />logging(&quot;Eeprom save OK&quot;, DEBUG);<br />eepromReadConfig();<br />return 1;<br />}<br /><br />int eepromReadConfig(){<br /><br />uint8_t *configPtr;<br /><br />configPtr = (uint8_t*) 0x0803F800;<br />memcpy(  &amp;controllerConfig, configPtr, sizeof(ControllerCfg_t));<br /><br />return 1;<br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1378">mromano</a> — 5 maja 2020, o 17:11</p><hr />
]]></content>
</entry>
</feed>