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

Accessing ARM LPC3180 registers with uvision 3

Hello,

I'm working on a Linux based project utilizing an ARM LPC3180 based board. It seems the uvision IDE does not yet support viewing of registers and peripherals. So I attempted to view/change registers with the memory window, but the data in the view at the register addresses I'm interested in (the UART registers) is definitely not the correct register data. I attempted this after stopping a runing Linux kernel, so the system is initialized and operating, but the memory map doesn't appear to be as expected. Is there something simple I'm overlooking, or is there still some support lacking in uvision? The address area I'm interested in is 0x40018000 which should correspond to the UART2 registers. Any help would be greatly appreciated.

Josh Green

Parents
  • Sorry about the delayed reply. I only now got around to attempting to use uvision to view the registers again. Some more details:

    Nohau LPC3000 Evaluation Board

    www.nohau.com/.../lpc3000_board.html

    We are running Linux 2.6.10 with patches from Philips.

    uVision3 V3.31

    I'm using a simple empty uvision project to use for entering debug mode and loading ELF 'axf' files.
    I've posted this file here:

    resonance.org/.../uvision3180.Uv2

    After entering debug mode, reseting the CPU and running, all goes fine. Note that uvision is only being used to debug CPU with ULINK JTAG device, no code is loaded with it (all is done from Serial and FLASH). After Linux boots from FLASH, when I stop the CPU with uvision and open a memory window with an address of one of the registers. I see data completely different from one I would expect. Entering ASCII mode shows that its portions of ELF files of programs running in the Linux OS. This data often completely changes between stop/start sequences in the debugger. I can see that it is obviously not register values.

    I suspect something is wrong with the memory map, or how uvision is configured, but I'm not sure what. Let me know if you need any additional information.

    Josh Green

    SoftwareFlair, Inc.

Reply
  • Sorry about the delayed reply. I only now got around to attempting to use uvision to view the registers again. Some more details:

    Nohau LPC3000 Evaluation Board

    www.nohau.com/.../lpc3000_board.html

    We are running Linux 2.6.10 with patches from Philips.

    uVision3 V3.31

    I'm using a simple empty uvision project to use for entering debug mode and loading ELF 'axf' files.
    I've posted this file here:

    resonance.org/.../uvision3180.Uv2

    After entering debug mode, reseting the CPU and running, all goes fine. Note that uvision is only being used to debug CPU with ULINK JTAG device, no code is loaded with it (all is done from Serial and FLASH). After Linux boots from FLASH, when I stop the CPU with uvision and open a memory window with an address of one of the registers. I see data completely different from one I would expect. Entering ASCII mode shows that its portions of ELF files of programs running in the Linux OS. This data often completely changes between stop/start sequences in the debugger. I can see that it is obviously not register values.

    I suspect something is wrong with the memory map, or how uvision is configured, but I'm not sure what. Let me know if you need any additional information.

    Josh Green

    SoftwareFlair, Inc.

Children
  • I can only suggest that you try our bootloader and blinky examples for NOHAU's board for LPC3180.

    We at Keil have made a bootloader that copies code from NAND Flash to SDRAM and runs it.

    And the blinky example displays to attached graphic display and blinks 2 LEDs on the board.

    Can you please try our bootloader and blinky example if it works as you expect.

    Best regards, Milorad Cvjetkovic
    KEIL an ARM Company