Codewarrior Paging

View: New views
4 Messages — Rating Filter:   Alert me  

Codewarrior Paging

by sgriffi3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hello Again,

I am a computer engineering student at Gonzaga University, and am  
working on a delivery robot with 3 other guys for our senior design  
project. I sent out an email about 2 weeks ago about paging on the  
MC9S12DP512 processor.

We made the decition to scrap AxIDE and start using Codewarrior 5.9.0.  
So far this has been much more helpfull.

The question I have for you all is this: How do I manipulate the PPage  
register and other paging information.

We are using an executive to control the program flow, this program  
when used in normal memory would just store the stack pointers of the  
tasks along with scheduling what task to run next, and loading the new  
stack value. Hopefully we want this executive to control what page we  
are on as well. So Task0 would be on page 20, Task1 would be on page  
21 and so on.

At the moment I am clear on how to get the Tasks in to the pages, but  
I am having problems with keeping track of and storing the PPage  
register.

The executive is acessed by a SWI interrupt, which also might be a  
problem. Is there a way to go from a page to an interrupt, store the  
page info, then jump to a different page?

I apoligize if this is unclear, let me know if I can provide more information.

Thank you,
Scott


Re: Codewarrior Paging

by Rob Milne :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I'm an ICC12 user rather than a CW user so I don't have any directly
useful suggestions, however splitting your stack by page is not
advisable.  It is certainly not portable to another chip family.  
Knowledge of scheduler strategies (ie: interrupt to context switch) is
publicly available.  Check out uexec by Richard Man (creator of ICC12)
and FreeRTOS.  Another good place to look is a JJ Labrosse's book
"MicroC/OS-II" (though the OS isn't free).  Rolling your own OS might be
beneficial for one's understanding of the internals but it isn't time
well spent if there is a deadline.  Better to use something that has
already been proven and concentrate on the app layer.

-rob

sgriffi3@... wrote:

>
> Hello Again,
>
> I am a computer engineering student at Gonzaga University, and am
> working on a delivery robot with 3 other guys for our senior design
> project. I sent out an email about 2 weeks ago about paging on the
> MC9S12DP512 processor.
>
> We made the decition to scrap AxIDE and start using Codewarrior 5.9.0.
> So far this has been much more helpfull.
>
> The question I have for you all is this: How do I manipulate the PPage
> register and other paging information.
>
> We are using an executive to control the program flow, this program
> when used in normal memory would just store the stack pointers of the
> tasks along with scheduling what task to run next, and loading the new
> stack value. Hopefully we want this executive to control what page we
> are on as well. So Task0 would be on page 20, Task1 would be on page
> 21 and so on.
>
> At the moment I am clear on how to get the Tasks in to the pages, but
> I am having problems with keeping track of and storing the PPage
> register.
>
> The executive is acessed by a SWI interrupt, which also might be a
> problem. Is there a way to go from a page to an interrupt, store the
> page info, then jump to a different page?
>
> I apoligize if this is unclear, let me know if I can provide more
> information.
>
> Thank you,
> Scott
>
>

Re: Codewarrior Paging

by Rob Milne :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

...in addition one should always ask whether a RTOS is even necessary.  
Buffered interrupt I/O with a tight non-blocking main loop can be more
efficient and is less difficult to debug.  I've worked on separate POS
terminal OS's that were based on each system and the non-scheduler model
was superior, especially in terms of cost.

-rob

sgriffi3@... wrote:

>
> Hello Again,
>
> I am a computer engineering student at Gonzaga University, and am
> working on a delivery robot with 3 other guys for our senior design
> project. I sent out an email about 2 weeks ago about paging on the
> MC9S12DP512 processor.
>
> We made the decition to scrap AxIDE and start using Codewarrior 5.9.0.
> So far this has been much more helpfull.
>
> The question I have for you all is this: How do I manipulate the PPage
> register and other paging information.
>
> We are using an executive to control the program flow, this program
> when used in normal memory would just store the stack pointers of the
> tasks along with scheduling what task to run next, and loading the new
> stack value. Hopefully we want this executive to control what page we
> are on as well. So Task0 would be on page 20, Task1 would be on page
> 21 and so on.
>
> At the moment I am clear on how to get the Tasks in to the pages, but
> I am having problems with keeping track of and storing the PPage
> register.
>
> The executive is acessed by a SWI interrupt, which also might be a
> problem. Is there a way to go from a page to an interrupt, store the
> page info, then jump to a different page?
>
> I apoligize if this is unclear, let me know if I can provide more
> information.
>
> Thank you,
> Scott
>
>

Re: Codewarrior Paging

by ben_smida_hamdi :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

i suggest just to refer to one of the most efficient strategies which is foreground/background system .a hook task,background task, with just a static cyclic scheduler.