把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.00SegNumber=9Seg0=AllSeg1=BootloadSeg2=Main CodeSeg3=LogoSeg4=Common DataSeg5=Default UsrDBSeg6=UsrDBSeg7=SysDBSeg8=Key[All]StartAddr=0x00000000SegSize =0x00200000[Bootload] // 引导区StartAddr=0x00000000SegSize =0x00010000[Main Code] // 主程序区StartAddr=0x00010000SegSize =0x00120000[Logo] // 图片logoStartAddr=0x00130000SegSize =0x00008000[Common Data] //共享数据StartAddr=0x00138000SegSize =0x00000800[Default UsrDB] // 默认用户数据StartAddr=0x00138800SegSize =0x00007800[UsrDB] // 用户数据StartAddr=0x00140000SegSize =0x00080000[SysDB] // 系统数据StartAddr=0x001C0000SegSize =0x00020000[Key] // keyStartAddr=0x001E0000SegSize =0x00020000
[解决办法]
GCC 编译链接后生成的不是 bin 文件吗?
[解决办法]
gcc直接编译的是elf文件,含有很多信息,比如调试符号什么的,而且是分成很多个段的。
嵌入式一般用的不需要这么复杂的文件,而是简单的不分段的二进制程序,类似于DOS下的.COM文件。
一般来说具体的开发环境会提供这方面的工具,没有统一的解决方案。有些平台的bin文件有自己的特殊格式。
你得仔细研究一下配套的文档。一般来说GNU工具链提供了*-objcopy这样的工具。比如arm-none-eabi-objcopy这样的。
[解决办法]
[解决办法]
好像有特定的工作编译的把
[解决办法]
你编写好 C 程序, 编译不出错, 连接后的产物就是 *.bin/*.hex 都是二进制文件(.bin只是显式的说
明他是二进制文件, 不同的系统会有不同的意义, 有的是专用软件才能识别的文件(在DAEMON tools里
碰到过), 有的就是和 .hex 差不多的意思)!
不管怎么样, 你的 C 文件都得经过编译器的编译!用什么工具烧写? 相应的单片机厂商都会
提供烧写器的, 有的可以兼容其他种类的单片机, 有的是专用的, 至于设计思路, 这个真不了解,
个人感觉哈, 应该就是把编译连接后的 二进制文件中数据 通过 串口 / 并口 / 以太网口 写入存
储器芯片(Flash, EEPROM, etc)!
学了一学期单片机, 我想应该不会理解错吧? 错了请可劲拍!
[解决办法]
为什么要有数据结构这个东东?
因为要将现实世界或者抽象理论中的各种数据保存在计算机外存(光盘、硬盘、U盘……)或内存(ROM、RAM、SRAM……)里面的一维二进制字节数组中。
然后让CPU这个只会执行预先保存好的加减乘除移位条件转移……等机器指令的家伙按照人的意志去处理这些数据。
推荐使用WinHex软件查看文件或内存中的原始字节内容。
[解决办法]
单片机的开发工具也就那么几个主流的,KEIL IAR GCC
这些开发工具都能将C程序编译成BIN或者HEX文件,然后下载到单片机中运行。直接在开发环境中配置就行。
[解决办法]
要经过编译和连接
记得大学时候咱们班有大婶直接改文件名,把.c扩展名改成.obj,再改成.exe,发现还是不能执行
[解决办法]
没那么繁琐,用gcc编译
不过得有Linux 内核环境。
[解决办法]
UNIX环境
cc
LINUX环境
gcc