Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of mbed-src by
Diff: common/retarget.cpp
- Revision:
- 473:44b5a0bc6da6
- Parent:
- 431:255afbe6270c
- Child:
- 476:4dac56e9ae44
--- a/common/retarget.cpp Thu Feb 12 13:00:07 2015 +0000 +++ b/common/retarget.cpp Thu Feb 12 13:15:07 2015 +0000 @@ -1,5 +1,5 @@ /* mbed Microcontroller Library - * Copyright (c) 2006-2013 ARM Limited + * Copyright (c) 2006-2015 ARM Limited * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,6 +19,11 @@ #include "FilePath.h" #include "serial_api.h" #include "toolchain.h" +#include "semihost_api.h" +#include "mbed_interface.h" +#if DEVICE_STDIO_MESSAGES +#include <stdio.h> +#endif #include <errno.h> #if defined(__ARMCC_VERSION) @@ -482,6 +487,33 @@ #endif +#ifdef TOOLCHAIN_GCC_CW +// TODO: Ideally, we would like to define directly "_ExitProcess" +extern "C" void mbed_exit(int return_code) { +#elif defined TOOLCHAIN_GCC_ARM +extern "C" void _exit(int return_code) { +#else +extern "C" void exit(int return_code) { +#endif + +#if DEVICE_STDIO_MESSAGES + fflush(stdout); + fflush(stderr); +#endif + +#if DEVICE_SEMIHOST + if (mbed_interface_connected()) { + semihost_exit(); + } +#endif + if (return_code) { + mbed_die(); + } + + while (1); +} + + namespace mbed { void mbed_set_unbuffered_stream(FILE *_file) { @@ -524,11 +556,3 @@ } } // namespace mbed - - - - - - - -