Question
Hard fault from full screen jpg images with STM32F746 Discovery
Smaller images work now but when I try full screen images, I get a hard fault. I have changed dimension in main.h.
I have used code from repository/application with small modifications
FATFS SDFatFs; /* File system object for SD card logical drive */
FIL MyFile; /* File object */
char SDPath[4]; /* SD card logical drive path */
RGB_typedef *RGB_matrix;
uint8_t _aucLine[2048];
//uint8_t _aucLine[4048];
uint32_t offset = 0;
//uint32_t line_counter = 239;
uint32_t line_counter = 271;
/* Private function prototypes -----------------------------------------------*/
static void SystemClock_Config(void);
static void LCD_Config(void);
static uint8_t Jpeg_CallbackFunction(uint8_t* Row, uint32_t DataLength);
static void CPU_CACHE_Enable(void);
/* Private functions ---------------------------------------------------------*/
/**
* @brief Main program
* @param None
* @retval None
*/
int main(void)
{
/* Enable the CPU Cache */
CPU_CACHE_Enable();
/* STM32F7xx HAL library initialization:
- Configure the Flash ART accelerator on ITCM interface
- Systick timer is configured by default as source of time base, but user
can eventually implement his proper time base source (a general purpose
timer for example or other time source), keeping in mind that Time base
duration should be kept 1ms since PPP_TIMEOUT_VALUEs are defined and
handled in milliseconds basis.
- Set NVIC Group Priority to 4
- Low Level Initialization
*/
HAL_Init();
/* Configure the system clock to 200 MHz */
SystemClock_Config();
/*##-1- LCD Configuration ##################################################*/
LCD_Config();
//offset = 0;
//line_counter = 271;
if(FATFS_LinkDriver(&SD_Driver, SDPath) == 0)
{
if(f_mount(&SDFatFs, (TCHAR const*)SDPath, 0) == FR_OK)
{
while (1)
{
if(f_open(&MyFile, "leif.jpg", FA_READ) == FR_OK)
{
}
jpeg_decode(&MyFile, IMAGE_WIDTH, _aucLine, Jpeg_CallbackFunction);
HAL_Delay(2000);
offset = 0;
line_counter = 271;
if(f_open(&MyFile, "61.jpg", FA_READ) == FR_OK)
{
}
jpeg_decode(&MyFile, IMAGE_WIDTH, _aucLine, Jpeg_CallbackFunction);
HAL_Delay(2000);
offset = 0;
line_counter = 271;
}
}
}
f_close(&MyFile);
}