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

how to partition DS5000 using keil c51

Hi,

Hope someone with experience with DS5000 or equivalent to help in a matter.

How do I partition DS5000's code/data using Keil C51 ?

Parents
  • The DS500 has on-chip memory (RAM) which is non-volatile and backed-up by a battery.

    There is a partition address which specifies the separation between code (starting at address 0) and xdata (starting at the partition address).

    You must first decide where you want the partition address located. When building your project, your code starts at address 0000h and you xdata starts at the partition address. You code cannot extend past the partition address.

    The only thing you need to configure in the Keil tools is the starting address for XDATA. This is a linker directive.

    Then, when you program the device, make sure to set the partition address.

    Jon

Reply
  • The DS500 has on-chip memory (RAM) which is non-volatile and backed-up by a battery.

    There is a partition address which specifies the separation between code (starting at address 0) and xdata (starting at the partition address).

    You must first decide where you want the partition address located. When building your project, your code starts at address 0000h and you xdata starts at the partition address. You code cannot extend past the partition address.

    The only thing you need to configure in the Keil tools is the starting address for XDATA. This is a linker directive.

    Then, when you program the device, make sure to set the partition address.

    Jon

Children
  • I am looking at startup.a51.

    Please advice where to modify and how to incorporate the change to my program ? Briefly i must copy the new startup.a51 to my working directory and keil c51 to add it in? Will keil c51 automatically use this new one, and reassemble accordingly ?

    Thanks

  • Hi,

    I am trying to modify startup.A51 with the following chunk of codes to partition the memory, putting it after "CSEG AT 0" does work to some extent. The compiler complains '*** WARNING L5: CODE SPACE MEMORY OVERLAP". Ignoring this I downloaded to my board, i check that the partition is indeed modified, but my interrupts and interrupts can't work anymore.

    Am I missing something more ?

    What I have cut-and-paste is as follows:

    MOV TA, #0AAh ;Timed
    MOV TA, #55h ;Access
    ORL MCON, #02h ;Set PAA
    MOV MCON, #028h ;Set Partition to 5800 on DS5000
    MOV TA, #0AAh ;Timed
    MOV TA, #55h ;Access
    ANL MCON, #0FDh ;Clear PAA

  • How do you program the DS5000?

    Jon

  • Simply use kit to download, I could use kit to partition, but hope to do it automatically using boot-up...

    Any experiences on partitioning ???