Example showing \"hang\" when reading from bad pointer, and catching this in the HardFault_Handler

Dependencies:   mbed

main.cpp

Committer:
simon
Date:
2012-03-04
Revision:
0:333b2c3ec494

File content as of revision 0:333b2c3ec494:

// Example of hanging when reading a bad pointer

#include "mbed.h"

DigitalOut myled(LED1);

int x[10] = {0};

extern "C" void HardFault_Handler() {
    error("Hit HardFault handler!\n");
}

int main() {
    int *ok_ptr = x;
    int *bad_ptr = (int*)0xe600b0; // not in RAM!
    printf("ok_ptr = 0x%08X, bad_ptr = 0x%08X\n", ok_ptr, bad_ptr);
    
    int ok_read = ok_ptr[0];
    printf("ok_read = %d\n", ok_read);
    
    int bad_read = bad_ptr[0]; 
    printf("bad_read = %d\n", bad_read);

    while(1) {
        myled = 1;
        wait(0.2);
        myled = 0;
        wait(0.2);
    }
}