把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文件变成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这样的。
------解决方案--------------------
------解决方案--------------------
好像有特定的工作编译的把
------解决方案--------------------
你编写好 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