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

Does AGDI driver still supported in Keil uVersion 5?

There has been fewer discussions about AGDI driver development.

Does  Keil uVersion 5 still support user define AGDI driver in C51 system?

Parents
  • If you can build the example target debug DLL, then you should be able to debug the execution of the DLL using either Visual Studio or by adding functions to log activity to a file or pipe.

    The application note section "The Memory Interface" explains that the disassembly window in uVision is managed by uVision. When the disassembly view needs to be updated (e.g., the user scrolls the view), uVision will call AG_MemAcc() to read the target memory. You can see what the sample driver does for this call in AGDI.CPP -- it always returns 0x00, which decodes to NOP. You could add some more interesting code in your build of the sample driver.

    The callback (pointed to by pCbFunc) lets the driver DLL access uVision functions, for example, to update a progress bar. The callback is set during one of the calls to AG_Init(). That is, uVision will make a series of calls to AG_Init() and one of those calls will provide the address of the callback to store in pCbFunc. Callback usage examples are provided in AGDI.H, near the end of the file.  

    Note: it's possible that the sample driver uses the callback before it is set, which would cause problems. 

    So, if you can do these things, then I'd say uVision 5 supports the AGDI interface:

    • Build the sample DLL
    • Modify your TOOLS.INI so that uVision loads it without failing at startup
    • Launch uVision
    • Select the sample driver with the debug options dialog
    • Move around the disassembly window

    Good luck!

Reply
  • If you can build the example target debug DLL, then you should be able to debug the execution of the DLL using either Visual Studio or by adding functions to log activity to a file or pipe.

    The application note section "The Memory Interface" explains that the disassembly window in uVision is managed by uVision. When the disassembly view needs to be updated (e.g., the user scrolls the view), uVision will call AG_MemAcc() to read the target memory. You can see what the sample driver does for this call in AGDI.CPP -- it always returns 0x00, which decodes to NOP. You could add some more interesting code in your build of the sample driver.

    The callback (pointed to by pCbFunc) lets the driver DLL access uVision functions, for example, to update a progress bar. The callback is set during one of the calls to AG_Init(). That is, uVision will make a series of calls to AG_Init() and one of those calls will provide the address of the callback to store in pCbFunc. Callback usage examples are provided in AGDI.H, near the end of the file.  

    Note: it's possible that the sample driver uses the callback before it is set, which would cause problems. 

    So, if you can do these things, then I'd say uVision 5 supports the AGDI interface:

    • Build the sample DLL
    • Modify your TOOLS.INI so that uVision loads it without failing at startup
    • Launch uVision
    • Select the sample driver with the debug options dialog
    • Move around the disassembly window

    Good luck!

Children
No data