This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

using Keil RL-RTX with STemWin

Dear Sir,

I'm using STM32F4-DISCOVERY kit with BB board and tft-lcd from Embest. I've run the STemWin standalone demo on my board successfully. Now I've to switch to RL-RTX to run this demo.
But I'm having these linking errors:

""linking...
emWin.axf: Error: L6218E: Undefined symbol MainTask (referred from main2.o).
emWin.axf: Error: L6218E: Undefined symbol GUI_X_GetTaskId (referred from gui_task.o).
emWin.axf: Error: L6218E: Undefined symbol GUI_X_InitOS (referred from gui_task.o).
emWin.axf: Error: L6218E: Undefined symbol GUI_X_Lock (referred from gui_task.o).
emWin.axf: Error: L6218E: Undefined symbol GUI_X_Unlock (referred from gui_task.o). ""

How can I use KEIL RL-RTX to do this job. I've only modified my main.c like this:

""

#include <RTL.h>
#include "stm32f4xx.h"
#include "stm32f4_discovery.h"
#include "GUI.h"
#include "bsp.h"

#include "DIALOG.h"

OS_TID t_GRAPHICS;
OS_TID t_STEPPER;

extern void MainTask(void);
extern void LED_Init (void);
U16 COUNTER1;

/*********************************************************************
* Externals
*********************************************************************/
WM_HWIN CreateIntro(void);
uint8_t GUI_Initialized = 0;

* Main
*/
__task void GRAPHICS (void) {

os_evt_wait_and(0x0002,0xffff); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);

//STM32f4_Discovery_LCD_Init();

/* Initilize the BSP layer */ BSP_Init();

/* Activate the use of memory device feature */ WM_SetCreateFlags(WM_CF_MEMDEV);

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_CRC, ENABLE);

/* Init the STemWin GUI Library */ GUI_Init();

/*WM_SelectWindow(WM_HBKWIN); WM_SetDesktopColor(GUI_BLACK);*/

GUI_Initialized = 1;

MainTask(); for (;;);
}

__task void STEPPER (void) {

os_evt_wait_and(0x0001,0xffff); /* my code*/

}

void BSP_Background (void)
{ static uint32_t LED_ticks = 0; static uint32_t POINTER_ticks = 0;

if ( LED_ticks++ > 100 ) { LED_ticks = 0;

/* toggle LED1..4 each 100ms */ /* STM_EVAL_LEDToggle(LED4); STM_EVAL_LEDToggle(LED3); STM_EVAL_LEDToggle(LED5); STM_EVAL_LEDToggle(LED6);*/ }

if ( POINTER_ticks++ > 50 ) { POINTER_ticks = 0; /* Capture input event and updade cursor */ if(GUI_Initialized == 1) { BSP_Pointer_Update(); } }
}

#ifdef USE_FULL_ASSERT
/** * @brief Reports the name of the source file and the source line number * where the assert_param error has occurred. * @param file: pointer to the source file name * @param line: assert_param error line source number * @retval None */
void assert_failed(uint8_t* file, uint32_t line)
{ /* User can add his own implementation to report the file name and line number, ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */

/* Infinite loop */ while (1) {}
} #endif

void delay(__IO uint32_t nCount)
{ __IO uint32_t index = 0; for (index = (100000 * nCount); index != 0; index--);
}

__task void init (void) {

//os_sem_init (semaphore1, 1); t_GRAPHICS= os_tsk_create(GRAPHICS,0); t_STEPPER= os_tsk_create(STEPPER,1); os_evt_set (0x0001, t_STEPPER); /* send signal event to task phaseA */ os_tsk_delete_self (); }

int main (void) { LED_Init(); os_sys_init (init); /* Initialize RTX and start init */} ""

kindly someone help me...