硬汉嵌入式论坛

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

[技术讨论] 单片机下载

[复制链接]

2

主题

3

回帖

9

积分

新手上路

积分
9
发表于 2025-1-16 10:33:53 | 显示全部楼层 |阅读模式
硬汉哥,我想请教一个问题:

通过分散加载文件,我们可以自定义代码,数据的分布位置。但是通过下载是如何实现flash上的程序分布就是我们自定义的代码分布位置。以stm32f103为例,通常程序设置从0x0800 0000开始,通过烧录,也是从flash的0x0800 0000开始烧录程序。如何实现这个过程呢?如果现在程序设置从0x0800 0200开始,通过烧录,也是从flash的0x0800 0200开始烧录吗?还是从flash的0x0800 0000位置开始烧录,只是0x0800 0000~0x0800 01ff区间没有烧录数据,数据从0x0800 0200开始。
硬汉哥,关于烧录位置和设置位置的实现,我不明白他的实现机制,硬汉哥可以帮我解惑一下嘛,谢谢,困扰一段时间了。
回复

使用道具 举报

23

主题

335

回帖

404

积分

高级会员

积分
404
发表于 2025-1-16 10:53:18 | 显示全部楼层
看烧录算法吧,那些扇区需要烧录就会处理这些扇区
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116197
QQ
发表于 2025-1-16 16:08:38 | 显示全部楼层
hex文件的话,带地址信息,下载的时候可以方便下载到指定问题。

而bin文件的话,要指定下载位置。
回复

使用道具 举报

2

主题

69

回帖

75

积分

初级会员

积分
75
发表于 2025-1-16 17:58:25 | 显示全部楼层
写入是按实际地址写入数据的,其他位置取决于目标文件有没有填充数据
不过flash要注意扇区,先擦后写,且擦除区域几乎都大于要写入的区域
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-10 04:46 , Processed in 0.213506 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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