
Demonstrates crash on memory allocation.
main.cpp@1:883b8bc1f54a, 2011-03-29 (annotated)
- Committer:
- Kemp
- Date:
- Tue Mar 29 13:47:01 2011 +0000
- Revision:
- 1:883b8bc1f54a
- Parent:
- 0:786b75c6aaca
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Kemp | 0:786b75c6aaca | 1 | #include "mbed.h" |
Kemp | 0:786b75c6aaca | 2 | |
Kemp | 0:786b75c6aaca | 3 | |
Kemp | 0:786b75c6aaca | 4 | Serial pc(USBTX, USBRX); |
Kemp | 1:883b8bc1f54a | 5 | BusOut leds(LED1, LED2, LED3, LED4); |
Kemp | 0:786b75c6aaca | 6 | |
Kemp | 0:786b75c6aaca | 7 | extern "C" void HardFault_Handler() |
Kemp | 0:786b75c6aaca | 8 | { |
Kemp | 0:786b75c6aaca | 9 | pc.printf("Hard fault!\r\n"); |
Kemp | 1:883b8bc1f54a | 10 | while(1) { |
Kemp | 1:883b8bc1f54a | 11 | leds = 0x09; |
Kemp | 1:883b8bc1f54a | 12 | wait(0.4); |
Kemp | 1:883b8bc1f54a | 13 | leds = 0x06; |
Kemp | 1:883b8bc1f54a | 14 | wait(0.4); |
Kemp | 1:883b8bc1f54a | 15 | } |
Kemp | 0:786b75c6aaca | 16 | } |
Kemp | 0:786b75c6aaca | 17 | |
Kemp | 0:786b75c6aaca | 18 | |
Kemp | 0:786b75c6aaca | 19 | void fail() |
Kemp | 0:786b75c6aaca | 20 | { |
Kemp | 0:786b75c6aaca | 21 | pc.printf("Caught the failure\r\n"); |
Kemp | 1:883b8bc1f54a | 22 | while(1) { |
Kemp | 1:883b8bc1f54a | 23 | leds = 0x09; |
Kemp | 1:883b8bc1f54a | 24 | wait(0.4); |
Kemp | 1:883b8bc1f54a | 25 | leds = 0x06; |
Kemp | 1:883b8bc1f54a | 26 | wait(0.4); |
Kemp | 1:883b8bc1f54a | 27 | } |
Kemp | 0:786b75c6aaca | 28 | } |
Kemp | 0:786b75c6aaca | 29 | |
Kemp | 0:786b75c6aaca | 30 | |
Kemp | 0:786b75c6aaca | 31 | class Test |
Kemp | 0:786b75c6aaca | 32 | { |
Kemp | 0:786b75c6aaca | 33 | public: |
Kemp | 0:786b75c6aaca | 34 | int something; |
Kemp | 0:786b75c6aaca | 35 | char woot[28]; |
Kemp | 0:786b75c6aaca | 36 | }; |
Kemp | 0:786b75c6aaca | 37 | |
Kemp | 0:786b75c6aaca | 38 | |
Kemp | 0:786b75c6aaca | 39 | int main() { |
Kemp | 0:786b75c6aaca | 40 | Test *dummy; |
Kemp | 0:786b75c6aaca | 41 | int index = 0; |
Kemp | 0:786b75c6aaca | 42 | |
Kemp | 0:786b75c6aaca | 43 | while(1) { |
Kemp | 0:786b75c6aaca | 44 | dummy = new Test; |
Kemp | 0:786b75c6aaca | 45 | if (dummy == NULL) fail(); |
Kemp | 0:786b75c6aaca | 46 | pc.printf("%u\r\n", index); |
Kemp | 0:786b75c6aaca | 47 | ++index; |
Kemp | 0:786b75c6aaca | 48 | } |
Kemp | 0:786b75c6aaca | 49 | } |