diff options
| author | wuyangyong <[email protected]> | 2011-12-31 21:42:12 +0000 |
|---|---|---|
| committer | wuyangyong <[email protected]> | 2011-12-31 21:42:12 +0000 |
| commit | 76e81a9977245e4bc7919688ef37442fc6cfc97b (patch) | |
| tree | 37667074800f4503e729bcbb4b12e104e00d4f79 /bsp | |
| parent | 25ab97df39e2bdf2f09995c30c6c79847d6ec0e8 (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.c | 172 | ||||
| -rw-r--r-- | bsp/stm32f40x/applications/startup.c | 17 | ||||
| -rw-r--r-- | bsp/stm32f40x/project.uvopt | 222 | ||||
| -rw-r--r-- | bsp/stm32f40x/project.uvproj | 68 | ||||
| -rw-r--r-- | bsp/stm32f40x/rtconfig.h | 2 | ||||
| -rw-r--r-- | bsp/stm32f40x/rtconfig.py | 4 | ||||
| -rw-r--r-- | bsp/stm32f40x/stm32_rom.ld | 134 | ||||
| -rw-r--r-- | bsp/stm32f40x/template.uvproj | 14 |
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> |
