<?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=18984&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-08-13T11:50:50+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=46&amp;t=18984&amp;mode</id>
<entry>
<author><name><![CDATA[dzikidziku]]></name></author>
<updated>2017-08-13T11:50:50+01:00</updated>
<published>2017-08-13T11:50:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18984&amp;p=193363#p193363</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18984&amp;p=193363#p193363"/>
<title type="html"><![CDATA[Re: [STM32F7] Dynamiczna alokacja pamięci]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18984&amp;p=193363#p193363"><![CDATA[
Rozwiązanie: w pliku Device-&gt;startup_stm32f7.. należy zwiększyć wartości Stack_Size i Heap_Size:<br />[syntax=asm]; Amount of memory (in bytes) allocated for Stack<br />; Tailor this value to your application needs<br />; &lt;h&gt; Stack Configuration<br />;   &lt;o&gt; Stack Size (in Bytes) &lt;0x0-0xFFFFFFFF:8&gt;<br />; &lt;/h&gt;<br /><br />Stack_Size      EQU     0x00019000<br /><br />                AREA    STACK, NOINIT, READWRITE, ALIGN=3<br />Stack_Mem       SPACE   Stack_Size<br />__initial_sp<br /><br /><br />; &lt;h&gt; Heap Configuration<br />;   &lt;o&gt;  Heap Size (in Bytes) &lt;0x0-0xFFFFFFFF:8&gt;<br />; &lt;/h&gt;<br /><br />Heap_Size       EQU     0x0000F000<br /><br />                AREA    HEAP, NOINIT, READWRITE, ALIGN=3<br />__heap_base<br />Heap_Mem        SPACE   Heap_Size<br />__heap_limit<br /><br />                PRESERVE8<br />                THUMB[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=13388">dzikidziku</a> — 13 sie 2017, o 11:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[dzikidziku]]></name></author>
<updated>2017-08-12T13:37:16+01:00</updated>
<published>2017-08-12T13:37:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18984&amp;p=193344#p193344</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18984&amp;p=193344#p193344"/>
<title type="html"><![CDATA[[STM32F7] Dynamiczna alokacja pamięci]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18984&amp;p=193344#p193344"><![CDATA[
Cześć, <br />Chciałbym wykorzystać dynamiczną alokację pamięci tak aby można było pozbyć się niepotrzebnych bajtów po wykonaniu konkretnego fragmentu kodu.<br />Problem polega na tym, że funkcja malloc, przy próbie zadania większego rozmiaru (ok.500 bajtów), zwraca 0.<br /><br />[syntax=c]typedef struct {<br />uint16_tbuff_1&#91;3000&#93;;<br />uint16_tbuff_2&#91;3000&#93;;<br />} _Alloc;<br /><br />_Alloc*alloc;<br /><br />void Alloc_Create()<br />{<br />  alloc = (_Alloc*)malloc(sizeof(_Alloc));<br />}[/syntax]<br /><br />Przy normalnej deklaracji nie ma żadnych problemów:<br />[syntax=c]static uint16_t buff_1&#91;3000&#93;, buff_2&#91;3000&#93;;[/syntax]<br /><br />Konfiguracja MPU:<br />[syntax=c]static void MPU_Config(void)<br />{<br />  MPU_Region_InitTypeDef MPU_InitStruct;<br />  <br />  /* Disable the MPU */<br />  HAL_MPU_Disable();<br /><br />  /* Configure the MPU attributes as WT for SRAM */<br />  MPU_InitStruct.Enable = MPU_REGION_ENABLE;<br />  MPU_InitStruct.BaseAddress = 0xC0000000;<br />  MPU_InitStruct.Size = MPU_REGION_SIZE_4MB;<br />  MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;<br />  MPU_InitStruct.IsBufferable = MPU_ACCESS_NOT_BUFFERABLE;<br />  MPU_InitStruct.IsCacheable = MPU_ACCESS_NOT_CACHEABLE;<br />  MPU_InitStruct.IsShareable = MPU_ACCESS_NOT_SHAREABLE;<br />  MPU_InitStruct.Number = MPU_REGION_NUMBER0;<br />  MPU_InitStruct.TypeExtField = MPU_TEX_LEVEL1;<br />  MPU_InitStruct.SubRegionDisable = 0x00;<br />  MPU_InitStruct.DisableExec = MPU_INSTRUCTION_ACCESS_ENABLE;<br /><br />  HAL_MPU_ConfigRegion(&amp;MPU_InitStruct);<br /><br />  /* Enable the MPU */<br />  HAL_MPU_Enable(MPU_PRIVILEGED_DEFAULT);<br />}[/syntax]<br /><br />Do programowania wykorzystuję Keila. Próbowałem pogrzebać w pliku RTX_Conf ale nic nie znalazłem. Co można z tym zrobić i skąd bierze się takie zachowanie?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=13388">dzikidziku</a> — 12 sie 2017, o 13:37</p><hr />
]]></content>
</entry>
</feed>