LPC2148 – FreeRTOS Porting with Keil IDE

This article is a Series on FreeRTOS tutorials and carries the discussion on FreeRTOS and its usage. The aim of this series is to provide easy and practical examples that anyone can understand. Today we are going to see FreeRTOS Porting for LPC2148 Using Keil.

You can also read the RTOS Basic concepts and Advanced concepts.


  1. Keil IDE for ARM             –    Download Here
  2. FreeRTOS Exe File           –   Download Here
  3. FreeRTOSConfig.h          –    Download Here
  4. Startup.s                         –    Download Here

FreeRTOS Porting for LPC2148 Using Keil

I assumed that you already installed Keil IDE for ARM and you know how to create a project in that. If you don’t know please See here. Now we will start. 

Initial Steps(Installing Time)

NOTE: These two steps are required for the First time (Installation time). Not required for each time project creating.

1. Extract the FreeRTOS exe to C:\Keil

2. Then paste the FreeRTOSConfig.h file in include folder of source in FreeRTOS

Again I’m reiterating these two steps only for Installation time. No need to copy every time.

Create the project(Each time):

1. Open keil4uvision and create a new project. If you don’t know how to create a project Please go through it Here.

2. click Project and Options for Target ‘Target 1’.

3.  Click C/C++

4. Click on Define and type the context below.


5. Then in Include paths, add paths as like below.

  1. C:\Keil\FreeRTOS_V9.0.0rc2\FreeRTOS\Demo\Common\include
  2. C:\Keil\FreeRTOS_V9.0.0rc2\FreeRTOS\Source\portable\RVDS\ARM7_LPC21xx
  3. C:\Keil\FreeRTOS_V9.0.0rc2\FreeRTOS\Source\include
  4. . ( add this path as the dot in include path which indicates the current directory)

6. Then click Asm then paste below the line in include paths.


FreeRTOS Porting for LPC2148 Using Keil

7. Then add the following files to the project from C:\Keil\FreeRTOS_V9.0.0rc2\FreeRTOS\Source

  1. Task.c
  2. List.c
  3. Queue.c

8. Then add the following files to the project from  C:\keil\FreeRTOS_V9.0.0rc2\FreeRTOS\Source\portable\RVDS\ARM7_LPC21xx

  1. Port.c
  2. portASM.S (this file appears only when we select all files in file type).

FreeRTOS Porting for LPC2148 Using Keil

9.  Then add following file from C:\keil\FreeRTOS\FreeRTOS_V9.0.0rc2\FreeRtos\portable\memmang

  1. heap_2.c

FreeRTOS Porting for LPC2148 Using Keil

10. Final step. Copy the whole content in the downloaded startup.s file and paste it into the startup file which is attached to the project.

The thing is you should do this every time you are creating a new project. when you are doing a lot of projects you will be fed up with this. But what to do? We have to do this.

You can also read the below tutorials.

Linux Device Driver TutorialsC Programming Tutorials
FreeRTOS TutorialsNuttX RTOS Tutorials
RTX RTOS TutorialsInterrupts Basics
I2C Protocol – Part 1 (Basics)I2C Protocol – Part 2 (Advanced Topics)
STM32 TutorialsLPC2148 (ARM7) Tutorials
PIC16F877A Tutorials8051 Tutorials
Unit Testing in C TutorialsESP32-IDF Tutorials
Raspberry Pi TutorialsEmbedded Interview Topics
Reset Sequence in ARM Cortex-M4BLE Basics
VIC and NVIC in ARMSPI – Serial Peripheral Interface Protocol
STM32F7 Bootloader TutorialsRaspberry PI Pico Tutorials
STM32F103 Bootloader TutorialsRT-Thread RTOS Tutorials
Zephyr RTOS Tutorials - STM32Zephyr RTOS Tutorials - ESP32
AUTOSAR TutorialsUDS Protocol Tutorials
Product ReviewsSTM32 MikroC Bootloader Tutorial
VHDL Tutorials
Notify of

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Newest Most Voted
Inline Feedbacks
View all comments
Table of Contents