Loading...
 

Zephyr project on STM32

   Zephyr Workbench, a VSCode extension to manage Zephyr on STM32.
It enables users to easily create, develop, and debug Zephyr applications.
Main features:
  • Install host dependencies.
  • Import toolchain and SDK.
  • Create, configure, build and manage apps.
  • Debug STM32.
You can directly download it from the VSCode marketplace
For more details, visit the Zephyr Workbench

System Workbench for STM32


port yielding is not working when another task is running

hi,
i had 3created three tasks, one for sd card writing another for interrrupt and another for displaying purpose.
interrupt task is not running when sd card task is created .
///task creation

xTaskCreate(vvDisplayTask, (const char) “vDisplayTask”, 128, NULL, tskIDLE_PRIORITY, NULL);
xTaskCreate(myint_task, (const char) “int task”, 128, NULL, tskIDLE_PRIORITY, &myint_handle);
xTaskCreate(vSDTASK, (const char) “vSDTASKsd”, 128, NULL, tskIDLE_PRIORITY, NULL);
vTaskStartScheduler()
/// my three tasks
void vSDTASK(void p)
{

FATFS fs;
FIL fil;
FRESULT res;
FILINFO MyFileInfo;
DIR MyDirectory;
UINT BytesWritten;
UINT BytesRead;
for(;;)
{

if(f_mount(&fs, “”,1)== FR_OK)
{
GPIO_SetBits(GPIOC, GPIO_Pin_15);
}
if(f_open(&fil, “carddaa.txt”, FA_OPEN_ALWAYS | FA_WRITE)== FR_OK)
{
GPIO_SetBits(GPIOA, GPIO_Pin_1);
res = f_write(&fil, “just testing”, 15, &BytesRead);

}
if(f_close(&fil)==FR_OK)
{
GPIO_SetBits(GPIOC, GPIO_Pin_14);

}

vTaskDelay(100000/portTICK_RATE_MS);
}

///2 Task
void myint_task( void * p )///interrupt task which is port yielding from ISR

{
while(1)
{
vTaskSuspend(NULL);
USART_PutStr(“pressed”);
count++;
}
}
void EXTI15_10_IRQHandler(void)// for interrupt task
{
BaseType_t checkIfYieldRequired;
checkIfYieldRequired=xTaskResumeFromISR(myint_handle);
portYIELD_FROM_ISR(checkIfYieldRequired);
EXTI_ClearITPendingBit(EXTI_Line12);

}

/// 3 Task
void vDisplayTask( void * p )
{
for(;;)
{
value=(count/4000)*60;
//count=0;

USART_PutStr(“\r\n”);

USART_PutMsgAndVal(“count”,count/2,1);
vTaskDelay(4000/portTICK_RATE_MS);
}
}

interrupt task (myint_task) is not running when vSDTASK is running . what would be the problem please help me.
thanks and regard ajith.