模吧

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

1614查看 | 11回复

关于arduino的ide进行编译的问题

[复制链接]
发表于 2017-7-19 12:04:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
用arduino编译3.2.1固件的时候显示有255kb,但是实际找到的hex文件却有780kb,什么情况啊?差的也太多了,apm2.8存储就256kb还要去掉bootloader,hex文件为啥会有780kb这么大
发表于 2017-7-19 12:29:32 | 显示全部楼层
ardunio编译的不是ino文件吗?
 楼主| 发表于 2017-7-19 12:52:05 | 显示全部楼层
世界大战 发表于 2017-7-19 12:29
ardunio编译的不是ino文件吗?

ino是工程文件,编译生成并且能上传单片机的是二进制文件.hex是十六进制文件,可以直接上传的
发表于 2017-7-19 14:33:48 | 显示全部楼层
hex文件是以文本形式表述的十六进制文件不是bin纯二进制文件。

hex文件格式每一行开头是地址,十六进制表示,后面是数据,也是十六进制表示,还有校验。

不看其他,但看数据,一个字节的数据用十六进制表示就是00到FF,需要两个ascii字符,实际表现存储到硬盘上要占两个字节。

所以显然hex文件比实际要下载到芯片的数据量大。
 楼主| 发表于 2017-7-19 15:00:28 | 显示全部楼层
jkd_405 发表于 2017-7-19 14:33
hex文件是以文本形式表述的十六进制文件不是bin纯二进制文件。

hex文件格式每一行开头是地址,十六进制表 ...

就是说实际固件大小以编译器的结果为准是吗?
发表于 2017-7-19 15:13:09 | 显示全部楼层
木子三l 发表于 2017-7-19 15:00
就是说实际固件大小以编译器的结果为准是吗?

对,只有以二进制数值存储才能对应上。

该死的字数限制,我只想说一个字而已
 楼主| 发表于 2017-7-19 17:47:54 | 显示全部楼层
jkd_405 发表于 2017-7-19 15:13
对,只有以二进制数值存储才能对应上。

该死的字数限制,我只想说一个字而已 ...

还有个事,arduino编译的时候提示了一大堆警告,但是最后编译成功了。这样编译出来的固件会有问题吗?
发表于 2017-7-19 18:25:55 | 显示全部楼层
木子三l 发表于 2017-7-19 17:47
还有个事,arduino编译的时候提示了一大堆警告,但是最后编译成功了。这样编译出来的固件会有问题吗? ...

这得看具体内容了,一般来说大部分警告可以不管,但有时候你运行不对的原因就藏在警告里。

所以我编程习惯是中间调试不管,最终版本一定要消掉所有警告。
 楼主| 发表于 2017-7-20 07:52:57 | 显示全部楼层
jkd_405 发表于 2017-7-19 18:25
这得看具体内容了,一般来说大部分警告可以不管,但有时候你运行不对的原因就藏在警告里。

所以我编程习 ...

这样啊,我没有改动源码,直接编译的3.2.1,但还是有很多警告,应该可以不管
前辈你一般用什么方式编译源码呢?
发表于 2017-7-20 10:32:45 | 显示全部楼层
木子三l 发表于 2017-7-20 07:52
这样啊,我没有改动源码,直接编译的3.2.1,但还是有很多警告,应该可以不管
前辈你一般用什么方式编译源 ...

看具体项目啊,这个没有啥固定方式
发表于 2017-7-20 22:26:14 | 显示全部楼层
每次编译hex只有几KB的小萌新瑟瑟发抖
发表于 2017-7-21 10:36:42 | 显示全部楼层
不懂帮顶喽
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|关于模吧|APP下载|广告报价|小黑屋|手机版|企业会员|商城入驻|联系我们|模吧 ( 冀公网安备13080502000084号 )

© 2013-2020 Moz8.com 模吧,玩出精彩!