把C文件变成bin文件解决方案

把C文件变成bin文件
各位大神啊,怎么把C文件变成bin文件?

再做嵌入式的时候,大多数都是C,最后都转换成bin或者hex文件。请问是怎么转的?

我在网上看到了一个C程序,把hex变bin,用java能不能把C变bin?如果能,怎么实现?

以上问题能用工具实现,或者是指出编程思想,我都给分,能附上源代码的90%的分。

------解决方案--------------------
把hex变bin 指的是16进制 转 2进制把 

你的bin文件时 *.bin的意思吗
------解决方案--------------------
楼主 做个嵌入式 还问这样的问题.
所谓 bin 就是 二进制文件,一般是 数据文件,或者 程序的打包。
C 程序要下年编译成 二进制,然后链接成 可以执行文件
然后几个 程序 打包成 bin,刷到 机器里
------解决方案--------------------
下面中九卫星接收机,国芯CPU的 BIN 文件包的数据结构
C/C++ code

[Main]
Ver=1.00
SegNumber=9
Seg0=All
Seg1=Bootload
Seg2=Main Code
Seg3=Logo
Seg4=Common Data
Seg5=Default UsrDB
Seg6=UsrDB
Seg7=SysDB
Seg8=Key
[All]
StartAddr=0x00000000
SegSize   =0x00200000
[Bootload]   // 引导区
StartAddr=0x00000000
SegSize   =0x00010000
[Main Code]  // 主程序区
StartAddr=0x00010000
SegSize   =0x00120000
[Logo]      // 图片logo
StartAddr=0x00130000
SegSize   =0x00008000
[Common Data]  //共享数据
StartAddr=0x00138000
SegSize   =0x00000800
[Default UsrDB] // 默认用户数据
StartAddr=0x00138800
SegSize   =0x00007800
[UsrDB]  // 用户数据
StartAddr=0x00140000
SegSize   =0x00080000
[SysDB]  // 系统数据
StartAddr=0x001C0000
SegSize   =0x00020000
[Key]    // key
StartAddr=0x001E0000
SegSize   =0x00020000

------解决方案--------------------
GCC 编译链接后生成的不是 bin 文件吗?
------解决方案--------------------
gcc直接编译的是elf文件,含有很多信息,比如调试符号什么的,而且是分成很多个段的。
嵌入式一般用的不需要这么复杂的文件,而是简单的不分段的二进制程序,类似于DOS下的.COM文件。
一般来说具体的开发环境会提供这方面的工具,没有统一的解决方案。有些平台的bin文件有自己的特殊格式。
你得仔细研究一下配套的文档。一般来说GNU工具链提供了*-objcopy这样的工具。比如arm-none-eabi-objcopy这样的。
------解决方案--------------------
探讨

gcc直接编译的是elf文件,含有很多信息,比如调试符号什么的,而且是分成很多个段的。
嵌入式一般用的不需要这么复杂的文件,而是简单的不分段的二进制程序,类似于DOS下的.COM文件。
一般来说具体的开发环境会提供这方面的工具,没有统一的解决方案。有些平台的bin文件有自己的特殊格式。
你得仔细研究一下配套的文档。一般来说GNU工具链提供了*-objcopy这样的工具。比如arm-none……

------解决方案--------------------
好像有特定的工作编译的把
------解决方案--------------------
你编写好 C 程序, 编译不出错, 连接后的产物就是 *.bin/*.hex 都是二进制文件(.bin只是显式的说

明他是二进制文件, 不同的系统会有不同的意义, 有的是专用软件才能识别的文件(在DAEMON tools里

碰到过), 有的就是和 .hex 差不多的意思)! 

不管怎么样, 你的 C 文件都得经过编译器的编译!用什么工具烧写? 相应的单片机厂商都会

提供烧写器的, 有的可以兼容其他种类的单片机, 有的是专用的, 至于设计思路, 这个真不了解, 

个人感觉哈, 应该就是把编译连接后的 二进制文件中数据 通过 串口 / 并口 / 以太网口 写入存

储器芯片(Flash, EEPROM, etc)!

学了一学期单片机, 我想应该不会理解错吧? 错了请可劲拍!

探讨

我的意思是,我写了一个C程序,要把C程序打包成*.bin文件或者是*.hex文件,然后烧写到单片机中。除了现有的工具外,还有什么什么方法把C程序变成bin或hex文件?然后用什么工具烧写?烧写工具的设计思路是什么?

------解决方案--------------------
为什么要有数据结构这个东东?
因为要将现实世界或者抽象理论中的各种数据保存在计算机外存(光盘、硬盘、U盘……)或内存(ROM、RAM、SRAM……)里面的一维二进制字节数组中。
然后让CPU这个只会执行预先保存好的加减乘除移位条件转移……等机器指令的家伙按照人的意志去处理这些数据。

推荐使用WinHex软件查看文件或内存中的原始字节内容。

------解决方案--------------------
单片机的开发工具也就那么几个主流的,KEIL IAR GCC
这些开发工具都能将C程序编译成BIN或者HEX文件,然后下载到单片机中运行。直接在开发环境中配置就行。
------解决方案--------------------
要经过编译和连接

记得大学时候咱们班有大婶直接改文件名,把.c扩展名改成.obj,再改成.exe,发现还是不能执行
------解决方案--------------------
没那么繁琐,用gcc编译
不过得有Linux 内核环境。
------解决方案--------------------
UNIX环境
cc