搜索
bottom↓
回复: 170

发布一个自己写的C8051F编程软件,简单好用,支持Hex/bin写入和读出,集成EC3固件修复

  [复制链接]

出0入0汤圆

发表于 2010-12-2 12:13:23 | 显示全部楼层 |阅读模式
用C8051F的单片机,编程软件始终是个问题
Silabs的软件都是英文版的,而且操作起来不太方便,不太直观
而新华龙电子出的那个中文版的软件,经常把器件识别为C8051F000
或者直接就说已加密,无法识别(到现在我还没搞懂,因为官方说加密后仍然是可以识别的,只要擦除了还是可以用的,不知道用过的高手能不能给个答案)
而且还经常把下载器的固件写死,老是要恢复固件
还有一点就是所有的下载软件都只支持Hex文件,遇到bin文件,就得转换

于是乎,我产生了这个想法,反正要练习VC,就顺便写一个下载软件
针对其他编程软件的问题,我写的这个有以下特点:

1.首先这是个中文版的软件,新华龙那个不再是独一无二的了
2.支持Hex/Bin文件写入和读出,再也不用去转换了
3.支持USB下载线固件恢复,不用去装Silabs IDE,也能有这个恢复工具了
4.完全免费,绿色发布
5.下载接口的类型可以指定,也可以不指定,指定了连接速度更快,不指定的话,也能自己搜索出来


(原文件名:HYE.jpg)


欢迎大家拍砖,并指出其中的缺点,我会不断改进的!

目前的缺点是:
只支持USB下载线,不支持EC2串口下载线.如果串口下载线用的人还很多的话,咱就加上去

下面是下载链接:
点击此处下载 ourdev_601724DKK0MX.rar(文件大小:455K) (原文件名:鸿翼电子C8051F编程器V1.1.rar)

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2010-12-2 12:33:54 | 显示全部楼层
漂亮。。

出0入0汤圆

 楼主| 发表于 2010-12-2 12:43:20 | 显示全部楼层
忘了源代码,呵呵

点击此处下载 ourdev_601732BVKY2M.rar(文件大小:4.00M) (原文件名:C8051F.rar)

另外还发现了Silabs官方提供的软件源代码中的一个错误,呵呵
在查找芯片型号的时候,有型号重复查找了,而漏掉了同系列的其他型号,估计是Ctrl+V以后没有修改,呵呵

出0入0汤圆

发表于 2010-12-2 12:50:36 | 显示全部楼层
mark顶

出0入0汤圆

发表于 2010-12-2 13:04:17 | 显示全部楼层
谢谢楼主 ,现在机器里面装的软件够多的了,能省掉silibs IDE了。

出0入0汤圆

发表于 2010-12-2 13:12:22 | 显示全部楼层
非常感谢。

出0入0汤圆

发表于 2010-12-2 13:16:20 | 显示全部楼层
谢谢分享,正需要!

出0入0汤圆

发表于 2010-12-2 13:18:34 | 显示全部楼层
非常好用,要是写入时有个进度条更好,程序大了时间有点长都不知道是不是死了。

出0入0汤圆

发表于 2010-12-2 13:19:17 | 显示全部楼层
我顶!

出0入0汤圆

发表于 2010-12-2 13:20:42 | 显示全部楼层
请问,如果EC3的编程器烧坏了,能再更换单片机后,用这个回复么?现在虽然能识别出编程器,但是识别MCU出错,330识别成000,930识别成120.固件恢复没用。

出0入0汤圆

发表于 2010-12-2 13:21:33 | 显示全部楼层
正需要,谢谢楼主分享

出0入0汤圆

发表于 2010-12-2 13:28:14 | 显示全部楼层
mark!学习!

出0入0汤圆

发表于 2010-12-2 13:43:11 | 显示全部楼层
mark,不错,好东西

出0入0汤圆

发表于 2010-12-2 13:47:01 | 显示全部楼层
下载试下,以前用英文版的不是很好用,搞的我都是通过keil下程序的.

出0入0汤圆

 楼主| 发表于 2010-12-2 15:12:15 | 显示全部楼层
to fly_817
更换单片机以后不能恢复,因为里面是空的,没有引导代码

识别出错在新华龙那个软件上是很经常的事情,通常都不是硬件问题

出0入0汤圆

 楼主| 发表于 2010-12-2 15:15:29 | 显示全部楼层
to  zhangxun0712

进度条这个问题,我也想过,很想搞个上去,可是Silabs的dll没开放,在他们提供的源代码里面没申明的函数,都不知道,没法用
而下载又是一次性下进去的,非要搞个进度条上去,反而会减慢速度,我也在想值不值得

是把全部数据分段写进去,从而显示进度条,还是直接用代码数量来估计写入时间,估计的话不准确,但是看到进度条在走,是要踏实一些

出0入42汤圆

发表于 2010-12-2 15:20:34 | 显示全部楼层
可以考虑增加 批量编程,计数

出0入0汤圆

发表于 2010-12-2 15:28:39 | 显示全部楼层
回复【15楼】xiaobenyi
-----------------------------------------------------------------------

不好意,之前我没看到楼主公布的源代码,以为通过下载的字节数与文件大小相比就可以得到下载进度。看了一下源码还是不好加,我也打算用时间估算来实现。毕竟程序大了要几十秒,几十秒没动静心里不踏实。呵呵。我把楼主的淘宝连接去掉了、标题也改了没意见吧(个人使用)?

出0入0汤圆

 楼主| 发表于 2010-12-2 15:32:34 | 显示全部楼层
to canback
这点我也想到了,而且是实现了的(不过又删掉了),目的是想在批量编程的时候不用去点那个执行,他就一个接一个的编程,同时统计出数量来

实际测试的结果很不理想,写完一个等待芯片拔掉,然后又等待芯片连接上,看起来很顺利的事情,他的函数返回时间很长,有时候要等好几秒钟.比去点一下花的时间还长.
估计还是Silabs的函数不完全公开的问题,向大家打听一下,谁能搞到那个USBHID.dll,SiUtil.dll的完整版函数说明书,要是有这个的话,估计执行效率会高得多,其他的功能也能灵活实现.

出0入0汤圆

 楼主| 发表于 2010-12-2 15:34:11 | 显示全部楼层
to zhangxun0712

呵呵,没意见,这个本来就是公开代码的
也希望你写好了贴出来让大家学习学习,呵呵

出0入134汤圆

发表于 2010-12-2 17:17:21 | 显示全部楼层
呵呵  好东西

出0入0汤圆

发表于 2010-12-2 17:24:44 | 显示全部楼层
记号

出0入0汤圆

发表于 2010-12-3 00:00:21 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-3 00:35:25 | 显示全部楼层
可以尝试用depends.exe查看一下dll的接口函数,看看有没有发现,或者直接上ida...

出0入0汤圆

发表于 2010-12-3 09:29:46 | 显示全部楼层
mark

出0入0汤圆

 楼主| 发表于 2010-12-3 14:04:05 | 显示全部楼层
知道函数名字不知道参数也一样是没用的
ida的话,就太那个了,呵呵

出0入0汤圆

发表于 2010-12-3 19:32:17 | 显示全部楼层
MARK

出0入0汤圆

发表于 2010-12-4 00:28:21 | 显示全部楼层
这东西太给力了,比原来那个好太多了
我每次下载要切换页下完了换回去再断开连接单片机才工作,累死了

提个小建议,完成一步操作的时候给个提示音会比较好(最好可屏蔽,有人不喜欢),选音量小点不吵人的音为好

出0入0汤圆

 楼主| 发表于 2010-12-5 11:21:53 | 显示全部楼层
to ds444

这个建议不错,呵呵

出0入0汤圆

发表于 2010-12-5 18:37:46 | 显示全部楼层
这个必须要赞一个.

出0入0汤圆

发表于 2010-12-8 19:59:22 | 显示全部楼层
发现BUG
1。打开软件后要先点连接器件再选要刷的固件,否则不认芯片型号
2。不能自动纪录上次刷的固件目录
3。不能自动更新固件

出0入0汤圆

发表于 2010-12-8 21:10:34 | 显示全部楼层
谢了,备用

出0入0汤圆

 楼主| 发表于 2010-12-11 11:28:14 | 显示全部楼层
回复【30楼】ds444
发现bug
1。打开软件后要先点连接器件再选要刷的固件,否则不认芯片型号
2。不能自动纪录上次刷的固件目录
3。不能自动更新固件
-----------------------------------------------------------------------

1。先点连接芯片,这时会从C8051F.info里面搜索芯片型号,加密地址,ROM大小之类的信息,如果不连接,就得不到这些信息
   不过还是可以改进,就是任何一个操作都可以加入这个部分
2。这个是由文件对话框记录的,如果你没有在别的软件里面打开文件对话框的话,应该是会临时记录的,如果要单独记录这个软件的文件目录的话,就要生成记录文件或者是写注_册表,这个相当于是产生垃圾文件或者垃圾注_册信息,有违绿色软件的精神,呵呵
3。自动更新固件是在后台进行的,所以看不到对话框.这个操作是SiUtil的函数里面进行的,想禁止自动更新都不行.

出0入0汤圆

发表于 2010-12-11 22:28:55 | 显示全部楼层
不错,帮顶

出0入0汤圆

发表于 2010-12-12 18:27:24 | 显示全部楼层
记号

出0入0汤圆

发表于 2010-12-12 20:46:23 | 显示全部楼层
这东西好...早就想扔掉新华龙的软件了..贼变态

出0入0汤圆

发表于 2010-12-12 20:53:22 | 显示全部楼层
好东西, 谢谢分享

出0入0汤圆

发表于 2010-12-12 21:07:02 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-12 21:29:34 | 显示全部楼层
这个软件能加个运行和停止就更好了.

出0入0汤圆

发表于 2010-12-12 21:48:43 | 显示全部楼层
如果顺便讲解一下VC++的源程序就更好了

出0入0汤圆

发表于 2010-12-12 22:34:42 | 显示全部楼层
感谢楼主,下载了

出0入0汤圆

发表于 2010-12-12 23:26:59 | 显示全部楼层
记好!!!!

出0入0汤圆

 楼主| 发表于 2010-12-13 08:56:26 | 显示全部楼层
回复【38楼】cnzhy88
这个软件能加个运行和停止就更好了.
-----------------------------------------------------------------------

运行和停止,我想了很久也不知道有什么用,如果要调试,用软件单步都可以,如果只是下载的话,这功能根本没用,下载完了拔掉就OK了
他不会因为你在下载的时候没点运行,以后就不运行的

出0入0汤圆

 楼主| 发表于 2010-12-13 08:57:28 | 显示全部楼层
回复【39楼】fythsg
如果顺便讲解一下vc++的源程序就更好了
-----------------------------------------------------------------------

那个实在是不好意思,我的VC水平那是 Level 0
哪敢讲解啊

出0入0汤圆

发表于 2010-12-13 17:57:45 | 显示全部楼层
很简洁!
去掉了老外的部分功能.

出0入135汤圆

发表于 2010-12-13 20:49:35 | 显示全部楼层
这个要强力顶起!

出0入0汤圆

发表于 2010-12-14 20:08:19 | 显示全部楼层
回复【42楼】xiaobenyi
回复【38楼】cnzhy88  
这个软件能加个运行和停止就更好了.
-----------------------------------------------------------------------
运行和停止,我想了很久也不知道有什么用,如果要调试,用软件单步都可以,如果只是下载的话,这功能根本没用,下载完了拔掉就ok了
他不会因为你在下载的时候没点运行,以后就不运行的
-----------------------------------------------------------------------

运行停止也是在维修或调试的时候用的,这样就知道你板子修好了没,这样就不用在电源上搞来搞去了.直接软件控制,要是用keil的话又要写下程序,麻烦了点..

出0入0汤圆

发表于 2010-12-14 20:19:46 | 显示全部楼层
楼主能吧官方的源代码发上来让我们瞧瞧外国人写的程序哦........

出0入0汤圆

发表于 2010-12-14 21:16:27 | 显示全部楼层
有可能用VB搞吗?楼主想下办法啊!!!

出0入0汤圆

 楼主| 发表于 2010-12-14 22:23:39 | 显示全部楼层
回复【47楼】cnzhy88
楼主能吧官方的源代码发上来让我们瞧瞧外国人写的程序哦........
-----------------------------------------------------------------------

这个到 www.silabs.com 去下最新版的吧

点击此处下载 ourdev_604698GPFUHJ.zip(文件大小:431K) (原文件名:MCUProductionProgrammer.zip)
点击此处下载 ourdev_604699OV9Q1E.rar(文件大小:598K) (原文件名:Windows Console.rar)

出0入0汤圆

 楼主| 发表于 2010-12-14 22:24:29 | 显示全部楼层
回复【48楼】yl0859
有可能用vb搞吗?楼主想下办法啊!!!
-----------------------------------------------------------------------

VC可以,VB当然也可以啊,想什么办法?
不过为啥要用VB来写?

出0入0汤圆

发表于 2010-12-15 03:06:09 | 显示全部楼层
谢谢xiaobenyi 我现在都是用你这个软件来下载程序了,这个软件比英文的好用多了.不用连接檫除再连接下载这样搞了..在WIN7下使用也很正常,在使用中有发现查不到芯片的型号是问题,要把仿真器拔掉重新连接就正常了.还有进度条的问题,前面有人讲了..感觉没进度条用起来没感觉一样,不知道他是死了没..呵呵.这个如果要加个运行要用什么命令啊,麻烦说下这个命令吧,我找人在你的代码那加下吧.十分感谢你搞的这个程序..谢谢....

出0入0汤圆

 楼主| 发表于 2010-12-15 22:52:08 | 显示全部楼层
SetTargetGo();   //运行
SetTargetHalt(); //停止

出0入0汤圆

发表于 2010-12-16 03:04:10 | 显示全部楼层
OK修改好了..谢谢xiaobenyi ....HO..HO..

出0入42汤圆

发表于 2010-12-16 08:47:25 | 显示全部楼层
记号

出0入0汤圆

发表于 2010-12-20 00:25:32 | 显示全部楼层
非常感谢。

出0入0汤圆

发表于 2010-12-20 18:39:08 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-20 23:59:45 | 显示全部楼层
mark

出0入0汤圆

 楼主| 发表于 2011-1-7 21:15:54 | 显示全部楼层

(原文件名:V2.gif)

2.0版出炉,下面是下载地址:

V2.0出炉ourdev_609777RL9ABF.rar(文件大小:520K) (原文件名:鸿翼电子C8051F编程软件V2.0.rar)


主要有以下几个改进的地方:

1.增加了最小化按钮
2.增加了运行/停止按钮
3.增加了进度条,并有百分比显示当前进度,除了连接芯片和擦除,其他都是真实的进度
4.修正了FileDlg修改当前目录后,因为C8051F.info文件找不到而引起的"器件不在支持列表"的错误
5.增加完成后播放提示音的选项,提示音以wav文件方式,可以换自己喜欢的声音
6.写入时改为按page写入,忽略空白页(全0xFF)以提高小程序的写入速度
7.打开文件时只记录文件地址,写入或者校验执行的时候再载入文件,避免每次修改了代码都要重新打开文件
8.增加了空片查询和加密查询的功能,有时候对擦除是否成功不太放心,尤其是加密是否成功,更不放心.加入这个功能后可以放心了
9.改掉了一些依赖操作顺序的bug

出0入0汤圆

发表于 2011-1-7 21:22:48 | 显示全部楼层
MARK

出0入0汤圆

 楼主| 发表于 2011-1-17 10:59:57 | 显示全部楼层
源代码和发布软件 ourdev_611626X9RSRO.rar(文件大小:5.72M) (原文件名:C8051F.rar)

之前的有点小bug,按page写的时候,少了一页

出0入0汤圆

发表于 2011-1-17 11:12:41 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-1-17 11:33:03 | 显示全部楼层
支持楼主。

出0入0汤圆

发表于 2011-1-18 08:39:23 | 显示全部楼层
感觉速度奇慢,是不是什么没设置好啊?

出0入0汤圆

发表于 2011-1-18 08:50:11 | 显示全部楼层
搞手们的心血,不能白下载,一定要先顶!

出0入0汤圆

发表于 2011-1-18 09:36:13 | 显示全部楼层
马克 编程器

出0入0汤圆

发表于 2011-1-18 13:08:49 | 显示全部楼层
mark

出0入0汤圆

 楼主| 发表于 2011-1-21 10:11:40 | 显示全部楼层
回复【64楼】sunnyhook
-----------------------------------------------------------------------

速度奇慢?不会吧,我自己用笔官方的还快一些啊
加了进度条确实比不加进度条的时候要慢一些,不过也不至于“奇慢”,呵呵

出0入0汤圆

发表于 2011-1-22 11:29:32 | 显示全部楼层
比官方那个好在芯片可以连续的下载,速度上呢,的确还是官方的快点。还是挺不错的,我顶一下。

出0入0汤圆

发表于 2011-1-22 14:53:21 | 显示全部楼层
我用的是xhl的U-EC6,目标芯片是C8051F120,代码量30K,确实慢的很厉害,尤其是擦除完后就停顿在“读取……”步骤了,有时候得等几分钟才能完成余下的步骤。

出0入0汤圆

 楼主| 发表于 2011-1-22 15:43:31 | 显示全部楼层
回复【70楼】sunnyhook
-----------------------------------------------------------------------

那是因为软件默认擦除后要全部读出来检查是否为空(FF)
你把擦除后检查芯片为空那个选项去掉,就不会再读出来检查了

比官方的慢点,原因是加了进度条,本来一次性写入的东西,变成了按页写入

出0入0汤圆

发表于 2011-1-23 01:25:30 | 显示全部楼层
楼主真给力

出0入0汤圆

发表于 2011-1-23 10:49:54 | 显示全部楼层
不错

出0入0汤圆

发表于 2011-1-23 11:13:50 | 显示全部楼层
支持呀

出0入0汤圆

发表于 2011-3-4 10:40:19 | 显示全部楼层
强烈支持一下,搂住无私高风亮节

出0入0汤圆

发表于 2011-3-4 15:31:44 | 显示全部楼层
我用的是xhl的U-EC5,目标芯片是C8051F120,代码量30K,确实慢的很厉害,尤其是擦除完后就停顿在“读取……”步骤了,有时候得等几分钟才能完成余下的步骤。

出0入0汤圆

发表于 2011-3-6 12:54:02 | 显示全部楼层

出0入0汤圆

发表于 2011-3-6 14:02:09 | 显示全部楼层
DING

出0入0汤圆

发表于 2011-3-6 16:26:14 | 显示全部楼层
mark

出0入0汤圆

 楼主| 发表于 2011-3-10 11:29:37 | 显示全部楼层
怎么才能把最新版的始终在楼主位呢?
以免有问题的东西被下载去耽误大家时间,呵呵

出0入0汤圆

发表于 2011-3-10 11:57:19 | 显示全部楼层
回复【80楼】xiaobenyi  
怎么才能把最新版的始终在楼主位呢?
以免有问题的东西被下载去耽误大家时间,呵呵
-----------------------------------------------------------------------

通知斑竹~~~~

出0入0汤圆

 楼主| 发表于 2011-3-10 12:01:57 | 显示全部楼层
斑竹~~~~
你系边度啊?

出0入0汤圆

发表于 2011-3-15 16:46:54 | 显示全部楼层
楼主有没有感觉有bug?
  for(DWORD i=0;i<dwCount;i+=0x20)
        {
                strData += ":20";       //line start
                str.Format("%.*X",4,i); //2 bytes start address
                strData += str;
                strData += "00";        //record type
                VerifyCode = 0x20 + (BYTE)(i>>8) + (BYTE)(i);
                for(BYTE j=0;j<0x20;j++)
                {
                        Code=(BYTE)*(DataRead+i+j);
                        str.Format("%.*X",2,Code);
                        strData += str;
                        VerifyCode += Code;
                }

这样是不是没有考虑小于32字节的hex或者最后一段程序小于32字节的情况?

出0入0汤圆

发表于 2011-3-15 17:06:32 | 显示全部楼层
收藏了,好东西,顺便到你的shop逛下!

出0入0汤圆

 楼主| 发表于 2011-3-16 08:56:12 | 显示全部楼层
回复【83楼】embeddev
-----------------------------------------------------------------------

考虑了的,软件默认全部填充0xFF,所以不管你最后的程序是多大,都是这么写的
Keil产生的hex文件经常是东一段西一段,就按源代码来的,而实际下载的时候是按页写的
所以在读入hex文件之前是预先全部填充0xFF的,用到的地址上就填上了code,没用到的保持0xFF
读出的时候也是一样,读出时总是会把所有空间全部读出的,所以不存在不足32字节的情况

出0入30汤圆

发表于 2011-3-16 13:46:52 | 显示全部楼层
顶楼主。好资料。谢谢分享。

出0入0汤圆

发表于 2011-3-16 15:31:15 | 显示全部楼层
马克

出0入0汤圆

发表于 2011-3-16 17:11:22 | 显示全部楼层
太牛X了
见识了

出0入0汤圆

 楼主| 发表于 2011-3-29 13:51:02 | 显示全部楼层
版主上哪去了?呼唤了这么久都没出现?!
再说了,我这个首创的并且完全原创完全开源的软件,怎么也得穿个裤子吧

出0入0汤圆

发表于 2011-3-31 22:57:37 | 显示全部楼层
make

出0入0汤圆

发表于 2011-3-31 23:18:31 | 显示全部楼层
不错的工具

出0入8汤圆

发表于 2011-4-1 00:56:56 | 显示全部楼层
酷子来了 ,不过我说了没有 ,帮你呼叫一下 ,

老莫出来置酷了,呵呵

出0入0汤圆

发表于 2011-4-8 16:23:26 | 显示全部楼层
这个不错,我一直在用的

出0入0汤圆

发表于 2011-4-8 17:05:12 | 显示全部楼层
给力的主,顶你!

出0入0汤圆

发表于 2011-4-13 21:32:18 | 显示全部楼层
高手啊太牛了!用用试试哈

出0入0汤圆

发表于 2011-5-3 23:35:10 | 显示全部楼层
mark,多谢楼主

出0入0汤圆

发表于 2011-5-5 11:10:43 | 显示全部楼层
mark下

出0入0汤圆

发表于 2011-6-5 04:06:52 | 显示全部楼层
围观一下

出0入0汤圆

 楼主| 发表于 2011-6-7 15:14:00 | 显示全部楼层
有没有人知道,为什么用新华龙的软件加密之后,连型号也识别不了?必须先擦除

出0入0汤圆

发表于 2011-6-7 15:30:52 | 显示全部楼层
M
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 08:22

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表