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

monitor ST10

Hi,
I work on st10f168 and i would to load the keil monitor into external ram. But i don't know how does it work !
So, if you have suggestion or docs about configuration, utilisation,......
Because the c:\keil\monitor.. docs are not very expicit.
Thanks
Regards,
Jim

Parents
  • Your monitor must be configured to be loaded with Bootstrap Loader, normally Monitor is loaded at the very end of the RAM.
    Look into the Monitor directory, several subdirectories are present, each of them contains a monitor configured for a particular target.
    You can just duplicate one subdirectory, obviously with another name, this will be YOUR monitor; you can start from the Keil MCB167 monitor, BOOTSTRAP target.
    Then open your Monitor project and modify the CONFIG.INC file to match your hardware configuration.
    Edit BOOTCOPY.BAT to change your Monitor name, give it an unique name, for instance MyMonitor.
    Edit ABSTRACT.TXT to document your Monitor features.
    Choose the BOOSTRAP target and compile it.
    If everything is OK, in the Monitor directory, you will find three files called MyMonitor.BOT, MyMonitor.MON and MyMonitor.TXT.
    Now you are ready to use your new Monitor to debug one of your projects.
    In Debug Window choose Keil Monitor-166 Driver and in the Options Window specify that MyMonitor must be used for debug.
    Close the Bootstrap jumper on your card, reset the system and, when you start debugging your application, your monitor will be loaded and it will behave just like a Monitor in ROM.
    I hope this brief description is enough, let me know if you need more help.
    Bruno

Reply
  • Your monitor must be configured to be loaded with Bootstrap Loader, normally Monitor is loaded at the very end of the RAM.
    Look into the Monitor directory, several subdirectories are present, each of them contains a monitor configured for a particular target.
    You can just duplicate one subdirectory, obviously with another name, this will be YOUR monitor; you can start from the Keil MCB167 monitor, BOOTSTRAP target.
    Then open your Monitor project and modify the CONFIG.INC file to match your hardware configuration.
    Edit BOOTCOPY.BAT to change your Monitor name, give it an unique name, for instance MyMonitor.
    Edit ABSTRACT.TXT to document your Monitor features.
    Choose the BOOSTRAP target and compile it.
    If everything is OK, in the Monitor directory, you will find three files called MyMonitor.BOT, MyMonitor.MON and MyMonitor.TXT.
    Now you are ready to use your new Monitor to debug one of your projects.
    In Debug Window choose Keil Monitor-166 Driver and in the Options Window specify that MyMonitor must be used for debug.
    Close the Bootstrap jumper on your card, reset the system and, when you start debugging your application, your monitor will be loaded and it will behave just like a Monitor in ROM.
    I hope this brief description is enough, let me know if you need more help.
    Bruno

Children
  • Hi bruno,
    thanks for your answer!
    But i have a problem :
    I create and configure my monitor like you say, but when i click on debug button, it begin to load the monitor and stop at 2% with error : monitor error 3 cannot write to adress E7AAAA
    i don't understand why E7AAAA
    because i declare external ram between 0x50000 -> 0x250000 1M*16bits

    I declare in config.inc
    %DEFINE (DATA_START) (100000H)
    %DEFINE (CODE_START) (110000H)

    and i don't know which adress write in vectab : maybe external Ram?

    And last question : Must i declare external ram in config.inc and is there the same in my program ? I think yes but i am not sure

  • Hello Jean Marc,
    sorry for my delay, it was a very busy week....
    this opens a discussion about debug philosophy...
    Start from the Keil MCB167-NET Monitor, and try to carefully understand what Keil does in the Bootstrap target: RAM is enabled and allocated at 0x000000.
    You need RAM to debug your code, your code has to be placed in RAM to be debugged, and your RAM must begin at 0 since your project interrupt vector table is placed at 0!
    (I am obvuously speaking about a scenario in which the ROM monitor is loaded via Bootstrap and is not resident into ROM.)
    Let suppose you have 1MB of RAM: you will locate your RAM from 0x000000 to 0x0FFFFF, your Mon166 occupies 6KB of code and 512B of RAM, it will reside into the upper part of RAM.
    Mon166 RAM from 0x0FEA00 to 0x0FEBFF
    Mon166 CODE from 0x0FEC00 to 0x0FFFFF
    As with other projects to be debugged with Mon166, you will need to locate all your project segments into the RAM area from 0x000000 to 0x0FE9FF.
    Let me know if you need more help, ciao
    Bruno

  • Hi Bruno,
    I have set all parameters like you say, but when i load the monitor there is still the same error :
    stop at 2% : monitor error 3 cannot write to adress E7AAAA

    Do you have an idea why adress E7AAAA ?
    This adress is out of declaration, so i don't understand why it try to write there?

    Thanks
    Regards

  • Hi Jean Marc!
    A friend of mine had the same error at a board of Phytec too.If possible try another board with the same software(You wrote)and same configuration-I think it is a hardware bug.Possibly an address driver on the board like VHCT573A.Please let me know if and how you solved the problem!
    hannes