Quality RTOS & Embedded Software

 Real time embedded FreeRTOS RSS feed 
Quick Start Supported MCUs PDF Books Trace Tools Ecosystem


porting FreeRTOS v7.01 demo to LPCXpresso1769

Posted by skidev on August 1, 2011
Hi - I'm now trying to port the uIP portion of the CodeRed RDB1768 FreeRTOS v7.01 demo to use on the LPCXpresso1769/LPCXpresso Base Board combo. (all the base board (belongs to us...) brings to the party is an RJ-45 socket...)

Not sure about the RDB1768 hardware for which the demo was written - I had assumed (?) that it was written for the v2 with the SMC (LAN8720) PHY chip; turns out it's looking for the old DP83848 instead. Before I plow onward, has anyone ported the uIP PHY stuff to the SMC LAN8720?

Also, I set the clock frequency in the FreeRTOSConfig.h to 120MHz. Think that 's the configured clock speed.



RE: porting FreeRTOS v7.01 demo to LPCXpresso1769

Posted by Bruce Segal on August 2, 2011
Take a look here: http://code.google.com/p/micropendousx/

I belive he's using a LAN8720 with the LPC1768. I'm not sure if the demo code is using UIP or LwIP so YMMV.

RE: porting FreeRTOS v7.01 demo to LPCXpresso1769

Posted by skidev on August 3, 2011
Thanks, Bruce - I'll give it a shot.

RE: porting FreeRTOS v7.01 demo to LPCXpresso1769

Posted by skidev on August 5, 2011
OK - I tried the (now heavily modified) Micropendous port, after having commented out anything not related to the uIP task. The task gets created correctly and is executed by the scheduler, although my writes to the OLED on the LPCXpresso baseboard come very slowly, almost like an old teletype - character by character scrolling across the display.

Then I seem stuck in a loop waiting to receive a packet, but it never passes, although I'm poking away at it with my browser.

I copied the relevant settings to the FreeRTOSConfig.h file as well, although I reset the clock frequency to 120MHz.

Once again, any ideas?



RE: porting FreeRTOS v7.01 demo to LPCXpresso1769

Posted by skidev on August 5, 2011
Oh yeah, the Micropendous 17xx port does use uIP; it was the the 13xx port that used LwIP.

RE: porting FreeRTOS v7.01 demo to LPCXpresso1769

Posted by skidev on August 5, 2011
Also, the "slow" I/O to the OLED is relative to a non-FreeRTOS version (using a continuous loop in which I sample the ADC and serve it via easyweb) which works fine. I perform the display write *before* I start the scheduler, so I suspect something in my FreeRTOSConfig.h file.

Here it is: (I stripped the leading comments)

#define configUSE_PREEMPTION 1
#define configUSE_IDLE_HOOK 0
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 5 )
#define configUSE_TICK_HOOK 0
#define configCPU_CLOCK_HZ ( ( unsigned long ) 120000000 )
#define configTICK_RATE_HZ ( ( portTickType ) 1000 )
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 80 )
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 19 * 1024 ) )
#define configMAX_TASK_NAME_LEN ( 12 )
#define configUSE_TRACE_FACILITY 1
#define configUSE_16_BIT_TICKS 0
#define configIDLE_SHOULD_YIELD 0
#define configUSE_CO_ROUTINES 0
#define configUSE_MUTEXES 1

#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )

#define configUSE_ALTERNATIVE_API 0
#define configQUEUE_REGISTRY_SIZE 10

/* Set the following definitions to 1 to include the API function, or zeroto exclude the API function. */

#define INCLUDE_vTaskPrioritySet 1
#define INCLUDE_uxTaskPriorityGet 1
#define INCLUDE_vTaskDelete 1
#define INCLUDE_vTaskCleanUpResources 0
#define INCLUDE_vTaskSuspend 1
#define INCLUDE_vTaskDelayUntil 1
#define INCLUDE_vTaskDelay 1
#define INCLUDE_uxTaskGetStackHighWaterMark 1

* Ethernet configuration.

/* MAC address configuration. */
#define configMAC_ADDR0 0x00
#define configMAC_ADDR1 0x12
#define configMAC_ADDR2 0x13
#define configMAC_ADDR3 0x10
#define configMAC_ADDR4 0x15
#define configMAC_ADDR5 0x11

/* IP address configuration. */
#define configIP_ADDR0 192
#define configIP_ADDR1 168
#define configIP_ADDR2 13
#define configIP_ADDR3 237

/* Netmask configuration. */
#define configNET_MASK0 255
#define configNET_MASK1 255
#define configNET_MASK2 255
#define configNET_MASK3 0

/* Use the system definition, if there is one */
#define configPRIO_BITS __NVIC_PRIO_BITS
#define configPRIO_BITS 5 /* 32 priority levels */

/* The lowest priority. */
#define configKERNEL_INTERRUPT_PRIORITY ( 31 << (8 - configPRIO_BITS) )
/* Priority 5, or 160 as only the top three bits are implemented. */
#define configMAX_SYSCALL_INTERRUPT_PRIORITY ( 5 << (8 - configPRIO_BITS) )

/* Priorities passed to NVIC_SetPriority() do not require shifting as the
function does the shifting itself. Note these priorities need to be equal to
or lower than configMAX_SYSCALL_INTERRUPT_PRIORITY - therefore the numeric
value needs to be equal to or greater than 5 (on the Cortex-M3 the lower the
numeric value the higher the interrupt priority). */

* Macros required to setup the timer for the run time stats.
extern void vConfigureTimerForRunTimeStats( void );


#endif /* FREERTOS_CONFIG_H */

RE: porting FreeRTOS v7.01 demo to LPCXpresso1769

Posted by skidev on August 8, 2011
OK - running now.

I made a bonehead mistake - address mismatch - and didn't notice that my local machine reverted to a hard manual 169.xx.xx.xx IP address when the WiFi was deactivated. With wireless under DHCP it's in the 192.168.13.xx range. (my board was plugged directly into my machine), which conflicted with my ptototype's 192.168.13.xx address...

. The 8270 code I added earlier worked like a champ. Thanks to those who responded.


[ Back to the top ]    [ About FreeRTOS ]    [ Privacy ]    [ Sitemap ]    [ ]

Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.

Latest News

NXP tweet showing LPC5500 (ARMv8-M Cortex-M33) running FreeRTOS.

Meet Richard Barry and learn about running FreeRTOS on RISC-V at FOSDEM 2019

Version 10.1.1 of the FreeRTOS kernel is available for immediate download. MIT licensed.

View a recording of the "OTA Update Security and Reliability" webinar, presented by TI and AWS.


FreeRTOS and other embedded software careers at AWS.

FreeRTOS Partners

ARM Connected RTOS partner for all ARM microcontroller cores

Espressif ESP32

IAR Partner

Microchip Premier RTOS Partner

RTOS partner of NXP for all NXP ARM microcontrollers


STMicro RTOS partner supporting ARM7, ARM Cortex-M3, ARM Cortex-M4 and ARM Cortex-M0

Texas Instruments MCU Developer Network RTOS partner for ARM and MSP430 microcontrollers

OpenRTOS and SafeRTOS

Xilinx Microblaze and Zynq partner