FreeRTOS Support Archive
The FreeRTOS support forum is used to obtain active support directly from Real
Time Engineers Ltd. In return for using our top quality software and services for
free, we request you play fair and do your bit to help others too! Sign up
to receive notifications of new support topics then help where you can.
This is a read only archive of threads posted to the FreeRTOS support forum.
The archive is updated every week, so will not always contain the very latest posts.
Use these archive pages to search previous posts. Use the Live FreeRTOS Forum
link to reply to a post, or start a new support thread.
[FreeRTOS Home] [Live FreeRTOS Forum] [FAQ] [Archive Top] [January 2013 Threads]
I've started adding FAT file support to FreeRTOS, on top of a main_blinky setup. It works without the FAT code, but when I add a thread to start running code already tested on run-to-complete it jumps to the Dummy_Handler. It says this is for unused IRQs
I've added this very basic thread so far:
void FATFileProcessing( void *pvParameters )
{
/* Just to avoid compiler warnings. */
( void ) pvParameters;
FRESULT rc;/* Result code */
DIR dir;/* Directory object */
FILINFO fno;/* File information object */
char FileName[13];
unsigned int i;
FATFS Fatfs;/* File system object */
unsigned long SS;
InitialiseSD();
f_mount(0, &Fatfs);
disk_ioctl (0,GET_SECTOR_COUNT,&SS);
rc = f_readdir(&dir, &fno);// Read a directory item
while (1)
{
}
}
Doesn't look to me like there are any HSMCI interrupts enabled, I certainly didn't enable them previously. If I take out this code, it's fine and doesn't stop in the Dummy_Handler();
It falls over in f_readdir(&dir, &fno);
If I take that call out it is fine. It's odd because there's no hardware initialisation in there at all! That is completely abstracted from the hardware, it is just examining previously created directory and file structures. I've given 4k of stack to this routine, so I assume it's nothing to do with running out of memory.
Anyone able to suggest what might be causing it or tell me how I can ascertain what peripheral's interrupt has gone off please?
Thanks!
Assuming InitialiseSD() does not enable any interrupts....you are probably hitting the hard fault handler. Is Dummy_Hander() installed as the hard fault handler?
http://www.freertos.org/Debugging-Hard-Faults-On-Cortex-M-Microcontrollers.html
Regards.
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.