硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4259|回复: 11
收起左侧

[技术分享] 准备开始研究脱机烧录器 ELF文件解析和加载(附代码) 转摘,

[复制链接]

747

主题

1049

回帖

3295

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3295
发表于 2019-12-28 10:53:02 | 显示全部楼层 |阅读模式
回复

使用道具 举报

747

主题

1049

回帖

3295

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3295
 楼主| 发表于 2019-12-28 11:06:07 | 显示全部楼层
回复

使用道具 举报

747

主题

1049

回帖

3295

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3295
 楼主| 发表于 2019-12-28 11:08:04 | 显示全部楼层
回复

使用道具 举报

3

主题

1231

回帖

1240

积分

至尊会员

积分
1240
发表于 2019-12-28 11:12:58 | 显示全部楼层
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107077
QQ
发表于 2019-12-28 12:13:24 | 显示全部楼层
期盼已久的脱机烧录终于要来临
回复

使用道具 举报

5

主题

578

回帖

593

积分

版主

Rank: 7Rank: 7Rank: 7

积分
593
发表于 2019-12-28 12:30:04 | 显示全部楼层
脱机烧录器打算支持elf文件啊,难道不是hex,bin这种么
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107077
QQ
发表于 2019-12-28 12:33:17 | 显示全部楼层
myxiaonia 发表于 2019-12-28 12:30
脱机烧录器打算支持elf文件啊,难道不是hex,bin这种么

脱机烧录规划,已经整到下一个升级版本,初步思路。
QQ图片20191228123317.jpg


回复

使用道具 举报

2

主题

51

回帖

57

积分

初级会员

积分
57
发表于 2019-12-28 15:03:24 | 显示全部楼层
功能强大啊,一个完整的产品
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107077
QQ
发表于 2019-12-29 09:35:40 | 显示全部楼层
myxiaonia 发表于 2019-12-28 12:30
脱机烧录器打算支持elf文件啊,难道不是hex,bin这种么

我也学习了下,终于知道为啥了,因为MDK的那个FLM算法文件就是ELF格式的。
回复

使用道具 举报

5

主题

578

回帖

593

积分

版主

Rank: 7Rank: 7Rank: 7

积分
593
发表于 2019-12-29 16:20:16 | 显示全部楼层
eric2013 发表于 2019-12-29 09:35
我也学习了下,终于知道为啥了,因为MDK的那个FLM算法文件就是ELF格式的。

原来如此,我也豁然开朗了,这个思路确实不错,相当于以后只需要指定某种特定mcu的flm,就可以支持任意mcu,和keil一样的思路

点赞点赞
回复

使用道具 举报

1

主题

109

回帖

112

积分

初级会员

固件開發工程師

积分
112
QQ
发表于 2019-12-30 19:00:08 | 显示全部楼层
以前写过Keil的算法以及IAR的Flash Loader。两个都是ELF文件。Keil的更具技巧一点。
Keil算法是位置无关代码,分成两个加载区:一个加载区是代码;另一个是Flash的描述信息。
Keil根据Flash的描述信息掌握Flash的Sector Size及分布,把代码写到RAM之后,会调用其中的函数Init/UnInit/ProgramPage/EraseSector/EraseChip等。
调用前要配置CPU寄存器,R9作为Static Base保存全局变量的位置;通过R0、R1、R2进行传参;通过LR + Set BP at LR Location防止函数执行完毕跑飞。写入的时候按照Sector大小把Image Buffer写到代码位置的后面。

当然,如果是自己写代码调用算法就不用这么麻烦,就当它是一段“ROM Code“,通过函数指针直接调用就行了。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107077
QQ
发表于 2019-12-31 00:50:21 | 显示全部楼层
----- 发表于 2019-12-30 19:00
以前写过Keil的算法以及IAR的Flash Loader。两个都是ELF文件。Keil的更具技巧一点。
Keil算法是位置无关代 ...

非常感谢。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-17 06:13 , Processed in 0.192856 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表