studyplacefor 发表于 2011-2-4 15:17:09

项目求思路! 高手请教!

本人,打算做一个上位机软来控制51单片机类的产品。。大多模块都明白了思路!就剩如下的想不通应如何下手:


我的上位程序中会有一按钮    “ 下载 ”   (即把KeilC生成的可执行十六进制文件.Hex文件烧写到单片机内存中去)

这个按钮应怎么样实现呢?有什么API函数可以实现?   还有怎么样与单片机的引导bootloader交互呢,与单片机握手?



各位靓仔!!!小女在此先行谢过 !( 我用的是朋友的号 )

unic 发表于 2011-2-4 15:24:50

女子?

virtualbit 发表于 2011-2-4 15:33:45

就是買個下載器, 接上單片機, 再就自己做個軟件, 由這個軟件去控制下載器的軟件去下載程序

kingkrosson 发表于 2011-2-4 15:51:14

回复【1楼】unic
-----------------------------------------------------------------------

自称小女子的,基本都是男的。 这叫 “色诱术”。火影鸣人的专利。 主要对象就是像你一样,好奇心强的。哈哈。 当然,该回答回答,别管什么男女。

miraclelife 发表于 2011-2-4 16:22:20

和3楼想的一样

xiesx1985 发表于 2011-2-4 16:41:39

如果是STC单片机的话,可以通过检测按键,然后设置单片机ISP功能的寄存器,软件复位,下载更新程序;

ytangy 发表于 2011-2-4 17:52:35

妹妹,如下几步!
1.首先要明确你用的单片机具备iap功能,也就是在运行的过程中可以改写程序存储器!
2.如满足上述条件,请往下看!
3.需要搞明白HEX文件的格式,千万要了解HEX文件不能原封不动的写到单片机里,要作地址解析!
4.在你的单片机程序里写一个函数,这个函数要放到你知道的地址(以便在擦除老程序时不影响这段bootload)
5.在上一条里提到的函数中写串口接收,hex解析,以及iap代码,把串口来的hex写到相应的位置!
6.hex文件应分块接收,再往rom里写!因为你必须先缓冲到ram里,但一般没有那么大的ram,so!
7.如有可能让单片机复位,新程序就跑了!不行就让用户下电再上!
8.上位机的按钮就实现启动串口发送的线程的功能就可以了!

哥哥只能告诉你思路了!其余的google吧!

kila1312911 发表于 2011-2-5 08:26:37

mark

renpeng009 发表于 2011-2-5 09:36:05

哪个型号的单片机?可以自写FLASH的话,应该有官方的解决方案吧?

studyplacefor 发表于 2011-2-6 11:28:35

回复【6楼】ytangy   (^_^)(^_^)
妹妹,如下几步!
1.首先要明确你用的单片机具备iap功能,也就是在运行的过程中可以改写程序存储器! (这一句我明白了啦)
2.如满足上述条件,请往下看!                                                
                                              (用别人的软件可以下载.Hex的单片机,应该能满足条件呀 ?)
3.需要搞明白hex文件的格式,千万要了解hex文件不能原封不动的写到单片机里,要作地址解析!
                                             (这里可能是我学术不精啊,没想到,谢谢你提醒了)
4.在你的单片机程序里写一个函数,这个函数要放到你知道的地址(以便在擦除老程序时不影响这段bootload)
                                              (你说的这个函数应该就是bootloader吧?)
5.在上一条里提到的函数中写串口接收,hex解析,以及iap代码,把串口来的hex写到相应的位置!
                                              (iap:接口应用程序代码??)
6.hex文件应分块接收,再往rom里写!因为你必须先缓冲到ram里,但一般没有那么大的ram,so! (明白啦,(^_^))

7.如有可能让单片机复位,新程序就跑了!不行就让用户下电再上!
8.上位机的按钮就实现启动串口发送的线程的功能就可以了!
哥哥只能告诉你思路了!其余的google吧!   (嗯嗯)
-----------------------------------------------------------------------

那还有个问题!    怎么与单片机握手的呢?(~_~)

ytangy 发表于 2011-2-6 20:20:10

回复【9楼】studyplacefor
-----------------------------------------------------------------------
妹妹,如下:
1、IAP 意思是在应用编程。
2、你讲的用别人的软件可以下载HEX,说明你的单片机具备ISP功能,如果这样,你需要明确你所用的单片机原厂是否提供这个isp编程的相关文档,比如发什么命令给单片机是擦除,什么命令是下发具体的程序数据。当然还有一个关键的地方是知道,你的单片机如何进入这个ISP模式。
3、最好能把你用的单片机的具体型号发上来。
OK

studyplacefor 发表于 2011-2-7 12:19:47

回复【10楼】ytangy
回复【9楼】studyplacefor   
-----------------------------------------------------------------------
妹妹,如下:
1、iap 意思是在应用编程。 (用的语言也是C吗?)
2、你讲的用别人的软件可以下载hex,说明你的单片机具备isp功能,如果这样,你需要明确你所用的单片机原厂是否提供这个isp编程的相关文档,比如发什么命令给单片机是擦除,什么命令是下发具体的程序数据。当然还有一个关键的地方是知道,你的单片机如何进入这个isp模式。
3、最好能把你用的单片机的具体型号发上来。 (     STC12C5408AD\atmega32           )
                                      (    顺便问下:有没有16位的单片机? 有的话,推一款Y)
                     ( 祝哥哥仔,兔飞猛进,兔兔生威 ! (^_^)      )
------------------------------------------------------------------------------------------------------
页: [1]
查看完整版本: 项目求思路! 高手请教!