完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
1.前面的废话 在调试阶段有时会用到程序将bin转.S转换,可以负责任的讲网上的资源什么CSDN、太平洋网站,都是坑。因为曾经也想找个现成的,但是现实是没有!专业做这个的是个欧洲佬,写了一堆代码实现,附件上传了,功力深厚的可以改进下共享下。可以参考下网站http://www.pemicro.com/support/download_processor.cfm?type=5 2.思路 好了废话不多说了,要想完成bin转.S转换,首先要了解这两种格式的内在意思。S-record格式文件是FreescaleCodeWarrior编译器生成的后缀名为.S19的程序文件,是一段直接烧写进MCU的ASCII码,英文全称问Motorolaformat for EEPROM programming。 3.格式讲解 S-record每行最大是78个字节,156个字符 S-recordformat
type(类型):2个字符。用来描述记录的类型 (S0,S1,S2,S3,S5,S7,S8,S9)。 count(计数):2个字符。 用来组成和说明了一个16进制的值,显示了在记录中剩余成对字符的计数。 address(地址):4或6或8个字节。用来组成和说明了一个16进制的值,显示了数据应该装载的地址, 这部分的长度取决于载入地址的字节数。2个字节的地址占用4个字符,3个字节的地址占用6个字符,4个字节的地址占用8个字符。 data(数据):0—64字符。用来组成和说明一个代表了内存载入数据或者描述信息的16进制的值。 checksum(校验和):2个字符。这些字符当被配对并换算成16进制数据的时候形成了一个最低有效字符节,该字符节用来表达作为补充数据,地址和数据库的字符对所代表的(字节的)补码的byte总和。即计数值、地址场和数据场的若干字符以两个字符为一对,将它们相加求和,和的溢出部分不计,只保留最低两位字符NN,checksum=0xFF-0xNN。 S0Record:记录类型是“S0”(0x5330)。地址场没有被用,用零置位(0x0000)。数据场中的信息被划分为以下四个子域: name(名称):20个字符,用来编码单元名称 ver(版本):2个字符,用来编码版本号 rev(修订版本):2个字符,用来编码修订版本号 description(描述):0-36个字符,用来编码文本注释 此行表示程序的开始,不需烧入memory。 S1Record:记录类型是“S1”(0x5331)。地址场由2个字节地址来说明。数据场由可载入的数据组成。 S2Record:记录类型是“S2”(0x5332)。地址场由3个字节地址来说明。数据场由可载入的数据组成。 S3Record:记录类型是“S3”(0x5333)。地址场由4个字节地址来说明。数据场由可载入的数据组成。 S5Record:记录类型是“S5”(0x5335)。地址场由2字节的值说明,包含了先前传输的S1、S2、S3记录的计数。没有数据场。 S7Record:记录类型是“S7”(0x5337)。地址场由4字节的地址说明,包含了开始执行地址。没有数据场。此行表示程序的结束,不需烧入memory。 S8 Record:记录类型是“S8”(0x5338)。地址场由3字节的地址说明,包含了开始执行地址。没有数据场。此行表示程序的结束,不需烧入memory。 S9Record:记录类型是“S9”(0x5339)。地址场由2字节的地址说明,包含了开始执行地址。没有数据场。此行表示程序的结束,不需烧入memory。 根据不同的描述信息,在以上三种不同的结束行中选择一种使用 |
||||
相关推荐
|
||||
以前PIC16的程序,我hex转成汇编过。
|
|
|
|
|
|
4 例子
S19文件首行:S021000036384B50524F47202020313143524541544544204259204541535936384B6D 首行翻译信息:S0 0000 6 8 K P R O G 1 1C R E A T E D B Y E A S Y 6 8 K 色块图例:module name versionnumber revision number checksum checksum的算法: 0x21+0x00+0x00+0x36+0x38+0x4B+0x50+0x52+0x4F+0x47+0x20+0x20+0x20+0x31+0x31+0x43+0x52+0x45+0x41+0x54+0x45+0x44 +0x20+0x42+0x59+0x20+0x45+0x41+0x53+0x59+0x36+0x38+0x4B=0x792 checksum=0xFF-0x92=6D 注意:EASy68K总是用S8record作为结束行。 这边复制的有点多,因为不贴出来,下面实现思路没法讲。 5.实现 简单介绍下我的实现思路,软件:labview。1.首先我们要读取.bin文件,才能对bin文件进行操作。2.进行长度切割,将bin文件按照所需要的长度进行切割。3.checksum计算,算法已在上面公布。4.格式拼接,将片头片尾添上。5另存为.S文件。 6.软件使用 首先安装,没有任何问题,一路走到底。 APP bin文件选择,保存路径选着,保存文件名选择,APP基址和切割长度可选,会显示CRC检验码,供核对,功能选择分为只看校验码和转换为.S文件,要提前选择。 7最后的废话 最后希望大家尊重我的成果,私下交流可以,不要网上流传。曾想过自己留着,想着造福需要的人更好,因为技术无界限,交流才会提高。 |
|
|
|
|
|
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-使用AHT20进行环境监测之AHT20传感器介绍
828 浏览 0 评论
824 浏览 0 评论
861 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
836 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
1292 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11824 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-29 19:15 , Processed in 1.070190 second(s), Total 50, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号