Why my project can't create bin file

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

Why my project can't create bin file

3,802 Views
CaoJason
Contributor I
Hi Guys:
    I creat a new project  and built it.But the codewarrior can't create the 4 files of debug.bin/debug.elf/debug.map/debug.mot in the bin directory,Why does this happen?
Labels (1)
0 Kudos
11 Replies

828 Views
CaoJason
Contributor I
sorry, my board is MPC564EVB,with Codewarrior 8.7 IDE 5.9
0 Kudos

828 Views
CrasyCat
Specialist III
Hello
 
Is CodeWarrior reporting any error messages? Which ones?
 
There might be something wrong in the project.But it is hard to tell without looking at the actual project.
 
CrasyCat
0 Kudos

828 Views
CaoJason
Contributor I
Cat,
       Yes,there is some thing wrong when I make the project.I have attach the error files below.
I change the isr_prologue and isr_epilogue because there is another errors with my program.
And I think maybe the problem cause this is there,so I change it.The former question is solved,
but a new question occurs.
     
 
0 Kudos

828 Views
CrasyCat
Specialist III
Hello
 
I am confused now.
 
What is the remaining (or new) question here?
 
CrasyCat
0 Kudos

828 Views
CaoJason
Contributor I
Hi:
    Cat,I'm also confused.Why do this happen?I have request a technical request on freescale Web,but they don't give me proper solution.
    First,I use the stand context save and restore code(isr_prologue and isr_epilogue) as the picture show(Before change.jpg),and I set a function in main(),the place I put the function is in while(1){  function(); }.but the function can't be went in.So I think maybe the context save is not proper and the ISR can't return where it go in.So I modify the isr_prologue and isr_epilogue to my own(after change.jpg) and use as style of asm{ my own isr_prologue and isr_epilogue}  in my ISR (void __ext_int(void)),the place I set the asm{ my own isr_prologue and isr_epilogue}  is shown as the picture attached below(Asm.jpg).And I egnore the error when making ,my program can go into the function(I set in while{}),but another question occur:my bin file can update when I change the code,so I try to delete the files in bin,but the codewarrior can't bulit the new file.That is question I asked.
   Today I chage back to the system default(default.jpg) ,the bin file can update,but the former question will also occur.
    I think my own isr_prologue and isr_epilogue may be right.Why I put the the code in different the place and the result is different?
   I have another clue in Yahoogroup MPC500.When the system go in a function,it will creat a new stack,and the isr_prologue and isr_epilogue is also a stack,so maybe this two stacks miss up.
   Cat,I'm very urgent about this question.and I spend many times on this.
0 Kudos

828 Views
CrasyCat
Specialist III
Hello
 
I am still confused and I do not understand what you are trying to achieve here.
 
First is_prolog and isr_epilog are invoked for interrupt functions only.
These functions are executed when an interrupt arises. So you are not supposed to call an interrupt function from within your main function.
 
Second when it goes around interrupt functions, there are parameters you can apply to the __declspec(interrupt) specification. These parameters allows you to indicate additional registers that need to be saved/restored on occurrence of an interrupt.
 
Please refer to description of Declaration Specification __declspec(interrupt) in the
{Install}\Help\PDF\PowerPC Build Tools Reference.pdf reference manual for more information,
 
Finally are you using the standard startup code that we deliver or are you using your own startup code (application entry point)?
 
CrasyCat
0 Kudos

828 Views
CaoJason
Contributor I
Hi Cat:
      I have a new issue.When I use the system default isr_prologue and isr_epilogue.When the external interrupt rise,the debug stop at .org 0x500 and don't handle the ISR.I attach the registers values after initializtion and exception taking.
      Cat,can you give some advise?
0 Kudos

828 Views
CrasyCat
Specialist III
Hello
 
You seem to have a basic project configuration issue.
I would recommend you to submit a service request to get one of our support engineer to look at that.

Click here to submit a service request.

Make sure to attach a reproducible project and installed product information to the service request.
To generate the required information:
- Start CodeWarrior
- Open the project
- Select "Help" -> "Pack and Go" and follow instructions on the screen.

Attach the generated .zip file to the SR.
 
Except for that I do not see why you replace the call to __init_hardware by a call to usr_init in function _start.
 
Function __init_hardware is actually calling usr_init in his ROM version.
If you are using the RAM version, and wish the function usr_init to be invoked you can
simply comment out the line 186 and 190 in the file __ppc_eabi_init.c.
 
These are the lines
  #if defined(ROM_VERSION) || defined(CACHE_VERSION)
and
  #endif
CrasyCat
0 Kudos

828 Views
CaoJason
Contributor I
Hi:
   Cat,This basic program is from Freescale FAE,and I find many problems in it and just modify two interrupt.And I ask request many supports on freescale Web,They don't solve my problem,maybe they are tired to support me,they just tell me to try.But I try many times and can't go over it.I'm a student,and don't has many expericences and can't support big on freescale sales.So maybe they.....
   I attach the orignal project and my own project bellow, If you are kind enough to help me,I will appreciate.For some reason the web do not support my attachment,so I change the postfix to .txt,so if you read them,you have change the .txt--->.rar
  I use MPC564EVB and codewarrior 8.7 IDE 5.9.
  Thanks Cat
0 Kudos

828 Views
CrasyCat
Specialist III
Hello
 
Sorry I have been been busy with other stuff in the mean time.
 
I am afraid I cannot help more as I do not ^have the appropriate hardware board available to run the application.
 
You need to contact our support team and seek for assistance.
 
CrasyCat
0 Kudos

828 Views
CaoJason
Contributor I
Hi Cat:
     First,I don't know if the register is enough for my function,where can I know it?Also I just guess,and I don't know the right reason
    Second,my program entry piont is stand __start()({Install}\Freescale\CodeWarrior EPPC 5xx V8.7\PowerPC_EABI_Support\Runtime\Src\__start.c),but I replace the __init_hardware with usr_init() which is defined in MPC564EVB_init.c,I use the user_init() to config the board,I only modify some register in it,such as BR0/OR0,BR1/OR1(to loacate the external RAM and flash for enhance interrupt and relocation) and UMCR,MSR.The reason I do this is follow the sample of tnterrupt_enhance_demo of quick_start 4.0.I want to debug in external ram.My SRAM is 512-Kbyte and external Flash is 2M-Kbyte.
    The code is below:
        // External flash,
        // BR0
            lis  r5, 0xFFD0
            ori  r5, r5, 0x0003
            lis  r4, 0x002fc100@ha
            stw  r5, 0x002fc100@l(r4)
  
       // OR0
            lis  r5, 0xffe0
            ori  r5, r5, 0x0030
            lis  r4, 0x002fc104@ha
           stw  r5, 0x002fc104@l(r4)
     //
     // External SRAM
     //
        // BR1
        lis  r5, 0xFFF0
        ori  r5, r5, 0x0003
        lis  r4, 0x002fc108@ha
        stw  r5, 0x002fc108@l(r4)
  
       // OR1
       lis  r5, 0xff80
      ori  r5, r5, 0x0000
      lis  r4, 0x002fc10c@ha
     stw  r5, 0x002fc10c@l(r4)
 
CaoJason
    
0 Kudos