This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于28335汇编的一些疑问

我最近找人反汇编了一个程序,工程中只有两个可操作文件,一个是.cmd文件,一个是.asm文件,这个是从芯片中读取出来.out然后反汇编得到的工程。现在有几个问题不解,想麻烦大神解答下,在问您问题之前先附上.cmd文件的内容

////////////////////////////////////////////////////////////////////////

MEMORY

{

   RAML0        : origin = 0x008000, length = 0x004000                /* on-chip RAM block L0 */

   FLASH_0      : origin = 0x300000, length = 0x002890, fill = 0xFFFF /* on-chip FLASH */

   FLASH_1      : origin = 0x302890, length = 0x03D6F0, fill = 0xFFFF /* on-chip FLASH */

   CSM          : origin = 0x33FF80, length = 0x000080, fill = 0xFFFF /* Part of FLASHA.  Program with all 0x0000 when CSM is in use. */

}

 

SECTIONS

{

   .ram          : LOAD = FLASH_0,

                   RUN  = RAML0,

                   LOAD_START(_RamfuncsLoadStart),

                   LOAD_END(_RamfuncsLoadEnd),

                   RUN_START(_RamfuncsRunStart)

   .rom          : LOAD = FLASH_1

   .csm          : LOAD = CSM

}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////以上为cmd文件内容。

am文件有分了对应了的三大块:.sect ".ram" .sect ".rom" .sect ".csm"。

首先第一个问题1、在.sect ".ram" .sect ".rom"均有汇编代码,如果想要修改某部分的程序是不是只能修改.sect ".rom" 中的程序?我之所以提出这个疑问是因为我的迷惑是sect ".ram" 中的程序是不是 .sect ".rom"拷贝运行的程序

2、第二个问题是关系 密码的问题,我先附上.sect ".csm"内容

;=====================================================================================================

                                                   .sect ".csm"

                                                   .word      0,     0,     0,    0,       0,       0,       0,        0

                                                   .word      0,     0,     0,    0,       0,       0,       0,        0

                                                   .word      0,     0,     0,    0,       0,       0,       0,        0

                                                   .word      0,     0,     0,    0,       0,       0,       0,        0

                                                   .word      0,     0,     0,    0,       0,       0,       0,        0

                                                   .word      0,     0,     0,    0,       0,       0,       0,        0

                                                   .word      0,     0,     0,    0,       0,       0,       0,        0

                                                   .word      0,     0,     0,    0,       0,       0,       0,        0

                                                   .word      0,     0,     0,    0,       0,       0,       0,        0

                                                   .word      0,     0,     0,    0,       0,       0,       0,        0

                                                   .word      0,     0,     0,    0,       0,       0,       0,        0

                                                   .word      0,     0,     0,    0,       0,       0,       0,        0

                                                   .word      0,     0,     0,    0,       0,       0,       0,        0

                                                   .word      0,     0,     0,    0,       0,       0,       0,        0

                                                   .word      0,     0,     0,    0,       0,       0

;=====================================================================================================

 

                                                   .global BEGIN

BEGIN:

                                                   lb         Boot_To_Flash

;=====================================================================================================

                                                   .word      0,     0,     0,    0,       0,       0,       0,        0

 

以上中,密码区的128字节,除了那个BEGIN被用的话,其他都是0,我想问的是:

1、我能不能修改其中的密码区的值不让其全为0 ?

2、还有一个问题是密码存储区的一个字被用作定义BEGIN,被占用,那么这个密码值不是不能确定?

3、我能否把BEGIN 移到其他的两大部分定义?

 

麻烦大神解答下,还有就是TI有没有相关的可帮助我以后修改这些程序的相关文档,手册,书籍等。  多谢了