Skip to main content
Visitor II
October 26, 2007
Question

Porting memory test utility : target does not start anymore

  • October 26, 2007
  • 2 replies
  • 783 views
Posted on October 26, 2007 at 13:28

Porting memory test utility : target does not start anymore

    This topic has been closed for replies.

    2 replies

    Visitor II
    October 23, 2007
    Posted on October 23, 2007 at 07:02

    Hi,

    We were using Tasking EDE and we moved to Keil µVision3 and I am

    trying to port Memory test utility which can be found

    http://www.tasking.com/support/c166-classic/AN019-12_v8.ZIP

    from tasking to keil.

    I made the code assemble but my target does not start anymore.

    Some explanations :

    A

    _mem_test assembly routine (see attached memtest_keil.a66) is called from startup code (see attached STARTa66) to test RAM memory locations. When complete, this test stores the result code into _error_code and returns to startup normal path.

    Note that _error_code will be later accessed from C (Since _error_code is declared as const in my C file, startup ram clear won't affect it).

    What happens :

    - If my _mem_test call is commented in my STARTa66 file, my target starts as usual without any problem.

    - If I uncomment _mem_test call in my STARTa66 file, my target does not start or seems to reset.

    Here the code I comment/uncomment :

    MOV DPP0, #0

    MOV DPP2, #PAG C166_DGROUP

    CALL _mem_test

    So, in fact, I think I may not configure ST10 as it has to be to make this _mem_test call pass... I am not so familiar with DDP configuration, I have tried to push/pop registers before/after calling this _mem_test routine but did not work...

    I have attached my STARTA66 and memtest_keil.a66 files. For TASKING original files, you will find them

    http://www.tasking.com/support/c166-classic/AN019-12_v8.ZIP

    (same link as in top of this email)

    Any help from an St10 expert will be appreciated...

    Thanks for your time !

    Pierre

    PS : My platform is an ST10276 home based mainboard.

    [ This message was edited by: pierre.roth on 23-10-2007 10:37 ]

    ________________

    Attachments :

    memtest_keil.a66 : https://st--c.eu10.content.force.com/sfc/dist/version/download/?oid=00Db0000000YtG6&ids=0680X000006I0OK&d=%2Fa%2F0X0000000bYM%2FdVlfWU3VqFMGJBblxo6enlaW1A9ID.lSUSo_G1H9nGY&asPdf=false

    START167.A66 : https://st--c.eu10.content.force.com/sfc/dist/version/download/?oid=00Db0000000YtG6&ids=0680X000006I0OF&d=%2Fa%2F0X0000000bYL%2FboTrtLpg38lL3LQmmiJuos_ZwitukPIKJApOHY.gtks&asPdf=false
    Visitor II
    October 26, 2007
    Posted on October 26, 2007 at 13:28

    Hi again,

    I made some corrections on my code :

    - added some push/pop before/after my mem_test call in my STARTa66

    - Saved DDP2 register and configured it (DPP2 = 60) to access _error_code variable that I forced to be located at 0xF0000 (page 60)

    - refreshed my software WDOG regularly in my mem_test routine

    And the result is :

    - It seems to work on Keil IDE simulator (I can reach jump to main routine) without any ''access violation'' warning in the output...

    - It still does not work on my target which does not start.

    From the two attached files (which represent all the stuff before entering C routines : main, etc...),

    if I

    comment the CALL _mem_test instruction, my

    target starts

    and

    if I

    uncomment the CALL _mem_test instruction, my

    target does not start

    I can't understand what happens...

    Thanks a lot for your help !

    Pierre

    [ This message was edited by: pierre.roth on 26-10-2007 17:06 ]

    ________________

    Attachments :

    memtest_keil.a66 : https://st--c.eu10.content.force.com/sfc/dist/version/download/?oid=00Db0000000YtG6&ids=0680X000006I0OA&d=%2Fa%2F0X0000000bYN%2FLXVVrFIQYXJHPmdqEUGaqi1PtCwcJLsxrQGCU_Pq0lA&asPdf=false

    START167.A66 : https://st--c.eu10.content.force.com/sfc/dist/version/download/?oid=00Db0000000YtG6&ids=0680X000006I0O5&d=%2Fa%2F0X0000000bYO%2FO99IIqonQNOVkLE9GVIGKN9GWMj9UyAAhrCUxxHWd6c&asPdf=false