mbed library sources
Dependents: Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more
Superseded
This library was superseded by mbed-dev - https://os.mbed.com/users/mbed_official/code/mbed-dev/.
Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.
If you are looking for a stable and tested release, please import one of the official mbed library releases:
Import librarymbed
The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.
Revision 23:8d50de55f208, committed 2013-09-16
- Comitter:
- mbed_official
- Date:
- Mon Sep 16 16:15:04 2013 +0100
- Parent:
- 22:dbd009839d5e
- Child:
- 24:75304dd5f5fb
- Commit message:
- Synchronized with git revision 96ea3db1b37e4f615584fba010d46f37056474ed
Changed in this revision
--- a/common/retarget.cpp Fri Sep 13 14:22:58 2013 +0100 +++ b/common/retarget.cpp Mon Sep 16 16:15:04 2013 +0100 @@ -439,13 +439,20 @@ #undef errno extern "C" int errno; +// For ARM7 only +register unsigned char * stack_ptr __asm ("sp"); + // Dynamic memory allocation related syscall. extern "C" caddr_t _sbrk(int incr) { static unsigned char* heap = (unsigned char*)&__end__; unsigned char* prev_heap = heap; unsigned char* new_heap = heap + incr; +#ifdef __get_MSP if (new_heap >= (unsigned char*)__get_MSP()) { +#else + if (new_heap >= stack_ptr) { +#endif errno = ENOMEM; return (caddr_t)-1; }
--- a/targets/cmsis/TARGET_NXP/TARGET_LPC23XX/TOOLCHAIN_GCC_ARM/LPC2368.ld Fri Sep 13 14:22:58 2013 +0100 +++ b/targets/cmsis/TARGET_NXP/TARGET_LPC23XX/TOOLCHAIN_GCC_ARM/LPC2368.ld Mon Sep 16 16:15:04 2013 +0100 @@ -143,6 +143,7 @@ . = ALIGN( 8 ) ; __heap_start__ = . ; end = . ; + __end__ = . ; .stab 0 (NOLOAD) : { *(.stab) } .stabstr 0 (NOLOAD) : { *(.stabstr) }
--- a/targets/hal/TARGET_NXP/TARGET_LPC23XX/analogin_api.c Fri Sep 13 14:22:58 2013 +0100 +++ b/targets/hal/TARGET_NXP/TARGET_LPC23XX/analogin_api.c Mon Sep 16 16:15:04 2013 +0100 @@ -42,7 +42,7 @@ void analogin_init(analogin_t *obj, PinName pin) { obj->adc = (ADCName)pinmap_peripheral(pin, PinMap_ADC); - if (obj->adc == (uint32_t)NC) { + if (obj->adc == (ADCName)NC) { error("ADC pin mapping failed"); }
--- a/targets/hal/TARGET_NXP/TARGET_LPC23XX/analogout_api.c Fri Sep 13 14:22:58 2013 +0100 +++ b/targets/hal/TARGET_NXP/TARGET_LPC23XX/analogout_api.c Mon Sep 16 16:15:04 2013 +0100 @@ -25,7 +25,7 @@ void analogout_init(dac_t *obj, PinName pin) { obj->dac = (DACName)pinmap_peripheral(pin, PinMap_DAC); - if (obj->dac == (uint32_t)NC) { + if (obj->dac == (DACName)NC) { error("DAC pin mapping failed"); }
--- a/targets/hal/TARGET_NXP/TARGET_LPC23XX/ethernet_api.c Fri Sep 13 14:22:58 2013 +0100 +++ b/targets/hal/TARGET_NXP/TARGET_LPC23XX/ethernet_api.c Mon Sep 16 16:15:04 2013 +0100 @@ -697,7 +697,7 @@ if(receive_idx == -1) { receive_idx = LPC_EMAC->RxConsumeIndex; } else { - while(!(rxstat[receive_idx].Info & RINFO_LAST_FLAG) && (receive_idx != LPC_EMAC->RxProduceIndex)) { + while(!(rxstat[receive_idx].Info & RINFO_LAST_FLAG) && ((uint32_t)receive_idx != LPC_EMAC->RxProduceIndex)) { receive_idx = rinc(receive_idx, NUM_RX_FRAG); } unsigned int info = rxstat[receive_idx].Info; @@ -713,7 +713,7 @@ LPC_EMAC->RxConsumeIndex = receive_idx; } - if(receive_idx == LPC_EMAC->RxProduceIndex) { + if((uint32_t)receive_idx == LPC_EMAC->RxProduceIndex) { receive_idx = -1; return 0; } @@ -762,7 +762,7 @@ void *pdst, *psrc; int doff = 0; - if(receive_idx == LPC_EMAC->RxProduceIndex || receive_idx == -1) { + if((uint32_t)receive_idx == LPC_EMAC->RxProduceIndex || receive_idx == -1) { return 0; }
--- a/targets/hal/TARGET_NXP/TARGET_LPC23XX/pinmap.c Fri Sep 13 14:22:58 2013 +0100 +++ b/targets/hal/TARGET_NXP/TARGET_LPC23XX/pinmap.c Mon Sep 16 16:15:04 2013 +0100 @@ -17,7 +17,7 @@ #include "error.h" void pin_function(PinName pin, int function) { - if (pin == (uint32_t)NC) return; + if (pin == (PinName)NC) return; uint32_t pin_number = (uint32_t)pin - (uint32_t)P0_0; int index = pin_number >> 4; @@ -28,7 +28,7 @@ } void pin_mode(PinName pin, PinMode mode) { - if (pin == (uint32_t)NC) { return; } + if (pin == (PinName)NC) { return; } uint32_t pin_number = (uint32_t)pin - (uint32_t)P0_0; int index = pin_number >> 5;
--- a/targets/hal/TARGET_NXP/TARGET_LPC23XX/pwmout_api.c Fri Sep 13 14:22:58 2013 +0100 +++ b/targets/hal/TARGET_NXP/TARGET_LPC23XX/pwmout_api.c Mon Sep 16 16:15:04 2013 +0100 @@ -57,7 +57,7 @@ void pwmout_init(pwmout_t* obj, PinName pin) { // determine the channel PWMName pwm = (PWMName)pinmap_peripheral(pin, PinMap_PWM); - if (pwm == (uint32_t)NC) + if (pwm == (PWMName)NC) error("PwmOut pin mapping failed"); obj->pwm = pwm;