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

Using GNU GCC in Keil uVision - why?

This has been a frequent question recently, and the frequently-given answer is:

GNU support in uVision is now available via CodeSourcery. See: http://www.keil.com/appnotes/docs/apnt_199.asp

See:
http://www.keil.com/forum/docs/thread12535.asp
http://www.keil.com/forum/docs/thread12663.asp
http://www.keil.com/forum/docs/thread12720.asp
etc, etc...

My question is: if you've got Codesourcery - which includes a complete toolchain, IDE, debugger, etc - why would you also want uVision?

Parents
  • I was thinking (peripheral) simulator but it's also included, in some form.

    I saw the instruction set simulator but not a peripheral simulator.

    Most embedded applications are difficult to simulate because interrupt and on-chip peripheral simulation are required. Startup code is especially troublesome because of timer, bus, and power control settings that require some kind of simulated feedback.

    Maybe that (limited in the eval version) capability is enough for many developers to get started.

    Jon

Reply
  • I was thinking (peripheral) simulator but it's also included, in some form.

    I saw the instruction set simulator but not a peripheral simulator.

    Most embedded applications are difficult to simulate because interrupt and on-chip peripheral simulation are required. Startup code is especially troublesome because of timer, bus, and power control settings that require some kind of simulated feedback.

    Maybe that (limited in the eval version) capability is enough for many developers to get started.

    Jon

Children
  • Hi,

    As you said above, simulation in Keil eval version has problem with peripheral simulation (startup.s is an example).
    So, when I simulate the code segment of LPC2300.s file below. It can't jumb to Reset Addr. It only run sequentialy to the NOP and get stuck. Is it that problem ?

    Vectors         LDR     PC, Reset_Addr
                    LDR     PC, Undef_Addr
                    LDR     PC, SWI_Addr
                    LDR     PC, PAbt_Addr
                    LDR     PC, DAbt_Addr
                    NOP                            ; Reserved Vector
    ;               LDR     PC, IRQ_Addr
                    LDR     PC, [PC, #-0x0120]     ; Vector from VicVectAddr
                    LDR     PC, FIQ_Addr
    
    Reset_Addr      DCD     Reset_Handler
    Undef_Addr      DCD     Undef_Handler
    SWI_Addr        DCD     SWI_Handler
    PAbt_Addr       DCD     PAbt_Handler
    DAbt_Addr       DCD     DAbt_Handler
                    DCD     0                      ; Reserved Address
    IRQ_Addr        DCD     IRQ_Handler
    FIQ_Addr        DCD     FIQ_Handler
    
    Undef_Handler   B       Undef_Handler
    SWI_Handler     B       SWI_Handler
    PAbt_Handler    B       PAbt_Handler
    DAbt_Handler    B       DAbt_Handler
    IRQ_Handler     B       IRQ_Handler
    FIQ_Handler     B       FIQ_Handler
    

    Cheer