CDP Forum Forum Index CDP Forum
NOTE: The forum is being replaced by support.icd.no
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

RTOS-32 crashes with CPU exception 0x000e

 
Post new topic   Reply to topic    CDP Forum Forum Index -> RTOS-32 programming
View previous topic :: View next topic  
Author Message
Rune



Joined: 14 Mar 2007
Posts: 25
Location: Norway

PostPosted: Tue 19 Jun 9:57:58 2007    Post subject: RTOS-32 crashes with CPU exception 0x000e Reply with quote

Exclamation Problem: On-Time RTOS-32 version 5.0x (later than 5.02) crashes with a page fault (Exception 0x000e, code 0x004) just after rttboot is invoked and the application.rtb is loaded. The register-dump shows that register cr2 contains 0x40000000. When debugging, no application code is shown, just a hex/assembly dump.

Question Cause: The On-Time RTOS-32 .cfg files have been updated with a new PEHeader field from version 5.02 to 5.03. The (RTOS32) application-boot code crashes if this field is not found.

Idea Solution: Update all your applications CDP.cfg files to contain:
Locate NTSection PEHeader VMem->HighMem // required by VC++ 8.0
and
Locate Copy PEHeader HighMem

so they look something like this:
--- START FILE

Code:
/**************************************************************************/
/*  File: CDP.CFG                                                         */
/**************************************************************************/

Virtual VMem  1G                             // the program goes here
FillRAM VMem                                 // remap unused RAM

#ifdef DEBUG
 Reserve Monitor                             // leave room for the Debug Monitor
 Options -d-
#endif


Locate  PageTable  PageTable  HighMem   132k // enable pageing  (sel added 132k)
Locate  Header     Header     HighMem        // application header

Locate  Stack      Stack      VMem      64k  // 64k stack
Locate  Heap       Heap       VMem           // and the rest for the heap

Locate  NTSection  PEHeader   VMem->HighMem  // required by VC++ 8.0
Locate  NTSection  .textbss   VMem->HighMem  // required by VC++ 7.0 incremental linker
Locate  NTSection  .text      VMem->HighMem  // code section
Locate  NTSection  .rdata     VMem->HighMem  // read only data
Locate  NTSection  .data      VMem->HighMem  // read/write initialized data
Locate  NTSection  .data1     VMem->HighMem  // uninitialized data (Intel compiler)
Locate  NTSection  .bss       VMem->HighMem  // uninitialized data
Locate  NTSection  .tls       VMem->HighMem  // thread local data

Locate  DecompCode  Expand    HighMem        // include decompression stuff
Locate  DecompData  ExBuffer  HighMem

Locate  Copy        PageTable HighMem        // compress everything
Align 4
Locate  Copy        PEHeader  HighMem
Locate  Copy        .text     HighMem
Locate  Copy        .rdata    HighMem
Locate  Copy        .data     HighMem
Locate  Copy        .data1    HighMem
Locate  Copy        .tls      HighMem

// Define a DMA buffer for the RTFiles-32 floppy driver

Locate  Nothing  FloppyDMA  MoreLowMem  18k  32k  ReadWrite

IgnoreMsg "Copy of section PageTable larger than required"

Init=PreMainInitFunction
--- END FILE

Arrow This item has been verified with version 5.05 of On-Time RTOS-32 and CDP version 2.3.0.0 beta 11 compiled on Visual Studio version 7.0.
_________________
Best Regards,
Rune Espeseth
Industrial Control Design AS
Back to top
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    CDP Forum Forum Index -> RTOS-32 programming All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group