mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-04-19 21:11:57 -04:00
Developing STM32L152 demo - still a work in progress.
This commit is contained in:
parent
69d1fc1a13
commit
c015ea5cfe
|
@ -68,7 +68,7 @@
|
|||
|
||||
#define configUSE_PREEMPTION 1
|
||||
#define configUSE_IDLE_HOOK 0
|
||||
#define configUSE_TICK_HOOK 0
|
||||
#define configUSE_TICK_HOOK 1
|
||||
#define configCPU_CLOCK_HZ ( 32000000UL )
|
||||
#define configTICK_RATE_HZ ( ( portTickType ) 1000 )
|
||||
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 5 )
|
||||
|
|
|
@ -1753,6 +1753,9 @@
|
|||
</group>
|
||||
<group>
|
||||
<name>Standard_Demo_Code</name>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\Common\Minimal\dynamic.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\Common\Minimal\flash.c</name>
|
||||
</file>
|
||||
|
|
|
@ -62,6 +62,7 @@
|
|||
/* Demo application includes. */
|
||||
#include "partest.h"
|
||||
#include "flash.h"
|
||||
#include "dynamic.h"
|
||||
|
||||
/* ST driver includes. */
|
||||
#include "stm32l1xx_usart.h"
|
||||
|
@ -82,6 +83,7 @@
|
|||
#define mainMESSAGE_BUTTON_LEFT ( 3 )
|
||||
#define mainMESSAGE_BUTTON_RIGHT ( 4 )
|
||||
#define mainMESSAGE_BUTTON_SEL ( 5 )
|
||||
#define mainMESSAGE_STATUS ( 6 )
|
||||
|
||||
/*
|
||||
* System configuration is performed prior to main() being called, this function
|
||||
|
@ -111,11 +113,11 @@ void main( void )
|
|||
{
|
||||
xTaskCreate( prvLCDTask, ( signed char * ) "LCD", mainLCD_TASK_STACK_SIZE, NULL, mainLCD_TASK_PRIORITY, NULL );
|
||||
xTaskCreate( vTempTask, ( signed char * ) "Temp", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL );
|
||||
}
|
||||
|
||||
vStartDynamicPriorityTasks();
|
||||
vStartLEDFlashTasks( mainFLASH_TASK_PRIORITY );
|
||||
|
||||
vTaskStartScheduler();
|
||||
}
|
||||
|
||||
for( ;; );
|
||||
}
|
||||
|
@ -132,7 +134,7 @@ static char cBuffer[ 32 ];
|
|||
{
|
||||
xQueueReceive( xLCDQueue, &xReceivedMessage, portMAX_DELAY );
|
||||
|
||||
if( lLine >= Line9 )
|
||||
if( lLine > Line9 )
|
||||
{
|
||||
LCD_Clear( Blue );
|
||||
lLine = 0;
|
||||
|
@ -142,13 +144,15 @@ static char cBuffer[ 32 ];
|
|||
{
|
||||
case mainMESSAGE_BUTTON_UP : sprintf( cBuffer, "Button up = %d", xReceivedMessage.lMessageValue );
|
||||
break;
|
||||
case mainMESSAGE_BUTTON_DOWN :
|
||||
case mainMESSAGE_BUTTON_DOWN : sprintf( cBuffer, "Button down = %d", xReceivedMessage.lMessageValue );
|
||||
break;
|
||||
case mainMESSAGE_BUTTON_LEFT :
|
||||
case mainMESSAGE_BUTTON_LEFT : sprintf( cBuffer, "Button left = %d", xReceivedMessage.lMessageValue );
|
||||
break;
|
||||
case mainMESSAGE_BUTTON_RIGHT :
|
||||
case mainMESSAGE_BUTTON_RIGHT : sprintf( cBuffer, "Button right = %d", xReceivedMessage.lMessageValue );
|
||||
break;
|
||||
case mainMESSAGE_BUTTON_SEL :
|
||||
case mainMESSAGE_BUTTON_SEL : sprintf( cBuffer, "Select interrupt!" );
|
||||
break;
|
||||
case mainMESSAGE_STATUS : sprintf( cBuffer, "Task status = %s", ( ( xReceivedMessage.lMessageValue ) ? "PASS" : "FAIL" ) );
|
||||
break;
|
||||
default : sprintf( cBuffer, "Unknown message" );
|
||||
break;
|
||||
|
@ -160,9 +164,41 @@ static char cBuffer[ 32 ];
|
|||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void EXTI9_5_IRQHandler( void )
|
||||
{
|
||||
const xQueueMessage xMessage = { mainMESSAGE_BUTTON_SEL, 0 };
|
||||
long lHigherPriorityTaskWoken = pdFALSE;
|
||||
|
||||
xQueueSendFromISR( xLCDQueue, &xMessage, &lHigherPriorityTaskWoken );
|
||||
EXTI_ClearITPendingBit( SEL_BUTTON_EXTI_LINE );
|
||||
portEND_SWITCHING_ISR( lHigherPriorityTaskWoken );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void vApplicationTickHook( void )
|
||||
{
|
||||
static unsigned long ulCounter = 0;
|
||||
static const unsigned long ulCheckFrequency = 5000UL / portTICK_RATE_MS;
|
||||
static xQueueMessage xStatusMessage = { mainMESSAGE_STATUS, pdPASS };
|
||||
long lHigherPriorityTaskWoken = pdFALSE; /* Not used in this case as this is the tick hook. */
|
||||
|
||||
ulCounter++;
|
||||
if( ulCounter >= ulCheckFrequency )
|
||||
{
|
||||
if( xAreDynamicPriorityTasksStillRunning() != pdPASS )
|
||||
{
|
||||
xStatusMessage.lMessageValue = pdFAIL;
|
||||
}
|
||||
|
||||
xQueueSendFromISR( xLCDQueue, &xStatusMessage, &lHigherPriorityTaskWoken );
|
||||
ulCounter = 0;
|
||||
}
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
static void vTempTask( void *pv )
|
||||
{
|
||||
long lLastState = pdFALSE;
|
||||
long lLastState = pdTRUE;
|
||||
long lState;
|
||||
xQueueMessage xMessage;
|
||||
|
||||
|
@ -187,13 +223,20 @@ static void prvSetupHardware( void )
|
|||
/* Initialise the LEDs. */
|
||||
vParTestInitialise();
|
||||
|
||||
//BUTTON_MODE_EXTI
|
||||
//
|
||||
/* Initialise the joystick inputs. */
|
||||
STM_EVAL_PBInit( BUTTON_UP, BUTTON_MODE_GPIO );
|
||||
STM_EVAL_PBInit( BUTTON_DOWN, BUTTON_MODE_GPIO );
|
||||
STM_EVAL_PBInit( BUTTON_LEFT, BUTTON_MODE_GPIO );
|
||||
STM_EVAL_PBInit( BUTTON_RIGHT, BUTTON_MODE_GPIO );
|
||||
STM_EVAL_PBInit( BUTTON_SEL, BUTTON_MODE_GPIO );
|
||||
|
||||
/* The select button in the middle of the joystick is configured to generate
|
||||
an interrupt. The Eval board library will configure the interrupt
|
||||
priority to be the lowest priority available - this is important as the
|
||||
interrupt service routine makes use of a FreeRTOS API function so must
|
||||
therefore use a priority equal to or below that set by the
|
||||
configMAX_SYSCALL_INTERRUPT_PRIORITY() value set in FreeRTOSConfig.h. */
|
||||
STM_EVAL_PBInit( BUTTON_SEL, BUTTON_MODE_EXTI );
|
||||
|
||||
#if 0
|
||||
USART_InitTypeDef USART_InitStructure;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[DebugChecksum]
|
||||
Checksum=1807629591
|
||||
Checksum=685534858
|
||||
[DisAssemblyWindow]
|
||||
NumStates=_ 1
|
||||
State 1=_ 1
|
||||
|
@ -41,6 +41,10 @@ ActionState=1
|
|||
[TraceHelper]
|
||||
Enabled=0
|
||||
ShowSource=1
|
||||
[Disassemble mode]
|
||||
mode=0
|
||||
[Breakpoints]
|
||||
Count=0
|
||||
[Log file]
|
||||
LoggingEnabled=_ 0
|
||||
LogFile=_ ""
|
||||
|
@ -48,6 +52,9 @@ Category=_ 0
|
|||
[TermIOLog]
|
||||
LoggingEnabled=_ 0
|
||||
LogFile=_ ""
|
||||
[Aliases]
|
||||
Count=0
|
||||
SuppressDialog=0
|
||||
[CallStackLog]
|
||||
Enabled=0
|
||||
[DriverProfiling]
|
||||
|
@ -55,10 +62,3 @@ Enabled=0
|
|||
Mode=995247177
|
||||
Graph=0
|
||||
Symbiont=0
|
||||
[Disassemble mode]
|
||||
mode=0
|
||||
[Breakpoints]
|
||||
Count=0
|
||||
[Aliases]
|
||||
Count=0
|
||||
SuppressDialog=0
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
<Build><ColumnWidth0>20</ColumnWidth0><ColumnWidth1>1216</ColumnWidth1><ColumnWidth2>324</ColumnWidth2><ColumnWidth3>81</ColumnWidth3></Build><TerminalIO/><Debug-Log><ColumnWidth0>20</ColumnWidth0><ColumnWidth1>1622</ColumnWidth1></Debug-Log></Static>
|
||||
<Windows>
|
||||
|
||||
<Wnd2>
|
||||
<Wnd0>
|
||||
<Tabs>
|
||||
<Tab>
|
||||
<Identity>TabID-27630-4718</Identity>
|
||||
|
@ -25,24 +25,24 @@
|
|||
<Factory>Workspace</Factory>
|
||||
<Session>
|
||||
|
||||
<NodeDict><ExpandedNode>RTOSDemo</ExpandedNode><ExpandedNode>RTOSDemo/System_and_ST_Code</ExpandedNode><ExpandedNode>RTOSDemo/System_and_ST_Code/Eval_Board_Library</ExpandedNode><ExpandedNode>RTOSDemo/System_and_ST_Code/Peripheral_Library</ExpandedNode></NodeDict></Session>
|
||||
<NodeDict><ExpandedNode>RTOSDemo</ExpandedNode><ExpandedNode>RTOSDemo/FreeRTOS_Source</ExpandedNode><ExpandedNode>RTOSDemo/Standard_Demo_Code</ExpandedNode><ExpandedNode>RTOSDemo/System_and_ST_Code</ExpandedNode><ExpandedNode>RTOSDemo/System_and_ST_Code/Eval_Board_Library</ExpandedNode><ExpandedNode>RTOSDemo/System_and_ST_Code/Peripheral_Library</ExpandedNode></NodeDict></Session>
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
<SelectedTab>0</SelectedTab></Wnd2><Wnd3><Tabs><Tab><Identity>TabID-10002-7709</Identity><TabName>Build</TabName><Factory>Build</Factory><Session/></Tab><Tab><Identity>TabID-18437-21512</Identity><TabName>Debug Log</TabName><Factory>Debug-Log</Factory><Session/></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd3></Windows>
|
||||
<SelectedTab>0</SelectedTab></Wnd0><Wnd1><Tabs><Tab><Identity>TabID-10002-7709</Identity><TabName>Build</TabName><Factory>Build</Factory><Session/></Tab><Tab><Identity>TabID-18437-21512</Identity><TabName>Debug Log</TabName><Factory>Debug-Log</Factory><Session/></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd1></Windows>
|
||||
<Editor>
|
||||
|
||||
|
||||
|
||||
|
||||
<Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\main.c</Filename><XPos>0</XPos><YPos>11</YPos><SelStart>3083</SelStart><SelEnd>3083</SelEnd></Tab><ActiveTab>0</ActiveTab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
|
||||
<Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\main.c</Filename><XPos>0</XPos><YPos>58</YPos><SelStart>3560</SelStart><SelEnd>3560</SelEnd></Tab><ActiveTab>0</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\system_and_ST_code\STM32L152_EVAL\stm32l152_eval.c</Filename><XPos>0</XPos><YPos>269</YPos><SelStart>10954</SelStart><SelEnd>10954</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\system_and_ST_code\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_syscfg.c</Filename><XPos>0</XPos><YPos>125</YPos><SelStart>4815</SelStart><SelEnd>4815</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\system_and_ST_code\startup_stm32l1xx_md.s</Filename><XPos>0</XPos><YPos>309</YPos><SelStart>10065</SelStart><SelEnd>10083</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\Source\portable\IAR\ARM_CM3\portmacro.h</Filename><XPos>0</XPos><YPos>91</YPos><SelStart>4341</SelStart><SelEnd>4381</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\Source\portable\IAR\ARM_CM3\portasm.s</Filename><XPos>0</XPos><YPos>92</YPos><SelStart>4644</SelStart><SelEnd>4644</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\Source\queue.c</Filename><XPos>0</XPos><YPos>794</YPos><SelStart>29177</SelStart><SelEnd>29177</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\Common\Minimal\dynamic.c</Filename><XPos>0</XPos><YPos>388</YPos><SelStart>15479</SelStart><SelEnd>15515</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\Source\tasks.c</Filename><XPos>0</XPos><YPos>1107</YPos><SelStart>38209</SelStart><SelEnd>38209</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\FreeRTOSConfig.h</Filename><XPos>0</XPos><YPos>50</YPos><SelStart>3695</SelStart><SelEnd>3695</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\system_and_ST_code\STM32L152_EVAL\stm32l152_eval_lcd.c</Filename><XPos>0</XPos><YPos>6</YPos><SelStart>1224</SelStart><SelEnd>1224</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\system_and_ST_code\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_gpio.c</Filename><XPos>0</XPos><YPos>302</YPos><SelStart>9524</SelStart><SelEnd>9524</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\system_and_ST_code\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_spi.c</Filename><XPos>0</XPos><YPos>20</YPos><SelStart>1472</SelStart><SelEnd>1472</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\Source\portable\IAR\ARM_CM3\port.c</Filename><XPos>0</XPos><YPos>162</YPos><SelStart>7128</SelStart><SelEnd>7128</SelEnd></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
|
||||
<Positions>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<Top><Row0><Sizes><Toolbar-012aae80><key>iaridepm.enu1</key></Toolbar-012aae80></Sizes></Row0><Row1><Sizes/></Row1></Top><Left><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>740</Bottom><Right>285</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>119048</sizeHorzCX><sizeHorzCY>203666</sizeHorzCY><sizeVertCX>170833</sizeVertCX><sizeVertCY>755601</sizeVertCY></Rect></Wnd2></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>198</Bottom><Right>1682</Right><x>-2</x><y>-2</y><xscreen>1684</xscreen><yscreen>200</yscreen><sizeHorzCX>1002381</sizeHorzCX><sizeHorzCY>203666</sizeHorzCY><sizeVertCX>119048</sizeVertCX><sizeVertCY>203666</sizeVertCY></Rect></Wnd3></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
|
||||
<Top><Row0><Sizes><Toolbar-012aae88><key>iaridepm.enu1</key></Toolbar-012aae88></Sizes></Row0><Row1><Sizes/></Row1></Top><Left><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>740</Bottom><Right>285</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>119048</sizeHorzCX><sizeHorzCY>203666</sizeHorzCY><sizeVertCX>170833</sizeVertCX><sizeVertCY>755601</sizeVertCY></Rect></Wnd0></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>198</Bottom><Right>1682</Right><x>-2</x><y>-2</y><xscreen>1684</xscreen><yscreen>200</yscreen><sizeHorzCX>1002381</sizeHorzCX><sizeHorzCY>203666</sizeHorzCY><sizeVertCX>119048</sizeVertCX><sizeVertCY>203666</sizeVertCY></Rect></Wnd1></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
|
||||
</Desktop>
|
||||
</Workspace>
|
||||
|
||||
|
|
Loading…
Reference in a new issue