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] [June 2011 Threads] _general_exception_handler erasing flashPosted by Robert H. Oujesky on June 9, 2011 I am using FreeRTOS on a custom PIC32 based board that looks a lot like an Explorer 16 board. Anyway, when I erase the 3rd page of flash I am getting a _general_exception_handler. I cannot extract from the volumes of microchip data what the cause is. How do I interpret what the ulCause and ulStatus mean? It might be helpful..... Also, how is _general_exception_handler registered as the exception handler? I searched for _general_exception_handler all thru the code and it only appears in main.c. Is _general_exception_handler some kind of compiler/linker reserved function for microchip? Just curious about that part.....
thanks!
RE: _general_exception_handler erasing flashPosted by Richard on June 9, 2011 The CAUSE register is described in the manual for the MIPS M4K core, not in the PIC32 manual (at least that was the case when I wrote the port). You can download the M4K technical documentation from MIPS directly.
Regards.
RE: _general_exception_handler erasing flashPosted by Robert H. Oujesky on June 9, 2011 after re-reading, it is not clear what i am doing :( I downloaded the "HID Bootloader..." example from microchip. It appears to work. In my code, I have a loop: for( temp = 0; temp < (MaxPageToErase); temp++ ) { //pFlashTemp = 0x1d000000; pFlashTemp = pFlash + (temp*FLASH_PAGE_SIZE); NVMErasePage((void*) pFlashTemp ); USBDeviceTasks(); //Call USBDriverService() periodically to prevent falling off the bus if any SETUP packets should happen to arrive. }
the 3rd time thru the loop I get a _general_exception_handler. I wonder if the call to NVMErasePage causes a _general_exception_handler in some kind of asynchronous way so it just so happens the exception occurs, but i continue stepping?????
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.
|