Quality RTOS & Embedded Software

 Real time embedded FreeRTOS RSS feed 
Real time embedded FreeRTOS mailing list 
Quick Start Supported MCUs PDF Books Trace Tools Ecosystem TCP & FAT Training




Loading

Is it possible to run arbitrary user programs

Posted by Robert on January 21, 2010
Hello all,

Is it possible to have freertos running on a target and have some kind of hook on which an user can attach his own program/task?

Basically I want the ability of the RTOS to fire-up any program or task provided on a memory-carrier (stick, SD, upload, want-ever).

Any help appreciated.
Regards, Robert.

RE: Is it possible to run arbitrary user programs

Posted by Dave on January 21, 2010
As it comes everything is statically linked. I'm sure you could write something to do what you want but I'm not aware of any examples.

RE: Is it possible to run arbitrary user programs

Posted by Dima Suslov on November 4, 2010
I have the same question as asked Robert. Has anyone tried to do it, whether in the context of a problem? Is there any working examples?

RE: Is it possible to run arbitrary user programs

Posted by Dave on November 4, 2010
This is not the way FreeRTOS is intended to be used, as I said before normally everything is statically linked, but I'm sure what you want would be possible somehow. I have just seen in the other thread the suggestion of having a jump table to API functions (I think this is how SafeRTOS works when it is fixed in ROM) but that still leaves questions about how you are going to compile the external programs that you want to load in dynamically. Would you compile them as libraries with an entry point that was not called main()? Would you compile them as stand alone applications that do contain a main(). In both cases how would you manage their relocatability, you could not used a fixed linker script.

Another option would be to have a loader module that parsed a binary and fixed up addresses after loading into into the CPU memory space.

How do these things normally work? I think they use a separate loader module but I don't really know.

RE: Is it possible to run arbitrary user programs

Posted by Dima Suslov on November 4, 2010
As for me, i just want to make something like in CircleOS

RE: Is it possible to run arbitrary user programs

Posted by Dave on November 4, 2010
Can you describe what that does and how it works?

RE: Is it possible to run arbitrary user programs

Posted by Dima Suslov on November 4, 2010
Here you can look documentation on CircleOS http://www.stm32circle.com/circleos_doc/index.html
Two my last projects were with FreeRTOS, and i like it to use. In new project on LPC1768
I need to do to support FreeRTOS with LCD + SD + some more functions to work with the hardware of the processor, as well as the end user to be able to compile in a separate draft your application and run it as obvious as a separate task

PS Last year I had experienced the implementation of this approach with STM32+RealView, not well as i think. Now i try to do this with LPC1768 port with GCC

RE: Is it possible to run arbitrary user programs

Posted by Dave on November 4, 2010
I'm not going to spend my time reading documentation to help you with your work. Can you answer my question? If not my input to this thread is ending.

RE: Is it possible to run arbitrary user programs

Posted by Dima Suslov on November 4, 2010
It's hard to say in two word, but in general - there is CircleOS that manages the hardware resources of the device based on STM32, and allows the way to the end user to run his application located in defined FLASH regions. These applications are compiled separately (in the project hooked elf file from CircleOS) into binary files, the only thing - they contain the required functions for initializing and running. Then you can load bin file into one of special flash region, and run it from CircleOS main menu.
PS Pointing out this link to a site with documentation, I was not going to force you to spend your precious time, just showed what is at stake. And the goal is not to obtain a copy of this in freertos, but simply to show an embodiment of the system.


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




Copyright (C) 2004-2010 Richard Barry. Copyright (C) 2010-2016 Real Time Engineers Ltd.
Any and all data, files, source code, html content and documentation included in the FreeRTOSTM distribution or available on this site are the exclusive property of Real Time Engineers Ltd.. See the files license.txt (included in the distribution) and this copyright notice for more information. FreeRTOSTM and FreeRTOS.orgTM are trade marks of Real Time Engineers Ltd.

Latest News:

FreeRTOS V9.0.0 is now available for download.


Free TCP/IP and file system demos for the RTOS


Sponsored Links

⇓ Now With No Code Size Limit! ⇓
⇑ Free Download Without Registering ⇑


FreeRTOS Partners

ARM Connected RTOS partner for all ARM microcontroller cores

Renesas Electronics Gold Alliance RTOS Partner.jpg

Microchip Premier RTOS Partner

RTOS partner of NXP for all NXP ARM microcontrollers

Atmel RTOS partner supporting ARM Cortex-M3 and AVR32 microcontrollers

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

Xilinx Microblaze and Zynq partner

Silicon Labs low power RTOS partner

Altera RTOS partner for Nios II and Cortex-A9 SoC

Freescale Alliance RTOS Member supporting ARM and ColdFire microcontrollers

Infineon ARM Cortex-M microcontrollers

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

Cypress RTOS partner supporting ARM Cortex-M3

Fujitsu RTOS partner supporting ARM Cortex-M3 and FM3

Microsemi (previously Actel) RTOS partner supporting ARM Cortex-M3

Atollic Partner

IAR Partner

Keil ARM Partner

Embedded Artists