小编bar*_*e82的帖子

在ELF文件中编辑变量值?

我需要在已编译的ELF文件中更改几个变量。为了清楚地说明这一点,我将使用一个简单的C结构作为示例。

单个源文件被编译并从MyFile.c链接(@ 0x1000)到MyFile.elf:

typedef struct {
    uint32_t SerialNumber;      /* Increments for every time it's programmed */
    uint32_t PartNumber;        /* Always the same */
    char     ProdDateTime[32];  /* "YYYY-MM-DD HH:MM:SS" date/time when programmed */
    uint32_t CalcCrc32;         /* Checksum of the above data */
} MyData_T;

const MyData_T MyData = {
    /* SerialNumber      */ 0x11111111,
    /* PartNumber        */ 0x12345678,
    /* ProdDateTime[32]  */ "2013-11-10 12:49:30",
    /* CalcCrc32         */ 0xC0CAC01A
                        };
Run Code Online (Sandbox Code Playgroud)

现在,我需要一个“控制台工具”(无需编译):

  1. 将新的序列号写入0x1000
  2. 将新字符串写入0x1008
  3. 在0x1028更新校验和。

我还没有找到可以完成第一个(1)任务的工具(objcopy等?)。似乎这应该是一个相当普遍的情况?我现在已经编写了自己的工具,但是希望使用开源工具或类似工具。

任何建议/想法/评论/批评都非常感激:D谢谢!!

c c++ elf objcopy

5
推荐指数
1
解决办法
1998
查看次数

ARM并行指令ASX和SAX的用途?

有人可以解释何时使用并行加/减ARM指令ASX和/或SAX?在什么情况下/算法需要用来调出半字,然后加上AND减去上/下半字?以下是每个的解释:

ASX

  • 交换半字Rm,然后添加顶部半字和减去底部半字.

SAX

  • 交换半字Rm,然后减去前半字和添加下半字.

parallel-processing assembly arm

4
推荐指数
1
解决办法
163
查看次数

标签 统计

arm ×1

assembly ×1

c ×1

c++ ×1

elf ×1

objcopy ×1

parallel-processing ×1