Please see my note book http://mbed.org/users/kenjiArai/notebook/freertos-on-mbed-board-with-mbed-cloud-ide--never-/

This is too old.
Below is another FreeRTOS on mbed.
http://developer.mbed.org/users/rgrover1/code/FreeRTOS/
I don't know it works well or not.
I have not evaluated it.

Revision:
0:d4960fcea8ff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/FreeRTOS/Source/portable/GCC/ARM_CM3/port_asm_mbed.s	Sat Jan 01 11:17:45 2011 +0000
@@ -0,0 +1,606 @@
+;//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+;
+; This is a program for FreeRTOS on LPC1768 mbed IDE
+;
+;    C source file:             port_asm.c
+;    Compiled on:             GCC: (Sourcery G++ Lite 2010q1-188) 4.4.1
+;    Hand modification by:    Kenji Arai / JH1PJL
+;                        http://www.page.sannet.ne.jp/kenjia/index.html
+;
+;    Started on:                October 31st, 2010
+;    updated on:                October 31st, 2010
+;
+;//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+;    .syntax unified
+;    .cpu cortex-m3
+;    .fpu softvfp
+;    .eabi_attribute 20, 1
+;    .eabi_attribute 21, 1
+;    .eabi_attribute 23, 3
+;    .eabi_attribute 24, 1
+;    .eabi_attribute 25, 1
+;    .eabi_attribute 26, 1
+;    .eabi_attribute 30, 6
+;    .eabi_attribute 18, 4
+
+    EXTERN  pxCurrentTCB
+    EXTERN  uxCriticalNesting
+    EXTERN  vTaskSwitchContext
+    EXTERN  vTaskIncrementTick
+    EXTERN  prvCopyDataToQueue
+    EXTERN  xTaskRemoveFromEventList
+    EXTERN  prvCopyDataFromQueue
+    EXTERN  prvIdleTask
+    EXTERN  xTaskGenericCreate
+    EXTERN  xSchedulerRunning
+    EXTERN  xTickCount
+    EXTERN  vConfigureTimerForRunTimeStats  
+    EXTERN  xPortStartScheduler
+    EXTERN  vPortEndScheduler
+    
+    CODE16
+    PRESERVE8
+    AREA    Port, CODE, READONLY
+;//////////////////////////////////////////////////////
+;    .thumb
+    THUMB
+;    .file    "port_asm.c"
+;    .text
+;    .align    2
+    ALIGN    2
+    GLOBAL  Reset_Handler
+    THUMB
+Reset_Handler
+    push    {r7, lr}
+    pop    {r7, pc}
+
+;///////////////////////////////////////////////////////    
+    ALIGN   2    
+;    .global    vPortSVCHandler
+    GLOBAL    vPortSVCHandler
+;    .thumb
+    THUMB
+;    .thumb_func
+;    .type    vPortSVCHandler, %function
+;vPortSVCHandler:
+vPortSVCHandler
+;    @ Naked Function: prologue and epilogue provided by programmer.
+;    @ args = 0, pretend = 0, frame = 0
+;    @ frame_needed = 1, uses_anonymous_args = 0
+;@ 199 "port_asm.c" 1
+    ldr        r3, pxCurrentTCBConst2        
+    ldr        r1, [r3]                    
+    ldr        r0, [r1]                    
+    ldmia    r0!, {r4-r11}                
+    msr        psp, r0                        
+    mov        r0, #0                         
+    msr        basepri, r0                    
+    orr        r14, #0xd                    
+    bx        r14                            
+                                    
+;    .align    2
+    ALIGN    2                        
+;pxCurrentTCBConst2: .word pxCurrentTCB                
+pxCurrentTCBConst2 DCD pxCurrentTCB
+
+;@ 0 "" 2
+;    .thumb
+    THUMB
+;    .size    vPortSVCHandler, .-vPortSVCHandler
+;///////////////////////////////////////////////////////
+;    .align    2
+    ALIGN    2
+;    .global    vPortStartFirstTask
+    GLOBAL    vPortStartFirstTask
+;    .thumb
+    THUMB
+;    .thumb_func
+;    .type    vPortStartFirstTask, %function
+;vPortStartFirstTask:
+vPortStartFirstTask
+;    @ Naked Function: prologue and epilogue provided by programmer.
+;    @ args = 0, pretend = 0, frame = 0
+;    @ frame_needed = 1, uses_anonymous_args = 0
+;@ 218 "port_asm.c" 1
+    ldr        r0, =0xE000ED08     
+    ldr        r0, [r0]             
+    ldr        r0, [r0]             
+    msr        msp, r0            
+    svc        0                    
+
+;@ 0 "" 2
+;    .thumb
+    THUMB
+;    .size    vPortStartFirstTask, .-vPortStartFirstTask
+;///////////////////////////////////////////////////////
+;    .align    2
+    ALIGN    2
+;    .global    vPortEnterCritical
+    GLOBAL    vPortEnterCritical
+;    .thumb
+    THUMB
+;    .thumb_func
+;    .type    vPortEnterCritical, %function
+;vPortEnterCritical:
+vPortEnterCritical
+;    @ args = 0, pretend = 0, frame = 0
+;    @ frame_needed = 1, uses_anonymous_args = 0
+;    @ link register save eliminated.
+    push       {r7}
+    add        r7, sp, #0
+;@ 270 "port_asm.c" 1
+    mov        r0, #40                                
+    msr        basepri, r0                            
+
+;@ 0 "" 2
+;    .thumb
+    THUMB
+    movw    r3, #:lower16:uxCriticalNesting
+    movt        r3, #:upper16:uxCriticalNesting
+    ldr        r3, [r3, #0]
+    add        r2, r3, #1
+    movw    r3, #:lower16:uxCriticalNesting
+    movt        r3, #:upper16:uxCriticalNesting
+    str        r2, [r3, #0]
+    mov        sp, r7
+    pop        {r7}
+    bx        lr
+;    .size    vPortEnterCritical, .-vPortEnterCritical
+;///////////////////////////////////////////////////////
+;    .align    2
+    ALIGN    2
+;    .global    vPortExitCritical
+    GLOBAL    vPortExitCritical
+;    .thumb
+    THUMB
+;    .thumb_func
+;    .type    vPortExitCritical, %function
+;vPortExitCritical:
+vPortExitCritical
+;    @ args = 0, pretend = 0, frame = 0
+;    @ frame_needed = 1, uses_anonymous_args = 0
+;    @ link register save eliminated.
+    push        {r7}
+    add        r7, sp, #0
+    movw    r3, #:lower16:uxCriticalNesting
+    movt        r3, #:upper16:uxCriticalNesting
+    ldr        r3, [r3, #0]
+    add        r2, r3, #-1
+    movw    r3, #:lower16:uxCriticalNesting
+    movt        r3, #:upper16:uxCriticalNesting
+    str        r2, [r3, #0]
+    movw    r3, #:lower16:uxCriticalNesting
+    movt        r3, #:upper16:uxCriticalNesting
+    ldr        r3, [r3, #0]
+    cmp        r3, #0
+;    bne    .L9
+    bne        Jmp0
+;@ 280 "port_asm.c" 1
+    mov        r0, #0                    
+    msr        basepri, r0                
+
+;@ 0 "" 2
+;    .thumb
+    THUMB
+;.L9:
+Jmp0
+    mov        sp, r7
+    pop        {r7}
+    bx        lr
+;    .size    vPortExitCritical, .-vPortExitCritical
+;///////////////////////////////////////////////////////
+;    .align    2
+    ALIGN    2
+;    .global    xPortPendSVHandler
+    GLOBAL    xPortPendSVHandler
+;    .thumb
+    THUMB
+;    .thumb_func
+;    .type    xPortPendSVHandler, %function
+;xPortPendSVHandler:
+xPortPendSVHandler
+;    @ Naked Function: prologue and epilogue provided by programmer.
+;    @ args = 0, pretend = 0, frame = 0
+;    @ frame_needed = 1, uses_anonymous_args = 0
+;@ 289 "port_asm.c" 1
+    mrs        r0, psp                            
+                                        
+    ldr        r3, pxCurrentTCBConst            
+    ldr        r2, [r3]                        
+                                        
+    stmdb    r0!, {r4-r11}                    
+    str        r0, [r2]                        
+                                        
+    stmdb    sp!, {r3, r14}                
+    mov        r0, #40                            
+    msr        basepri, r0
+;   error      " port_asm_mbed.s.s.LPC1768.o(Port) contains invalid call from '~PRES8 (The user did not require code to preserve 8-byte aligment of 8-byte data objects)' function to 'REQ8 (Code was permitted to depend on the 8-byte aligment of 8-byte data items)' function vTaskSwitchContext. (EL6238E)                     
+    bl        vTaskSwitchContext
+                    
+    mov        r0, #0                            
+    msr        basepri, r0                        
+    ldmia    sp!, {r3, r14}                
+                                        
+    ldr        r1, [r3]                        
+    ldr        r0, [r1]                        
+    ldmia    r0!, {r4-r11}                    
+    msr        psp, r0                            
+    bx        r14                                
+                                        
+;    .align    2
+    ALIGN    2                            
+;pxCurrentTCBConst: .word pxCurrentTCB
+pxCurrentTCBConst DCD pxCurrentTCB    
+
+;@ 0 "" 2
+;    .thumb
+    THUMB
+;    .size    xPortPendSVHandler, .-xPortPendSVHandler
+;///////////////////////////////////////////////////////
+;    .align    2
+    ALIGN    2
+;    .global    xPortSysTickHandler
+    GLOBAL    xPortSysTickHandler
+;    .thumb
+    THUMB
+;    .thumb_func
+;    .type    xPortSysTickHandler, %function
+;xPortSysTickHandler:
+xPortSysTickHandler
+;    @ args = 0, pretend = 0, frame = 8
+;    @ frame_needed = 1, uses_anonymous_args = 0
+    push       {r7, lr}
+    sub        sp, sp, #8
+    add        r7, sp, #0
+;    movw       r3, #:lower16:-536810236
+;    movt       r3, #:upper16:-536810236
+    movw       r3, #0xED04
+    movt       r3, #0xE000
+;    movw       r3, #:LDW:(-536810236)
+;    movt       r3, #:HDW:(-536810236)
+;    mov32      r3, -536810236
+;    mov        r2, #268435456
+    str        r2, [r3, #0]
+    mov        r3, #0
+    str        r3, [r7, #4]
+;@ 329 "port_asm.c" 1
+    mov        r0, #40                                
+    msr        basepri, r0                            
+
+;@ 0 "" 2
+;    .thumb
+    THUMB
+    bl    vTaskIncrementTick
+;@ 333 "port_asm.c" 1
+    mov        r0, #0                    
+    msr        basepri, r0                
+
+;@ 0 "" 2
+;    .thumb
+    THUMB
+    add    r7, r7, #8
+    mov    sp, r7
+    pop    {r7, pc}
+;    .size    xPortSysTickHandler, .-xPortSysTickHandler
+;///////////////////////////////////////////////////////
+;    .align    2
+    ALIGN    2
+;    .global    xQueueGenericSendFromISR
+    GLOBAL    xQueueGenericSendFromISR
+;    .thumb
+    THUMB
+;    .thumb_func
+;    .type    xQueueGenericSendFromISR, %function
+;xQueueGenericSendFromISR:
+xQueueGenericSendFromISR
+;    @ args = 0, pretend = 0, frame = 24
+;    @ frame_needed = 1, uses_anonymous_args = 0
+    push    {r7, lr}
+    sub    sp, sp, #24
+    add    r7, sp, #0
+    str    r0, [r7, #12]
+    str    r1, [r7, #8]
+    str    r2, [r7, #4]
+    str    r3, [r7, #0]
+    mov    r3, #0
+    str    r3, [r7, #20]
+;@ 399 "port_asm.c" 1
+    mov r0, #40                                
+    msr basepri, r0                            
+
+;@ 0 "" 2
+;    .thumb
+    THUMB
+    ldr    r3, [r7, #12]
+    ldr    r2, [r3, #56]
+    ldr    r3, [r7, #12]
+    ldr    r3, [r3, #60]
+    cmp    r2, r3
+;    bcs    .L15
+    bcs    Jmp5
+    ldr    r0, [r7, #12]
+    ldr    r1, [r7, #8]
+    ldr    r2, [r7, #0]
+    bl    prvCopyDataToQueue
+    ldr    r3, [r7, #12]
+    ldr    r3, [r3, #72]
+    cmp    r3, #-1
+;    bne    .L16
+    bne    Jmp1
+    ldr    r3, [r7, #12]
+    ldr    r3, [r3, #36]
+    cmp    r3, #0
+;    beq    .L21
+    beq    Jmp2
+    ldr    r3, [r7, #12]
+    add    r3, r3, #36
+    mov    r0, r3
+    bl    xTaskRemoveFromEventList
+    mov    r3, r0
+    cmp    r3, #0
+;    beq    .L22
+    beq    Jmp3
+    ldr    r3, [r7, #4]
+    mov    r2, #1
+    str    r2, [r3, #0]
+;    b    .L18
+    b    Jmp4
+;.L16:
+Jmp1
+    ldr    r3, [r7, #12]
+    ldr    r3, [r3, #72]
+    add    r2, r3, #1
+    ldr    r3, [r7, #12]
+    str    r2, [r3, #72]
+;    b    .L18
+    b    Jmp4
+;.L21:
+Jmp2
+    nop
+;    b    .L18
+    b    Jmp4
+;.L22:
+Jmp3
+    nop
+;.L18:
+Jmp4
+    mov    r3, #1
+    str    r3, [r7, #16]
+;    b    .L19
+    b    Jmp6
+;.L15:
+Jmp5
+    mov    r3, #0
+    str    r3, [r7, #16]
+;.L19:
+Jmp6
+;@ 436 "port_asm.c" 1
+    mov r0, #0                    
+    msr basepri, r0                
+
+;@ 0 "" 2
+;    .thumb
+    THUMB
+    ldr    r3, [r7, #16]
+    mov    r0, r3
+    add    r7, r7, #24
+    mov    sp, r7
+    pop    {r7, pc}
+;    .size    xQueueGenericSendFromISR, .-xQueueGenericSendFromISR
+;///////////////////////////////////////////////////////
+;    .align    2
+    ALIGN    2
+;    .global    xQueueReceiveFromISR
+    GLOBAL    xQueueReceiveFromISR
+;    .thumb
+    THUMB
+;    .thumb_func
+;    .type    xQueueReceiveFromISR, %function
+;xQueueReceiveFromISR:
+xQueueReceiveFromISR
+;    @ args = 0, pretend = 0, frame = 24
+;    @ frame_needed = 1, uses_anonymous_args = 0
+    push    {r7, lr}
+    sub    sp, sp, #24
+    add    r7, sp, #0
+    str    r0, [r7, #12]
+    str    r1, [r7, #8]
+    str    r2, [r7, #4]
+    mov    r3, #0
+    str    r3, [r7, #20]
+;@ 449 "port_asm.c" 1
+    mov r0, #40                                
+    msr basepri, r0                            
+
+;@ 0 "" 2
+;    .thumb
+    THUMB
+    ldr    r3, [r7, #12]
+    ldr    r3, [r3, #56]
+    cmp    r3, #0
+;    beq    .L24
+    beq    Jmp11
+    ldr    r0, [r7, #12]
+    ldr    r1, [r7, #8]
+    bl    prvCopyDataFromQueue
+    ldr    r3, [r7, #12]
+    ldr    r3, [r3, #56]
+    add    r2, r3, #-1
+    ldr    r3, [r7, #12]
+    str    r2, [r3, #56]
+    ldr    r3, [r7, #12]
+    ldr    r3, [r3, #68]
+    cmp    r3, #-1
+;    bne    .L25
+    bne    Jmp7
+    ldr    r3, [r7, #12]
+    ldr    r3, [r3, #16]
+    cmp    r3, #0
+;    beq    .L30
+    beq    Jmp8
+    ldr    r3, [r7, #12]
+    add    r3, r3, #16
+    mov    r0, r3
+    bl    xTaskRemoveFromEventList
+    mov    r3, r0
+    cmp    r3, #0
+;    beq    .L31
+    beq    Jmp9
+    ldr    r3, [r7, #4]
+    mov    r2, #1
+    str    r2, [r3, #0]
+;    b    .L27
+    b    Jmp10
+;.L25:
+Jmp7
+    ldr    r3, [r7, #12]
+    ldr    r3, [r3, #68]
+    add    r2, r3, #1
+    ldr    r3, [r7, #12]
+    str    r2, [r3, #68]
+;    b    .L27
+    b    Jmp10
+;.L30:
+Jmp8
+    nop
+;    b    .L27
+    b    Jmp10
+;.L31:
+Jmp9
+    nop
+;.L27:
+Jmp10
+    mov    r3, #1
+    str    r3, [r7, #16]
+;    b    .L28
+    b    Jmp12
+;.L24:
+Jmp11
+    mov    r3, #0
+    str    r3, [r7, #16]
+;.L28:
+Jmp12
+;@ 489 "port_asm.c" 1
+    mov r0, #0                    
+    msr basepri, r0                
+
+;@ 0 "" 2
+;    .thumb
+    THUMB
+    ldr    r3, [r7, #16]
+    mov    r0, r3
+    add    r7, r7, #24
+    mov    sp, r7
+    pop    {r7, pc}
+;    .size    xQueueReceiveFromISR, .-xQueueReceiveFromISR
+;///////////////////////////////////////////////////////
+;    .section    .rodata
+;    AREA    Text, CODE, READONLY ??????????????????????????????????????????????
+;    .align    2
+    ALIGN    2
+;.LC0:
+Txt0
+;    .ascii    "IDLE\000"
+     DCB       "IDLE\000",0
+;    .text
+;    AREA    Port, CODE, READONLY  ??????????????????????????????????????????????
+;///////////////////////////////////////////////////////
+;    .align    2
+    ALIGN    2
+;    .global    vTaskStartScheduler
+    GLOBAL    vTaskStartScheduler
+;    .thumb
+    THUMB
+;    .thumb_func
+;    .type    vTaskStartScheduler, %function
+;vTaskStartScheduler:
+vTaskStartScheduler
+;    @ args = 0, pretend = 0, frame = 8
+;    @ frame_needed = 1, uses_anonymous_args = 0
+    push    {r7, lr}
+    sub    sp, sp, #24
+    add    r7, sp, #16
+;    movw    r3, #:lower16:.LC0
+;    movt    r3, #:upper16:.LC0
+;    movw    r3, # LDW Txt0
+;    movt    r3, # HDW Txt0
+    movw    r3, #:lower16:Txt0
+    movt    r3, #:upper16:Txt0
+    mov    r2, #0
+    str    r2, [sp, #0]
+    mov    r2, #0
+    str    r2, [sp, #4]
+    mov    r2, #0
+    str    r2, [sp, #8]
+    mov    r2, #0
+    str    r2, [sp, #12]
+    movw    r0, #:lower16:prvIdleTask
+    movt    r0, #:upper16:prvIdleTask
+    mov    r1, r3
+    mov    r2, #64
+    mov    r3, #0
+    bl    xTaskGenericCreate
+    mov    r3, r0
+    str    r3, [r7, #4]
+    ldr    r3, [r7, #4]
+    cmp    r3, #1
+;    bne    .L34
+    bne    Jmp13
+;@ 514 "port_asm.c" 1
+    mov r0, #40                                
+    msr basepri, r0                            
+
+;@ 0 "" 2
+;    .thumb
+    THUMB
+    movw    r3, #:lower16:xSchedulerRunning
+    movt        r3, #:upper16:xSchedulerRunning
+    mov        r2, #1
+    str        r2, [r3, #0]
+    movw    r3, #:lower16:xTickCount
+    movt        r3, #:upper16:xTickCount
+    mov        r2, #0
+    str        r2, [r3, #0]
+    bl        vConfigureTimerForRunTimeStats
+    bl        xPortStartScheduler
+;.L34:
+Jmp13
+    add    r7, r7, #8
+    mov    sp, r7
+    pop    {r7, pc}
+;    .size    vTaskStartScheduler, .-vTaskStartScheduler
+;///////////////////////////////////////////////////////
+;    .align    2
+    ALIGN    2
+;    .global    vTaskEndScheduler
+    GLOBAL    vTaskEndScheduler
+;    .thumb
+    THUMB
+;    .thumb_func
+;    .type    vTaskEndScheduler, %function
+;vTaskEndScheduler:
+vTaskEndScheduler
+;    @ args = 0, pretend = 0, frame = 0
+;    @ frame_needed = 1, uses_anonymous_args = 0
+    push    {r7, lr}
+    add    r7, sp, #0
+;@ 546 "port_asm.c" 1
+    mov r0, #40                                
+    msr basepri, r0                            
+
+;@ 0 "" 2
+;    .thumb
+    THUMB
+    movw    r3, #:lower16:xSchedulerRunning
+    movt    r3, #:upper16:xSchedulerRunning
+    mov    r2, #0
+    str    r2, [r3, #0]
+    bl    vPortEndScheduler
+    pop    {r7, pc}
+;    .size    vTaskEndScheduler, .-vTaskEndScheduler
+;    .ident    "GCC: (Sourcery G++ Lite 2010q1-188) 4.4.1"
+    ALIGN    2
+    nop
+    nop
+    nop
+    END