OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子新作:阿波罗STM32F767&F429&探索者STM32F4开发板&赶快来下载资料哦。

查看: 118|回复: 4

求解空白单片机是怎么通信下载代码的

[复制链接]

  离线 

10

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2017-7-22
在线时间
22 小时
发表于 2017-10-26 08:39:25 | 显示全部楼层 |阅读模式
20金钱
比如c51能看到这方面的底层代码吗?还问我假如我要用到下载口做其他事,会不会冲突,调试时会不会冲突?被问得一脸懵逼

最佳答案

查看完整内容[请看2#楼]

1、现在这些不需要编程器高压下载程序的单片机都是因为单片机内固化了一段ISP程序,专门用于下载用户程序,这部分程序咱们是看不到的。一般的操作过程是:芯片上电复位->ISP监控程序->如果有下载指令,则下载用户程序;没有则跳过->执行用户程序 2、用下载口做其他事,可能会冲突,较新的单片机都提供了解决方案。例如STC系列下载软件中有这么一项: 这样的设置就是为了在实际的项目中,如果你用到了下载口做其他的事情,可 ...
回复

使用道具 举报

  离线 

2

主题

116

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
302
金钱
302
注册时间
2017-10-24
在线时间
21 小时
发表于 2017-10-26 08:39:26 | 显示全部楼层
1、现在这些不需要编程器高压下载程序的单片机都是因为单片机内固化了一段ISP程序,专门用于下载用户程序,这部分程序咱们是看不到的。一般的操作过程是:芯片上电复位->ISP监控程序->如果有下载指令,则下载用户程序;没有则跳过->执行用户程序
2、用下载口做其他事,可能会冲突,较新的单片机都提供了解决方案。例如STC系列下载软件中有这么一项:
1.png

这样的设置就是为了在实际的项目中,如果你用到了下载口做其他的事情,可以提前把P1.0/P1.1其中的一个上拉,确保上电的瞬间保持高电平,这样开机上电的时候能你,内部的ISP程序检测到不符合下载条件就会跳过检测下载指令的过程,因此也就避免了对你连接在下载口上的外设造成干扰。而且在最新的STC15系列单片机的下载端口还可以重映射:

2.png


而对于STM32就更加简单暴力,直接通过设置BOOT0 BOOT1引脚来设定启动方式。芯片上电后,ISP程序会首先检测BOOT0 BOOT1引脚电平,然后决定执行用户程序,或者是下载程序或者是别的什么功能。

3、不会。对于STC单片机,如果上电之后ISP程序没有检测到下载指令,就会自动执行用户程序;如果检测到了下载指令,那么下载完成后,ISP程序也会接着执行用户程序。对于STM32单片机,如果没有设置为下载模式,那么ISP程序会自动执行用户程序;否则执行相关的指令,完成后是否执行用户程序,要看下载时发送的指令(对于串口下载)。例如在FlyMcu中,


3.png

如果选择了“编程后执行”,那么ISP程序在用户程序下载完成后就会执行用户程序;否则回重新再执行自己一次,循环往复。

以上。

十六进制带我飞。
回复

使用道具 举报

  离线 

1

主题

327

帖子

0

精华

高级会员

Rank: 4

积分
823
金钱
823
注册时间
2011-12-1
在线时间
61 小时
发表于 2017-10-26 09:39:10 | 显示全部楼层
程序下载一般单片机里面都有底层的专门下载程序的代码的,如果需要看,可以去找相关的资料,是可以看到的,但是意义不是很大。下载口程序下完之后是可以做为别的用途的,下载时单片机有握手协议知道是否是程序下载还是用户代码运行。但是比如C51的串口下载程序然后串口挂载外设时有可能会影响程序的下载,所以下载程序时候最好将外设断开,下完之后再连接上去,保障下载可靠。
回复

使用道具 举报

  离线 

10

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2017-7-22
在线时间
22 小时
 楼主| 发表于 2017-10-26 10:02:25 | 显示全部楼层
DreamWaterPro 发表于 2017-10-26 08:39
1、现在这些不需要编程器高压下载程序的单片机都是因为单片机内固化了一段ISP程序,专门用于下载用户程序, ...

那调试时下载口是什么样的
回复

使用道具 举报

  离线 

2

主题

116

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
302
金钱
302
注册时间
2017-10-24
在线时间
21 小时
发表于 2017-10-26 12:08:56 | 显示全部楼层
晴天123456 发表于 2017-10-26 10:02
那调试时下载口是什么样的

如果是串口下载的话,在ISP程序执行用户程序之前,都会把相关的寄存器恢复为未配置的默认状态;如果是JTAG或者SWD下载的话,一般是保持开启的状态(否则就没法调试了)。
十六进制带我飞。
回复

使用道具 举报

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

本版积分规则




QQ|联系我们|手机版|官方淘宝店|新浪微博|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2017-11-21 18:14

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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