我最近找人反汇编了一个程序,工程中只有两个可操作文件,一个是.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有没有相关的可帮助我以后修改这些程序的相关文档,手册,书籍等。 多谢了