summaryrefslogtreecommitdiff
path: root/bsp
diff options
context:
space:
mode:
authorwuyangyong <[email protected]>2011-12-31 21:42:12 +0000
committerwuyangyong <[email protected]>2011-12-31 21:42:12 +0000
commit76e81a9977245e4bc7919688ef37442fc6cfc97b (patch)
tree37667074800f4503e729bcbb4b12e104e00d4f79 /bsp
parent25ab97df39e2bdf2f09995c30c6c79847d6ec0e8 (diff)
update stm32f4xx and fpu test.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1903 bbd45198-f89e-11dd-88c7-29a3b14d5316
Diffstat (limited to 'bsp')
-rw-r--r--bsp/stm32f40x/applications/application.c172
-rw-r--r--bsp/stm32f40x/applications/startup.c17
-rw-r--r--bsp/stm32f40x/project.uvopt222
-rw-r--r--bsp/stm32f40x/project.uvproj68
-rw-r--r--bsp/stm32f40x/rtconfig.h2
-rw-r--r--bsp/stm32f40x/rtconfig.py4
-rw-r--r--bsp/stm32f40x/stm32_rom.ld134
-rw-r--r--bsp/stm32f40x/template.uvproj14
8 files changed, 395 insertions, 238 deletions
diff --git a/bsp/stm32f40x/applications/application.c b/bsp/stm32f40x/applications/application.c
index cc424ab857..9c5f826fb9 100644
--- a/bsp/stm32f40x/applications/application.c
+++ b/bsp/stm32f40x/applications/application.c
@@ -17,6 +17,8 @@
*/
/*@{*/
+#include <stdio.h>
+
#include "stm32f4xx.h"
#include <board.h>
#include <rtthread.h>
@@ -46,98 +48,136 @@ void rt_init_thread_entry(void* parameter)
lwip_sys_init();
rt_kprintf("TCP/IP initialized!\n");
}
+#endif
- {
- extern void eth_to_can_init(void);
- extern void can_to_eth_init(void);
- extern void upnp_init(void);
- extern void setting_init(void);
+//FS
- setting_init();
- eth_to_can_init();
- can_to_eth_init();
- upnp_init();
- }
-#endif
+//GUI
}
+float f_var1;
+float f_var2;
+float f_var3;
+float f_var4;
+
ALIGN(RT_ALIGN_SIZE)
-static char thread_led_stack[1024];
-struct rt_thread thread_led;
-static void rt_thread_entry_led(void* parameter)
+static char thread_led1_stack[1024];
+struct rt_thread thread_led1;
+static void rt_thread_entry_led1(void* parameter)
{
GPIO_InitTypeDef GPIO_InitStructure;
- /* GPIOD Periph clock enable */
- RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);
+ /* GPIOD Periph clock enable */
+ RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);
+
+ /* Configure PD12, PD13, PD14 and PD15 in output pushpull mode */
+ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13| GPIO_Pin_14| GPIO_Pin_15;
+ GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
+ GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
+ GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
+ GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
+ GPIO_Init(GPIOD, &GPIO_InitStructure);
+
+ f_var1 = 3.141592653;
+ f_var2 = 123.456;
+ f_var3 = 0.123456789;
+ f_var4 = 1.00001;
+
+ while (1)
+ {
+ /* PD12 to be toggled */
+ GPIO_SetBits(GPIOD, GPIO_Pin_12);
+
+ /* Insert delay */
+ rt_thread_delay(RT_TICK_PER_SECOND/2);
+ f_var3 += f_var4;
+ f_var4 = f_var4 * f_var4;
- /* Configure PD12, PD13, PD14 and PD15 in output pushpull mode */
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13| GPIO_Pin_14| GPIO_Pin_15;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
- GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
- GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
- GPIO_Init(GPIOD, &GPIO_InitStructure);
+ /* PD13 to be toggled */
+ GPIO_SetBits(GPIOD, GPIO_Pin_13);
- while (1)
- {
- /* PD12 to be toggled */
- GPIO_SetBits(GPIOD, GPIO_Pin_12);
+ /* Insert delay */
+ rt_thread_delay(RT_TICK_PER_SECOND/2);
+ f_var3 += f_var4;
+ f_var4 = f_var4 * f_var4;
- /* Insert delay */
- rt_thread_delay(RT_TICK_PER_SECOND/2);
+ /* PD14 to be toggled */
+ GPIO_SetBits(GPIOD, GPIO_Pin_14);
- /* PD13 to be toggled */
- GPIO_SetBits(GPIOD, GPIO_Pin_13);
+ /* Insert delay */
+ rt_thread_delay(RT_TICK_PER_SECOND/2);
+ f_var3 += f_var4;
+ f_var4 = f_var4 * f_var4;
- /* Insert delay */
- rt_thread_delay(RT_TICK_PER_SECOND/2);
+ /* PD15 to be toggled */
+ GPIO_SetBits(GPIOD, GPIO_Pin_15);
- /* PD14 to be toggled */
- GPIO_SetBits(GPIOD, GPIO_Pin_14);
+ /* Insert delay */
+ rt_thread_delay(RT_TICK_PER_SECOND*2);
+ f_var3 += f_var4;
+ f_var4 = f_var4 * f_var4;
- /* Insert delay */
- rt_thread_delay(RT_TICK_PER_SECOND/2);
+ GPIO_ResetBits(GPIOD, GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);
- /* PD15 to be toggled */
- GPIO_SetBits(GPIOD, GPIO_Pin_15);
+ /* Insert delay */
+ rt_thread_delay(RT_TICK_PER_SECOND);
+ f_var3 += f_var4;
+ f_var4 = f_var4 * f_var4;
+ }
+}
- /* Insert delay */
- rt_thread_delay(RT_TICK_PER_SECOND*2);
- GPIO_ResetBits(GPIOD, GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);
+ALIGN(RT_ALIGN_SIZE)
+static char thread_led2_stack[1024];
+struct rt_thread thread_led2;
+static void rt_thread_entry_led2(void* parameter)
+{
+ float f_var_me;
- /* Insert delay */
- rt_thread_delay(RT_TICK_PER_SECOND);
- }
+ char str_buffer[256];
+ while(1)
+ {
+ f_var_me = f_var1 * f_var2 + f_var3;
+ sprintf(str_buffer, "%f", f_var_me);
+ rt_kprintf("thread1 %s\r\n", str_buffer);
+ rt_thread_delay(RT_TICK_PER_SECOND);
+ }
}
int rt_application_init()
{
-// rt_thread_t init_thread;
-//
-//#if (RT_THREAD_PRIORITY_MAX == 32)
-// init_thread = rt_thread_create("init",
-// rt_init_thread_entry, RT_NULL,
-// 2048, 8, 20);
-//#else
-// init_thread = rt_thread_create("init",
-// rt_init_thread_entry, RT_NULL,
-// 2048, 80, 20);
-//#endif
-//
-// if (init_thread != RT_NULL)
-// rt_thread_startup(init_thread);
+ rt_thread_t init_thread;
+
+#if (RT_THREAD_PRIORITY_MAX == 32)
+ init_thread = rt_thread_create("init",
+ rt_init_thread_entry, RT_NULL,
+ 2048, 8, 20);
+#else
+ init_thread = rt_thread_create("init",
+ rt_init_thread_entry, RT_NULL,
+ 2048, 80, 20);
+#endif
+
+ if (init_thread != RT_NULL)
+ rt_thread_startup(init_thread);
//------- init led1 thread
- rt_thread_init(&thread_led,
- "led",
- rt_thread_entry_led,
+ rt_thread_init(&thread_led1,
+ "led1",
+ rt_thread_entry_led1,
+ RT_NULL,
+ &thread_led1_stack[0],
+ sizeof(thread_led1_stack),11,5);
+ rt_thread_startup(&thread_led1);
+
+ //------- init led2 thread
+ rt_thread_init(&thread_led2,
+ "led2",
+ rt_thread_entry_led2,
RT_NULL,
- &thread_led_stack[0],
- 1024,11,5);
-// sizeof(thread_led_stack),11,5);
- rt_thread_startup(&thread_led);
+ &thread_led2_stack[0],
+ sizeof(thread_led2_stack),11,5);
+ rt_thread_startup(&thread_led2);
return 0;
}
diff --git a/bsp/stm32f40x/applications/startup.c b/bsp/stm32f40x/applications/startup.c
index 04ecf32026..0ddbed992b 100644
--- a/bsp/stm32f40x/applications/startup.c
+++ b/bsp/stm32f40x/applications/startup.c
@@ -32,12 +32,14 @@ extern void finsh_set_device(const char* device);
#endif
#ifdef __CC_ARM
-//extern int Image$$RW_IRAM1$$ZI$$Limit;
-extern int Image$$ER_ZI$$ZI$$Limit;
+extern int Image$$RW_IRAM1$$ZI$$Limit;
+#define STM32_SRAM_BEGIN (&Image$$RW_IRAM1$$ZI$$Limit)
#elif __ICCARM__
#pragma section="HEAP"
+#define STM32_SRAM_BEGIN (__segment_end("HEAP"))
#else
extern int __bss_end;
+#define STM32_SRAM_BEGIN (&__bss_end)
#endif
/*******************************************************************************
@@ -78,16 +80,7 @@ void rtthread_startup(void)
/* init timer system */
rt_system_timer_init();
-#ifdef RT_USING_HEAP
- #ifdef __CC_ARM
- rt_system_heap_init((void*)&Image$$ER_ZI$$ZI$$Limit, (void*)STM32_SRAM_END);
- #elif __ICCARM__
- rt_system_heap_init(__segment_end("HEAP"), (void*)STM32_SRAM_END);
- #else
- /* init memory system */
- rt_system_heap_init((void*)&__bss_end, (void*)STM32_SRAM_END);
- #endif
-#endif
+ rt_system_heap_init((void*)STM32_SRAM_BEGIN, (void*)STM32_SRAM_END);
/* init scheduler system */
rt_system_scheduler_init();
diff --git a/bsp/stm32f40x/project.uvopt b/bsp/stm32f40x/project.uvopt
index 7847466d68..9661193e93 100644
--- a/bsp/stm32f40x/project.uvopt
+++ b/bsp/stm32f40x/project.uvopt
@@ -21,7 +21,7 @@
</DaveTm>
<Target>
- <TargetName>rt-thread_stm32f4xx</TargetName>
+ <TargetName>rt-thread</TargetName>
<ToolsetNumber>0x4</ToolsetNumber>
<ToolsetName>ARM-ADS</ToolsetName>
<TargetOption>
@@ -43,7 +43,7 @@
<PageWidth>79</PageWidth>
<PageLength>66</PageLength>
<TabStop>8</TabStop>
- <ListingPath>.\obj\</ListingPath>
+ <ListingPath>.\build\</ListingPath>
</OPTLEX>
<ListingPage>
<CreateCListing>1</CreateCListing>
@@ -122,7 +122,7 @@
<SetRegEntry>
<Number>0</Number>
<Key>DLGTARM</Key>
- <Name>(1010=75,107,441,657,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)</Name>
+ <Name>(1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(1012=-1,-1,-1,-1,0)</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
@@ -135,49 +135,39 @@
<Name>-S</Name>
</SetRegEntry>
</TargetDriverDllRegistry>
- <Breakpoint>
- <Bp>
- <Number>0</Number>
- <Type>0</Type>
- <LineNumber>396</LineNumber>
- <EnabledFlag>1</EnabledFlag>
- <Address>134218176</Address>
- <ByteObject>0</ByteObject>
- <ManyObjects>0</ManyObjects>
- <SizeOfObject>0</SizeOfObject>
- <BreakByAccess>0</BreakByAccess>
- <BreakIfRCount>1</BreakIfRCount>
- <Filename></Filename>
- <ExecCommand></ExecCommand>
- <Expression>\\project\Libraries/CMSIS/ST/STM32F4xx/Source/Templates/arm/startup_stm32f4xx.s\396</Expression>
- </Bp>
- <Bp>
- <Number>1</Number>
- <Type>0</Type>
- <LineNumber>53</LineNumber>
- <EnabledFlag>1</EnabledFlag>
- <Address>134230100</Address>
- <ByteObject>0</ByteObject>
- <ManyObjects>0</ManyObjects>
- <SizeOfObject>0</SizeOfObject>
- <BreakByAccess>0</BreakByAccess>
- <BreakIfRCount>1</BreakIfRCount>
- <Filename></Filename>
- <ExecCommand></ExecCommand>
- <Expression>\\project\applications/startup.c\53</Expression>
- </Bp>
- </Breakpoint>
<WatchWindow1>
<Ww>
<count>0</count>
<WinNumber>1</WinNumber>
- <ItemText>uart2_debug</ItemText>
+ <ItemText>f_var1</ItemText>
+ </Ww>
+ <Ww>
+ <count>1</count>
+ <WinNumber>1</WinNumber>
+ <ItemText>f_var2</ItemText>
+ </Ww>
+ <Ww>
+ <count>2</count>
+ <WinNumber>1</WinNumber>
+ <ItemText>f_var3</ItemText>
+ </Ww>
+ <Ww>
+ <count>3</count>
+ <WinNumber>1</WinNumber>
+ <ItemText>f_var4</ItemText>
</Ww>
</WatchWindow1>
+ <WatchWindow2>
+ <Ww>
+ <count>0</count>
+ <WinNumber>2</WinNumber>
+ <ItemText>f_var2</ItemText>
+ </Ww>
+ </WatchWindow2>
<DebugFlag>
<trace>0</trace>
<periodic>0</periodic>
- <aLwin>1</aLwin>
+ <aLwin>0</aLwin>
<aCover>0</aCover>
<aSer1>0</aSer1>
<aSer2>0</aSer2>
@@ -216,10 +206,10 @@
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
- <ColumnNumber>6</ColumnNumber>
+ <ColumnNumber>32</ColumnNumber>
<tvExpOptDlg>0</tvExpOptDlg>
- <TopLine>81</TopLine>
- <CurrentLine>85</CurrentLine>
+ <TopLine>82</TopLine>
+ <CurrentLine>96</CurrentLine>
<bDave2>0</bDave2>
<PathWithFileName>applications\application.c</PathWithFileName>
<FilenameWithoutPath>application.c</FilenameWithoutPath>
@@ -232,8 +222,8 @@
<Focus>0</Focus>
<ColumnNumber>0</ColumnNumber>
<tvExpOptDlg>0</tvExpOptDlg>
- <TopLine>116</TopLine>
- <CurrentLine>121</CurrentLine>
+ <TopLine>107</TopLine>
+ <CurrentLine>114</CurrentLine>
<bDave2>0</bDave2>
<PathWithFileName>applications\startup.c</PathWithFileName>
<FilenameWithoutPath>startup.c</FilenameWithoutPath>
@@ -279,10 +269,10 @@
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
- <ColumnNumber>14</ColumnNumber>
+ <ColumnNumber>0</ColumnNumber>
<tvExpOptDlg>0</tvExpOptDlg>
- <TopLine>166</TopLine>
- <CurrentLine>170</CurrentLine>
+ <TopLine>0</TopLine>
+ <CurrentLine>0</CurrentLine>
<bDave2>0</bDave2>
<PathWithFileName>drivers\stm32f4xx_it.c</PathWithFileName>
<FilenameWithoutPath>stm32f4xx_it.c</FilenameWithoutPath>
@@ -295,8 +285,8 @@
<Focus>0</Focus>
<ColumnNumber>0</ColumnNumber>
<tvExpOptDlg>0</tvExpOptDlg>
- <TopLine>229</TopLine>
- <CurrentLine>235</CurrentLine>
+ <TopLine>0</TopLine>
+ <CurrentLine>0</CurrentLine>
<bDave2>0</bDave2>
<PathWithFileName>drivers\usart.c</PathWithFileName>
<FilenameWithoutPath>usart.c</FilenameWithoutPath>
@@ -325,20 +315,6 @@
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>8</FileNumber>
- <FileType>2</FileType>
- <tvExp>0</tvExp>
- <Focus>0</Focus>
- <ColumnNumber>0</ColumnNumber>
- <tvExpOptDlg>0</tvExpOptDlg>
- <TopLine>0</TopLine>
- <CurrentLine>0</CurrentLine>
- <bDave2>0</bDave2>
- <PathWithFileName>Libraries\CMSIS\ST\STM32F4xx\Source\Templates\arm\startup_stm32f4xx.s</PathWithFileName>
- <FilenameWithoutPath>startup_stm32f4xx.s</FilenameWithoutPath>
- </File>
- <File>
- <GroupNumber>3</GroupNumber>
- <FileNumber>9</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@@ -352,7 +328,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
- <FileNumber>10</FileNumber>
+ <FileNumber>9</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@@ -366,7 +342,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
- <FileNumber>11</FileNumber>
+ <FileNumber>10</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@@ -380,7 +356,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
- <FileNumber>12</FileNumber>
+ <FileNumber>11</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@@ -394,7 +370,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
- <FileNumber>13</FileNumber>
+ <FileNumber>12</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@@ -408,7 +384,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
- <FileNumber>14</FileNumber>
+ <FileNumber>13</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@@ -422,7 +398,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
- <FileNumber>15</FileNumber>
+ <FileNumber>14</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@@ -436,7 +412,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
- <FileNumber>16</FileNumber>
+ <FileNumber>15</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@@ -450,7 +426,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
- <FileNumber>17</FileNumber>
+ <FileNumber>16</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@@ -464,7 +440,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
- <FileNumber>18</FileNumber>
+ <FileNumber>17</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@@ -478,7 +454,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
- <FileNumber>19</FileNumber>
+ <FileNumber>18</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@@ -492,7 +468,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
- <FileNumber>20</FileNumber>
+ <FileNumber>19</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@@ -506,7 +482,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
- <FileNumber>21</FileNumber>
+ <FileNumber>20</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@@ -520,7 +496,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
- <FileNumber>22</FileNumber>
+ <FileNumber>21</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@@ -534,7 +510,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
- <FileNumber>23</FileNumber>
+ <FileNumber>22</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@@ -548,7 +524,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
- <FileNumber>24</FileNumber>
+ <FileNumber>23</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@@ -562,7 +538,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
- <FileNumber>25</FileNumber>
+ <FileNumber>24</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@@ -576,7 +552,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
- <FileNumber>26</FileNumber>
+ <FileNumber>25</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@@ -590,7 +566,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
- <FileNumber>27</FileNumber>
+ <FileNumber>26</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@@ -604,7 +580,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
- <FileNumber>28</FileNumber>
+ <FileNumber>27</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@@ -618,7 +594,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
- <FileNumber>29</FileNumber>
+ <FileNumber>28</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@@ -632,7 +608,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
- <FileNumber>30</FileNumber>
+ <FileNumber>29</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@@ -646,7 +622,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
- <FileNumber>31</FileNumber>
+ <FileNumber>30</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@@ -660,7 +636,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
- <FileNumber>32</FileNumber>
+ <FileNumber>31</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@@ -674,7 +650,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
- <FileNumber>33</FileNumber>
+ <FileNumber>32</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@@ -688,7 +664,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
- <FileNumber>34</FileNumber>
+ <FileNumber>33</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@@ -702,7 +678,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
- <FileNumber>35</FileNumber>
+ <FileNumber>34</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@@ -716,7 +692,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
- <FileNumber>36</FileNumber>
+ <FileNumber>35</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@@ -730,7 +706,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
- <FileNumber>37</FileNumber>
+ <FileNumber>36</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@@ -744,11 +720,11 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
- <FileNumber>38</FileNumber>
+ <FileNumber>37</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
- <ColumnNumber>14</ColumnNumber>
+ <ColumnNumber>0</ColumnNumber>
<tvExpOptDlg>0</tvExpOptDlg>
<TopLine>0</TopLine>
<CurrentLine>0</CurrentLine>
@@ -758,7 +734,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
- <FileNumber>39</FileNumber>
+ <FileNumber>38</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
@@ -770,6 +746,20 @@
<PathWithFileName>Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_wwdg.c</PathWithFileName>
<FilenameWithoutPath>stm32f4xx_wwdg.c</FilenameWithoutPath>
</File>
+ <File>
+ <GroupNumber>3</GroupNumber>
+ <FileNumber>39</FileNumber>
+ <FileType>2</FileType>
+ <tvExp>0</tvExp>
+ <Focus>0</Focus>
+ <ColumnNumber>0</ColumnNumber>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <TopLine>173</TopLine>
+ <CurrentLine>173</CurrentLine>
+ <bDave2>0</bDave2>
+ <PathWithFileName>Libraries\CMSIS\ST\STM32F4xx\Source\Templates\arm\startup_stm32f4xx.s</PathWithFileName>
+ <FilenameWithoutPath>startup_stm32f4xx.s</FilenameWithoutPath>
+ </File>
</Group>
<Group>
@@ -788,8 +778,8 @@
<TopLine>0</TopLine>
<CurrentLine>0</CurrentLine>
<bDave2>0</bDave2>
- <PathWithFileName>..\..\src\device.c</PathWithFileName>
- <FilenameWithoutPath>device.c</FilenameWithoutPath>
+ <PathWithFileName>..\..\src\clock.c</PathWithFileName>
+ <FilenameWithoutPath>clock.c</FilenameWithoutPath>
</File>
<File>
<GroupNumber>4</GroupNumber>
@@ -802,8 +792,8 @@
<TopLine>0</TopLine>
<CurrentLine>0</CurrentLine>
<bDave2>0</bDave2>
- <PathWithFileName>..\..\src\thread.c</PathWithFileName>
- <FilenameWithoutPath>thread.c</FilenameWithoutPath>
+ <PathWithFileName>..\..\src\device.c</PathWithFileName>
+ <FilenameWithoutPath>device.c</FilenameWithoutPath>
</File>
<File>
<GroupNumber>4</GroupNumber>
@@ -813,11 +803,11 @@
<Focus>0</Focus>
<ColumnNumber>0</ColumnNumber>
<tvExpOptDlg>0</tvExpOptDlg>
- <TopLine>0</TopLine>
- <CurrentLine>0</CurrentLine>
+ <TopLine>149</TopLine>
+ <CurrentLine>156</CurrentLine>
<bDave2>0</bDave2>
- <PathWithFileName>..\..\src\scheduler.c</PathWithFileName>
- <FilenameWithoutPath>scheduler.c</FilenameWithoutPath>
+ <PathWithFileName>..\..\src\idle.c</PathWithFileName>
+ <FilenameWithoutPath>idle.c</FilenameWithoutPath>
</File>
<File>
<GroupNumber>4</GroupNumber>
@@ -830,8 +820,8 @@
<TopLine>0</TopLine>
<CurrentLine>0</CurrentLine>
<bDave2>0</bDave2>
- <PathWithFileName>..\..\src\timer.c</PathWithFileName>
- <FilenameWithoutPath>timer.c</FilenameWithoutPath>
+ <PathWithFileName>..\..\src\ipc.c</PathWithFileName>
+ <FilenameWithoutPath>ipc.c</FilenameWithoutPath>
</File>
<File>
<GroupNumber>4</GroupNumber>
@@ -872,8 +862,8 @@
<TopLine>0</TopLine>
<CurrentLine>0</CurrentLine>
<bDave2>0</bDave2>
- <PathWithFileName>..\..\src\clock.c</PathWithFileName>
- <FilenameWithoutPath>clock.c</FilenameWithoutPath>
+ <PathWithFileName>..\..\src\mem.c</PathWithFileName>
+ <FilenameWithoutPath>mem.c</FilenameWithoutPath>
</File>
<File>
<GroupNumber>4</GroupNumber>
@@ -886,8 +876,8 @@
<TopLine>0</TopLine>
<CurrentLine>0</CurrentLine>
<bDave2>0</bDave2>
- <PathWithFileName>..\..\src\object.c</PathWithFileName>
- <FilenameWithoutPath>object.c</FilenameWithoutPath>
+ <PathWithFileName>..\..\src\mempool.c</PathWithFileName>
+ <FilenameWithoutPath>mempool.c</FilenameWithoutPath>
</File>
<File>
<GroupNumber>4</GroupNumber>
@@ -900,8 +890,8 @@
<TopLine>0</TopLine>
<CurrentLine>0</CurrentLine>
<bDave2>0</bDave2>
- <PathWithFileName>..\..\src\mempool.c</PathWithFileName>
- <FilenameWithoutPath>mempool.c</FilenameWithoutPath>
+ <PathWithFileName>..\..\src\object.c</PathWithFileName>
+ <FilenameWithoutPath>object.c</FilenameWithoutPath>
</File>
<File>
<GroupNumber>4</GroupNumber>
@@ -914,8 +904,8 @@
<TopLine>0</TopLine>
<CurrentLine>0</CurrentLine>
<bDave2>0</bDave2>
- <PathWithFileName>..\..\src\ipc.c</PathWithFileName>
- <FilenameWithoutPath>ipc.c</FilenameWithoutPath>
+ <PathWithFileName>..\..\src\scheduler.c</PathWithFileName>
+ <FilenameWithoutPath>scheduler.c</FilenameWithoutPath>
</File>
<File>
<GroupNumber>4</GroupNumber>
@@ -925,11 +915,11 @@
<Focus>0</Focus>
<ColumnNumber>0</ColumnNumber>
<tvExpOptDlg>0</tvExpOptDlg>
- <TopLine>59</TopLine>
- <CurrentLine>64</CurrentLine>
+ <TopLine>0</TopLine>
+ <CurrentLine>0</CurrentLine>
<bDave2>0</bDave2>
- <PathWithFileName>..\..\src\idle.c</PathWithFileName>
- <FilenameWithoutPath>idle.c</FilenameWithoutPath>
+ <PathWithFileName>..\..\src\thread.c</PathWithFileName>
+ <FilenameWithoutPath>thread.c</FilenameWithoutPath>
</File>
<File>
<GroupNumber>4</GroupNumber>
@@ -942,8 +932,8 @@
<TopLine>0</TopLine>
<CurrentLine>0</CurrentLine>
<bDave2>0</bDave2>
- <PathWithFileName>..\..\src\mem.c</PathWithFileName>
- <FilenameWithoutPath>mem.c</FilenameWithoutPath>
+ <PathWithFileName>..\..\src\timer.c</PathWithFileName>
+ <FilenameWithoutPath>timer.c</FilenameWithoutPath>
</File>
</Group>
diff --git a/bsp/stm32f40x/project.uvproj b/bsp/stm32f40x/project.uvproj
index ce9eff10e8..60affcce00 100644
--- a/bsp/stm32f40x/project.uvproj
+++ b/bsp/stm32f40x/project.uvproj
@@ -43,14 +43,14 @@
<NotGenerated>0</NotGenerated>
<InvalidFlash>1</InvalidFlash>
</TargetStatus>
- <OutputDirectory>.\obj\</OutputDirectory>
- <OutputName>project</OutputName>
+ <OutputDirectory>.\build\</OutputDirectory>
+ <OutputName>rtthread-stm32f4xx</OutputName>
<CreateExecutable>1</CreateExecutable>
<CreateLib>0</CreateLib>
<CreateHexFile>0</CreateHexFile>
<DebugInformation>1</DebugInformation>
<BrowseInformation>1</BrowseInformation>
- <ListingPath>.\obj\</ListingPath>
+ <ListingPath>.\build\</ListingPath>
<HexFormatSelection>1</HexFormatSelection>
<Merge32K>0</Merge32K>
<CreateBatchFile>0</CreateBatchFile>
@@ -158,7 +158,7 @@
<UseTargetDll>1</UseTargetDll>
<UseExternalTool>0</UseExternalTool>
<RunIndependent>0</RunIndependent>
- <UpdateFlashBeforeDebugging>0</UpdateFlashBeforeDebugging>
+ <UpdateFlashBeforeDebugging>1</UpdateFlashBeforeDebugging>
<Capability>1</Capability>
<DriverSelection>4100</DriverSelection>
</Flash1>
@@ -208,7 +208,7 @@
<hadIRAM2>1</hadIRAM2>
<hadIROM2>0</hadIROM2>
<StupSel>8</StupSel>
- <useUlib>1</useUlib>
+ <useUlib>0</useUlib>
<EndSel>0</EndSel>
<uLtcg>0</uLtcg>
<RoSelD>3</RoSelD>
@@ -334,7 +334,7 @@
<Optim>1</Optim>
<oTime>0</oTime>
<SplitLS>0</SplitLS>
- <OneElfS>1</OneElfS>
+ <OneElfS>0</OneElfS>
<Strict>0</Strict>
<EnumInt>0</EnumInt>
<PlainCh>0</PlainCh>
@@ -344,9 +344,9 @@
<uThumb>0</uThumb>
<VariousControls>
<MiscControls></MiscControls>
- <Define>STM32F4XX, USE_STDPERIPH_DRIVER</Define>
+ <Define>USE_STDPERIPH_DRIVER</Define>
<Undefine></Undefine>
- <IncludePath>Libraries\CMSIS\ST\STM32F4xx\Include;..\..\include;drivers;.;applications;..\..\libcpu\arm\cortex-m4;..\..\libcpu\arm\common;Libraries\STM32F4xx_StdPeriph_Driver\inc;..\..\components\finsh;Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x</IncludePath>
+ <IncludePath>.;..\..\components\finsh;..\..\include;..\..\libcpu\arm\common;..\..\libcpu\arm\cortex-m4;Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x;Libraries\CMSIS\Include;Libraries\CMSIS\ST\STM32F4xx\Include;Libraries\STM32F4xx_StdPeriph_Driver\inc;applications;drivers</IncludePath>
</VariousControls>
</Cads>
<Aads>
@@ -365,7 +365,7 @@
</VariousControls>
</Aads>
<LDads>
- <umfTarg>0</umfTarg>
+ <umfTarg>1</umfTarg>
<Ropi>0</Ropi>
<Rwpi>0</Rwpi>
<noStLib>0</noStLib>
@@ -432,11 +432,6 @@
<FilePath>Libraries\CMSIS\ST\STM32F4xx\Source\Templates\system_stm32f4xx.c</FilePath>
</File>
<File>
- <FileName>startup_stm32f4xx.s</FileName>
- <FileType>2</FileType>
- <FilePath>Libraries\CMSIS\ST\STM32F4xx\Source\Templates\arm\startup_stm32f4xx.s</FilePath>
- </File>
- <File>
<FileName>misc.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F4xx_StdPeriph_Driver\src\misc.c</FilePath>
@@ -591,30 +586,35 @@
<FileType>1</FileType>
<FilePath>Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_wwdg.c</FilePath>
</File>
+ <File>
+ <FileName>startup_stm32f4xx.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>Libraries\CMSIS\ST\STM32F4xx\Source\Templates\arm\startup_stm32f4xx.s</FilePath>
+ </File>
</Files>
</Group>
<Group>
<GroupName>Kernel</GroupName>
<Files>
<File>
- <FileName>device.c</FileName>
+ <FileName>clock.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\src\device.c</FilePath>
+ <FilePath>..\..\src\clock.c</FilePath>
</File>
<File>
- <FileName>thread.c</FileName>
+ <FileName>device.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\src\thread.c</FilePath>
+ <FilePath>..\..\src\device.c</FilePath>
</File>
<File>
- <FileName>scheduler.c</FileName>
+ <FileName>idle.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\src\scheduler.c</FilePath>
+ <FilePath>..\..\src\idle.c</FilePath>
</File>
<File>
- <FileName>timer.c</FileName>
+ <FileName>ipc.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\src\timer.c</FilePath>
+ <FilePath>..\..\src\ipc.c</FilePath>
</File>
<File>
<FileName>irq.c</FileName>
@@ -627,34 +627,34 @@
<FilePath>..\..\src\kservice.c</FilePath>
</File>
<File>
- <FileName>clock.c</FileName>
+ <FileName>mem.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\src\clock.c</FilePath>
+ <FilePath>..\..\src\mem.c</FilePath>
</File>
<File>
- <FileName>object.c</FileName>
+ <FileName>mempool.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\src\object.c</FilePath>
+ <FilePath>..\..\src\mempool.c</FilePath>
</File>
<File>
- <FileName>mempool.c</FileName>
+ <FileName>object.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\src\mempool.c</FilePath>
+ <FilePath>..\..\src\object.c</FilePath>
</File>
<File>
- <FileName>ipc.c</FileName>
+ <FileName>scheduler.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\src\ipc.c</FilePath>
+ <FilePath>..\..\src\scheduler.c</FilePath>
</File>
<File>
- <FileName>idle.c</FileName>
+ <FileName>thread.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\src\idle.c</FilePath>
+ <FilePath>..\..\src\thread.c</FilePath>
</File>
<File>
- <FileName>mem.c</FileName>
+ <FileName>timer.c</FileName>
<FileType>1</FileType>
- <FilePath>..\..\src\mem.c</FilePath>
+ <FilePath>..\..\src\timer.c</FilePath>
</File>
</Files>
</Group>
diff --git a/bsp/stm32f40x/rtconfig.h b/bsp/stm32f40x/rtconfig.h
index 07d7bb3f46..8b0fe0c1c7 100644
--- a/bsp/stm32f40x/rtconfig.h
+++ b/bsp/stm32f40x/rtconfig.h
@@ -6,7 +6,7 @@
#define RT_NAME_MAX 8
/* RT_ALIGN_SIZE*/
-#define RT_ALIGN_SIZE 4
+#define RT_ALIGN_SIZE 8
/* PRIORITY_MAX */
#define RT_THREAD_PRIORITY_MAX 32
diff --git a/bsp/stm32f40x/rtconfig.py b/bsp/stm32f40x/rtconfig.py
index d67fb87b1d..71ac7a04f2 100644
--- a/bsp/stm32f40x/rtconfig.py
+++ b/bsp/stm32f40x/rtconfig.py
@@ -31,8 +31,8 @@ if PLATFORM == 'gcc':
OBJDUMP = PREFIX + 'objdump'
OBJCPY = PREFIX + 'objcopy'
- DEVICE = ' -mcpu=cortex-m3 -mthumb -ffunction-sections -fdata-sections'
- CFLAGS = DEVICE
+ DEVICE = ' -mcpu=cortex-m4 -mthumb -mfpu=vfp -mfloat-abi=softfp -ffunction-sections -fdata-sections'
+ CFLAGS = DEVICE
AFLAGS = ' -c' + DEVICE + ' -x assembler-with-cpp'
LFLAGS = DEVICE + ' -Wl,--gc-sections,-Map=rtthread-stm32.map,-cref,-u,Reset_Handler -T stm32_rom.ld'
diff --git a/bsp/stm32f40x/stm32_rom.ld b/bsp/stm32f40x/stm32_rom.ld
new file mode 100644
index 0000000000..69ca301a92
--- /dev/null
+++ b/bsp/stm32f40x/stm32_rom.ld
@@ -0,0 +1,134 @@
+/*
+ * linker script for STM32F10x with GNU ld
+ * bernard.xiong 2009-10-14
+ */
+
+/* Program Entry, set to mark it as "used" and avoid gc */
+MEMORY
+{
+ CODE (rx) : ORIGIN = 0x08000000, LENGTH = 512k /* 512KB flash */
+ DATA (rw) : ORIGIN = 0x20000000, LENGTH = 64k /* 64K sram */
+}
+ENTRY(Reset_Handler)
+_system_stack_size = 0x100;
+
+SECTIONS
+{
+ .text :
+ {
+ . = ALIGN(4);
+ KEEP(*(.isr_vector)) /* Startup code */
+ . = ALIGN(4);
+ *(.text) /* remaining code */
+ *(.text.*) /* remaining code */
+ *(.rodata) /* read-only data (constants) */
+ *(.rodata*)
+ *(.glue_7)
+ *(.glue_7t)
+ *(.gnu.linkonce.t*)
+
+ /* section information for finsh shell */
+ . = ALIGN(4);
+ __fsymtab_start = .;
+ KEEP(*(FSymTab))
+ __fsymtab_end = .;
+ . = ALIGN(4);
+ __vsymtab_start = .;
+ KEEP(*(VSymTab))
+ __vsymtab_end = .;
+ . = ALIGN(4);
+
+ . = ALIGN(4);
+ _etext = .;
+ } > CODE = 0
+
+ /* .ARM.exidx is sorted, so has to go in its own output section. */
+ __exidx_start = .;
+ .ARM.exidx :
+ {
+ *(.ARM.exidx* .gnu.linkonce.armexidx.*)
+
+ /* This is used by the startup in order to initialize the .data secion */
+ _sidata = .;
+ } > CODE
+ __exidx_end = .;
+
+ /* .data section which is used for initialized data */
+
+ .data : AT (_sidata)
+ {
+ . = ALIGN(4);
+ /* This is used by the startup in order to initialize the .data secion */
+ _sdata = . ;
+
+ *(.data)
+ *(.data.*)
+ *(.gnu.linkonce.d*)
+
+ . = ALIGN(4);
+ /* This is used by the startup in order to initialize the .data secion */
+ _edata = . ;
+ } >DATA
+
+ .stack :
+ {
+ . = . + _system_stack_size;
+ . = ALIGN(4);
+ _estack = .;
+ } >DATA
+
+ __bss_start = .;
+ .bss :
+ {
+ . = ALIGN(4);
+ /* This is used by the startup in order to initialize the .bss secion */
+ _sbss = .;
+
+ *(.bss)
+ *(.bss.*)
+ *(COMMON)
+
+ . = ALIGN(4);
+ /* This is used by the startup in order to initialize the .bss secion */
+ _ebss = . ;
+
+ *(.bss.init)
+ } > DATA
+ __bss_end = .;
+
+ _end = .;
+
+ /* Stabs debugging sections. */
+ .stab 0 : { *(.stab) }
+ .stabstr 0 : { *(.stabstr) }
+ .stab.excl 0 : { *(.stab.excl) }
+ .stab.exclstr 0 : { *(.stab.exclstr) }
+ .stab.index 0 : { *(.stab.index) }
+ .stab.indexstr 0 : { *(.stab.indexstr) }
+ .comment 0 : { *(.comment) }
+ /* DWARF debug sections.
+ * Symbols in the DWARF debugging sections are relative to the beginning
+ * of the section so we begin them at 0. */
+ /* DWARF 1 */
+ .debug 0 : { *(.debug) }
+ .line 0 : { *(.line) }
+ /* GNU DWARF 1 extensions */
+ .debug_srcinfo 0 : { *(.debug_srcinfo) }
+ .debug_sfnames 0 : { *(.debug_sfnames) }
+ /* DWARF 1.1 and DWARF 2 */
+ .debug_aranges 0 : { *(.debug_aranges) }
+ .debug_pubnames 0 : { *(.debug_pubnames) }
+ /* DWARF 2 */
+ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
+ .debug_abbrev 0 : { *(.debug_abbrev) }
+ .debug_line 0 : { *(.debug_line) }
+ .debug_frame 0 : { *(.debug_frame) }
+ .debug_str 0 : { *(.debug_str) }
+ .debug_loc 0 : { *(.debug_loc) }
+ .debug_macinfo 0 : { *(.debug_macinfo) }
+ /* SGI/MIPS DWARF 2 extensions */
+ .debug_weaknames 0 : { *(.debug_weaknames) }
+ .debug_funcnames 0 : { *(.debug_funcnames) }
+ .debug_typenames 0 : { *(.debug_typenames) }
+ .debug_varnames 0 : { *(.debug_varnames) }
+}
diff --git a/bsp/stm32f40x/template.uvproj b/bsp/stm32f40x/template.uvproj
index f570190f28..9d416799e8 100644
--- a/bsp/stm32f40x/template.uvproj
+++ b/bsp/stm32f40x/template.uvproj
@@ -43,14 +43,14 @@
<NotGenerated>0</NotGenerated>
<InvalidFlash>1</InvalidFlash>
</TargetStatus>
- <OutputDirectory>.\obj\</OutputDirectory>
- <OutputName>project</OutputName>
+ <OutputDirectory>.\build\</OutputDirectory>
+ <OutputName>rtthread-stm32f4xx</OutputName>
<CreateExecutable>1</CreateExecutable>
<CreateLib>0</CreateLib>
<CreateHexFile>0</CreateHexFile>
<DebugInformation>1</DebugInformation>
<BrowseInformation>1</BrowseInformation>
- <ListingPath>.\obj\</ListingPath>
+ <ListingPath>.\build\</ListingPath>
<HexFormatSelection>1</HexFormatSelection>
<Merge32K>0</Merge32K>
<CreateBatchFile>0</CreateBatchFile>
@@ -158,7 +158,7 @@
<UseTargetDll>1</UseTargetDll>
<UseExternalTool>0</UseExternalTool>
<RunIndependent>0</RunIndependent>
- <UpdateFlashBeforeDebugging>0</UpdateFlashBeforeDebugging>
+ <UpdateFlashBeforeDebugging>1</UpdateFlashBeforeDebugging>
<Capability>1</Capability>
<DriverSelection>4100</DriverSelection>
</Flash1>
@@ -208,7 +208,7 @@
<hadIRAM2>1</hadIRAM2>
<hadIROM2>0</hadIROM2>
<StupSel>8</StupSel>
- <useUlib>1</useUlib>
+ <useUlib>0</useUlib>
<EndSel>0</EndSel>
<uLtcg>0</uLtcg>
<RoSelD>3</RoSelD>
@@ -334,7 +334,7 @@
<Optim>1</Optim>
<oTime>0</oTime>
<SplitLS>0</SplitLS>
- <OneElfS>1</OneElfS>
+ <OneElfS>0</OneElfS>
<Strict>0</Strict>
<EnumInt>0</EnumInt>
<PlainCh>0</PlainCh>
@@ -365,7 +365,7 @@
</VariousControls>
</Aads>
<LDads>
- <umfTarg>0</umfTarg>
+ <umfTarg>1</umfTarg>
<Ropi>0</Ropi>
<Rwpi>0</Rwpi>
<noStLib>0</noStLib>