Time based kernel

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Time based kernel

1,775 Views
roberto_m
Contributor III
Hi. I'm a newbie on programming MCU. I've find on this site an intresting application note: AN 1262. In this AN is explained how to realize a time based kernel. Is there anything similar for HCS08 MCU family (maybe in C)?
Message Edited by roberto.m on 2009-11-05 12:56 PM
Labels (1)
0 Kudos
Reply
4 Replies

482 Views
bigmac
Specialist III

Hello Roberto, and welcome to the forum.

 

Within the "sticky" links at the top of the page for this forum, there are two references to RTOS/kernels.

 

FreeRTOS on HCS08

EBS08 the Simple Basic System for HC(S)08 MCU's 

 

In fact the second link does closely correspond with the time-based kernel of AN1262. As it happens, I am currently working on a project (absolute assembly) for the HCS08SE device, using a simplified, scaled down version of a time-based kernel, with a total of 16 timeslots generated using a TPM channel.  I have attached the preliminary assembly code.  This could easily be adapted to relocatable assembly.

 

From time to time I recall that there have been other simple task schedulers described within this forum.  I suggest that you use the forum search engine to find the other references.

 

Regards,

Mac

 

EBSs08se.zip

Message Edited by t.dowe on 2009-11-10 09:06 AM
0 Kudos
Reply

482 Views
roberto_m
Contributor III

Thank ypu for helping me. Thank you for the file and the links too.
I've alredy started searching on the forum and it is very useful

In the meantime I've try to realize a kernel like an1262, using
the Real Time Counter on my uC (I'm vorking with MC9S08QE64) and interrupts
genrated by it.I need a task -time about 50 microseconds, it is
correct to use RTC or I have to use a TPM module?

I'm facing off with a lot of trouble using interrupt of RTC,
now I'll have a look on HCS08 Peripheral Module
Quick Reference examples, because the CodeWarrior Help lacks on good
explanation on interrupt. I'm also waiting the book of Pereria on HSc08.

Are there any other source of documentation (or code) on Interrupts and their handling?

 

0 Kudos
Reply

482 Views
bigmac
Specialist III

Hello Roberto,

 

Use whichever timer is most suited to your project requirements.  However, for a time-based kernel, a timeslot period of 50 microseconds (say 500 bus cycles) is really too short unless your tasks are extremely simple.  My normal expectation would be a timeslot period in the milliseconds region, so useful work can be done without overflow of the timeslots.

 

If you have operations that must be processed every 50 microseconds, this code should be directly incorporated within the timer interrupt service routine (ISR), and the code would need to be kept very short (the ISR should be completed within significantly less than 500 bus cycles).

 

In this case, you would probably need to use an output compare interrupt associated with a TPM channel.  This is the method that the previously posted sample assembly code uses.

 

Application note AN2616 may also be of interest to you.  Look in the FAQ section for the various methods available for implementing ISRs in C, using CW.

 

Regards,

Mac 

0 Kudos
Reply

482 Views
roberto_m
Contributor III
not even an hint?
0 Kudos
Reply