VME Memory Access Problems - VxWorks

This is a discussion on VME Memory Access Problems - VxWorks ; Hello - I am having some trouble with VME access. I have a motorola 5500 board which I am using to try to access a VME memory card. I have the A32 Master window mapped on the 5500 board (range ...

+ Reply to Thread
Results 1 to 3 of 3

Thread: VME Memory Access Problems

  1. VME Memory Access Problems

    Hello -

    I am having some trouble with VME access. I have a motorola 5500 board
    which I am using to try to access a VME memory card. I have the A32
    Master window mapped on the 5500 board (range 0x50000000-0x60000000),
    and when I call sysBusToLocalAdrs 0xd, 0x50000000, &adrs it returns
    0x50000000, in adrs.

    When I use vxMemProbe to write to a register, and then subsequently
    use vxMemProbe to read it back, everythings works fine. VxMemProbe
    returns zero (good status) for both the write and read, and the
    correct value gets read into the address I pass to the vxMemProbe for
    the read.

    Here;s the code I execute:

    sigproc->wval=malloc(4);rval=malloc(4);m wval,4;m rval,4;vxMemProbe
    0x50000000,1,4,wval;vxMemProbe 0x50000000,0,4,rval;
    wval = 0x1ffff250: value = 536855264 = 0x1fffc2e0
    rval = 0x1ffff1e0: value = 536855232 = 0x1fffc2c0
    1fffc2e0: 74536865-55aa55ff
    1fffc2e4: 6c6c00ee-.
    value = 1 = 0x1
    1fffc2c0: eeeeeeee-0
    1fffc2c4: eeeeeeee-.
    value = 1 = 0x1
    value = 0 = 0x0
    value = 0 = 0x0
    sigproc->d rval, 1, 4
    1fffc2c0: 55aa55ff *U.U.............*
    value = 21 = 0x15

    Still with me? Okay, everything seems fine up to this point. When I
    try to access the memory directly by using the "d" command (or just
    *0x50000000 from the shell), the memory is not read correctly.

    Here's that code:
    sigproc->d 0x50000000, 1, 4
    50000000: 00000004 *................*
    value = 21 = 0x15
    sigproc->*0x50000000
    0x50000000: value = 4 = 0x4
    sigproc->

    I should mention that nothing else on the rack is executing so the
    memory is not being overwritten. If I call the vxMemProbe for write,
    and then wait a minute, and go back and read it with vxMemProbe, it
    still works.

    Here's my MMU mapping:
    Slave Map:
    VSI0: Disabled
    VSI1: 89000000 -> 8a000000 (TO = 77000000, maps to local addr
    00000000): A32
    VSI2: Disabled
    VSI3: Disabled
    VSI4: Disabled
    VSI5: Disabled
    VSI6: Disabled
    VSI7: Disabled
    Regs: 00f02000 -> 00f03000 (TO = 00000000, maps to local regs): A24
    Master Map:
    LSI0: Disabled
    LSI1: 87000000 -> ef000000 (TO = 00000000, maps to VME addr
    87000000): A32
    LSI2: ef000000 -> f0000000 (TO = 10000000, maps to VME addr
    ff000000): A24
    LSI3: f0f00000 -> f0f10000 (TO = 0f0f0000, maps to VME addr
    ffff0000): A16
    LSI4: 60000000 -> 60100000 (TO = 00000000, maps to VME addr
    60000000): A32
    LSI5: 50000000 -> 60000000 (TO = 00000000, maps to VME addr
    50000000): A32
    LSI6: Disabled
    LSI7: Disabled
    value = 0 = 0x0

    Any help would be greatly appreciated.

    Thanks,

    Garrett


  2. Re: VME Memory Access Problems


    "Garrett Hennessey" wrote in message
    news:1171062910.611278.295470@a75g2000cwd.googlegr oups.com...
    > Hello -
    >
    > Still with me? Okay, everything seems fine up to this point. When I
    > try to access the memory directly by using the "d" command (or just
    > *0x50000000 from the shell), the memory is not read correctly.
    >


    beware the 'd' command in accessing vme boards. after making
    the access you've giving it, it will make *byte* accesses to
    print the ascii at that address. Atleast that's the way 'd' used to
    work. If the card doesn't permit byte reads, you're hosed.

    lee


  3. Re: VME Memory Access Problems


    "lee houston" wrote in message
    news:V%8Ah.43843$Gr2.20819@newssvr21.news.prodigy. net...
    >
    >
    > beware the 'd' command in accessing vme boards. after making
    > the access you've giving it, it will make *byte* accesses to
    > print the ascii at that address. Atleast that's the way 'd' used to
    > work. If the card doesn't permit byte reads, you're hosed.
    >


    Oh yeah, use the 'm' command instead. It only makes the access
    you request.



+ Reply to Thread