This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

From CARM to Realview

Hello,
i have a few experience with CARM.
But now i try to make a change to Realview.
BLINKY example runs, but when i add a printf programm stops bevor reaching main.
The programm ends in a endlessloop after having done a SWI 0xAB
Here you can see result of step by step debuging:

0x00081800  B508      PUSH      {R3,LR}
0x00081802  4669      MOV       R1,SP
0x00081804  9000      STR       R0,[SP,#0x0000]
0x00081806  2003      MOV       R0,#0x03
0x00081808  DFAB      SWI       0xAB

   116: SWI_Handler     B       SWI_Handler
0x00080044 EAFFFFFE B 0x00080044

WHY? My programm is "molto semplice" and similar stuff has worked in CARM a hundred times:

int main (void)
{
        PLL_init();
        RS232_init(115200);
        printf("Hello this is my first test of Realview");
        while(1);
}


I'am despaired, who can help?

  • Have you looked at the hello world example for RealView?

    Jon

  • Have you looked at the hello world example for RealView?

    No, i didn't, cause i didn't found one for my aduc7026 Board. The hello-example is for LPC2100

    Some month ago i had some difficulties with CARM and "helloworld". I managed it, the Serial.C file was for some Keil-Board. I had to find a Serial.C file for aduc702x family and add a #pragma thumb

    But with Realview i have no idea. Programm seems to end in a SWI-call before reaching main.

  • Hi please read my recent post #8658 30th Oct on the same subject. This describes the exact same symptoms and the fix is described also.

    My problem is that I upgraded to Realview 3.34 But continued to use the same style in the build file as beforehand, I had no problems until I decided to add a prinf(). I also did not see the new set of examples in RV30.

    From another post #8657 there is a similiar complaint as ours, but this one is probably being handled outside the forum.

    It was pointed out to me that there is a description in the help file. I have now deleted the old examples in Keil/arm. This change caused me hours of time until I found the problem. A short note in the Realview revisions file would have save me this.

    One thing I really miss from CARM is the linker line that used to show in the output window "Program Size: data=xxx const=xxxx code=xxx", Realview does not provide this and I cannot find a way to enable it. Now I have no idea of the code size unless I open a list file.

  • Hi John,
    thanks for your post. I tried to follow your advice.
    Unfortunately i didn't get it.
    See my other post #8681 Getting started with Realview.

    Sorry i'am really confused at this time

  • Dietmar,

    The reasons for your problems are explained fully in your RealView Compilation Tools Compilers and Libraries Guide in the section Tailoring the input/output functions.

    You will then know then that printf calls fputc which by default uses a semi-hosted implementation which will end up in that SWI exception.

    Also, there are RealView ADuC702x examples included with Keil. Check out the examples in \Keil\ARM\RV30\Boards\ADI\ADuC702X.

  • Hi, I know this is a bit late, but if you are still strugling, you need to remove the SWI_Handler definition that you have in your code and import it from the RTL. The RTL uses software interupts.

    IMPORT  SWI_Handler
    ;SWI_Handler    B       SWI_Handler
    

  • "The reasons for your problems are explained fully in your RealView Compilation Tools Compilers and Libraries Guide"

    When will the Realview manuals be made available online - like all the other Keil manuals?

  • We are currently working on this. It should come pretty soon.

    Jon