fix ENET interrupt issue; fix the end address of heap issue.

git-svn-id: https://rt-thread.googlecode.com/svn/trunk@738 bbd45198-f89e-11dd-88c7-29a3b14d5316
This commit is contained in:
bernard.xiong 2010-05-27 09:43:49 +00:00
parent 5b91286805
commit a5b48e361e
2 changed files with 12 additions and 3 deletions

View File

@ -29,8 +29,14 @@ void ENET_IRQHandler(void)
{ {
rt_uint32_t status; rt_uint32_t status;
/* enter interrupt */
rt_interrupt_enter();
status = LPC_EMAC->IntStatus & LPC_EMAC->IntEnable; status = LPC_EMAC->IntStatus & LPC_EMAC->IntEnable;
/* Clear the interrupt. */
LPC_EMAC->IntClear = status;
if (status & INT_RX_DONE) if (status & INT_RX_DONE)
{ {
/* Disable EMAC RxDone interrupts. */ /* Disable EMAC RxDone interrupts. */
@ -44,6 +50,9 @@ void ENET_IRQHandler(void)
/* release one slot */ /* release one slot */
rt_sem_release(&sem_slot); rt_sem_release(&sem_slot);
} }
/* leave interrupt */
rt_interrupt_leave();
} }
/* phy write */ /* phy write */

View File

@ -85,12 +85,12 @@ void rtthread_startup(void)
#ifdef RT_USING_HEAP #ifdef RT_USING_HEAP
#ifdef __CC_ARM #ifdef __CC_ARM
rt_system_heap_init((void*)&Image$$RW_IRAM1$$ZI$$Limit, (void*)0x10004000); rt_system_heap_init((void*)&Image$$RW_IRAM1$$ZI$$Limit, (void*)0x10008000);
#elif __ICCARM__ #elif __ICCARM__
rt_system_heap_init(__segment_end("HEAP"), (void*)0x10004000); rt_system_heap_init(__segment_end("HEAP"), (void*)0x10008000);
#else #else
/* init memory system */ /* init memory system */
rt_system_heap_init((void*)&__bss_end, (void*)0x10004000); rt_system_heap_init((void*)&__bss_end, (void*)0x10008000);
#endif #endif
#endif #endif