J-flasharm是单独的FlashISP烧写软件,把单独的bin文件或者hex文件烧写到单片机的flash里面去,在开发ARM,ARM,时候,对于已经批量生产的产品,在下生产线之后,需要我们对其控制器烧写程序的时候,厂家一般都只会提供一个bin文件,这时就又要用到j-flasharm。例如Intel的Xscale处理器可以使用Intel公司提供的JFlash工具烧写。对于具有JTAG调试工具软件的处理器,可以使用如下思路:编写一段程序,这段程序能将位于SDRAM/SRAM固定地址中的数据写入Flash中。烧写时,首先,将这段软件下载到SDRAM中。
J-flasharm是单独的FlashISP烧写软件,把单独的bin文件或者hex文件烧写到单片机的flash里面去,在开发ARM,ARM,时候,对于已经批量生产的产品,在下生产线之后,需要我们对其控制器烧写程序的时候,厂家一般都只会提供一个bin文件,这时就又要用到j-flasharm。例如Intel的Xscale处理器可以使用Intel公司提供的JFlash工具烧写。对于具有JTAG调试工具软件的处理器,可以使用如下思路:编写一段程序,这段程序能将位于SDRAM/SRAM固定地址中的数据写入Flash中。烧写时,首先,将这段软件下载到SDRAM中。
单片机读取flash地址
可以考虑外接EEPROM如AT,,,这个事目前使用最广的一种方式,有一部分芯片内带EEPROM,如PIC的单片机大部分都带,目前有部分单片机支持对自带的闪存进行读写,比如AT,,C,者MSP。单片机的程序是烧录在FLASH存储器中的,执行程序时,是直接从FLASH中读出指令送CPU执行的,并不是在RAM上运行的,只是在运行的过程中,需要在RAM中读/写数据。
一般程序不会往这里面存的,而且单片机访问程序时是从ROM中找,也的不到你扩展的这个FLASH。联合体typedefunion{unsignedlongintl;unsignedcharc[;}通过l去读。
除非用编程器读取没加密的单片机,否则只能通过RAM中转。因为要通过串口发送必须经过SBUF寄存器。再说和FLASH打交道的指令只有两条:movca,a dptr和movca,a pc,都要用到RAM。//对flash进行读操作voidFlash_READ(void)//读flash数据{u,i;u,t=,u,code*pread;/*程序存储器空间的指针(Flash),指向待读地址*/pread=,,for(i=,i<t;i )chan_shu[i]=*pread ;}//对flash进行写操作voidFlash_WRITE(void){u。
单片机p,,在flash编程,你看的是ATMEL的AT,,片机的flash编程,就是常说的烧录程序。这款单片机早就淘汰了,就别学它的相关内容。即使在当年,对它烧录程序时,也是用编程器,这些操作是由编程器去完成的,用户写程序时根本不管这些。你要单片机,实物用STC的单片机,不要再买AT的单片机,过时了。楼主是指把FLASH当做EEPROM用,保存数据时的擦写操作吗?理论上是会“不小心”擦掉程序的。一般都是程序正好在取擦除地址时被严重干扰,导致取地址错误,擦错页,但是这个概率太小了。要么是你程序写错了,但这个好排查,找到后改正就是了。不止C,这一家单片机拿FLASH当EEPROM用。
如何读取单片机程序
首先搞清楚芯片的信号,找一个能支持此型号的读片器,可以直接读,但是能不能读出要看芯片是否加密以及加密方式,也有专业公司有读源程序的业务。但是要付费的。不过,能真正解密的单片机并不多,也都是一些早期的产品。另一方面,就算是能读出了,读出来的机器码,即是bin格式的,需要反编译才能读和修改,不过,多数人解密就是为了仿造,根本不想改,也改不了。所以,如果想仿造的,需要硬件完全一样的仿造,读出来的程序也是按原样的用。
如果单片机未加密的话,那么用编程器可以读出来,如果已加密,那么需要解密后才能读出来。如果你想得到的是单片机里别人烧写进去的程序,这是几乎不可能的,你只能根据他的功能自己编写如果你想吧别人写好的hex文件翻译成C语言或者汇编程序,这也几乎是不可能实现的。就和win平台的exe程序一样,一旦封装好了,解开是很困难的。
第二步:在仿真器的计算机端软件中,利用反汇编功能,打开刚才保存的HEX格式文件,如果单片机内的程序在编译时设置了允许注释,那么,您可以很快得到原程序代码(汇编语句),如果没有注释,那只好根据反汇编的出来的语句(汇编代码),去查询指令代码表,人工翻译出来,对一些跳转地址。首先在电脑上用proteus软件打开目标文件。然后用鼠标左键双击,片机图标,如图所示。然后在出现的窗口中,点击下图中的文件夹图标。然后在电脑文件夹中找到编译好的HEX文件导入。keil里编译时,设置输出文件为.HEX文件格式。然后在proteus中打开CPU属性。
有的芯片已经加密,读出来就要专门的解密软件和破解人员(电子城里有许多做这种生意的,给人解密)才行,一般人读不出.没加密的芯片用烧写软件直接就可以读出了,不过不管怎样,读出的都是二进制或十六进制码,(一般看不懂),你想看到源程序的话还行专业人业进行反编译,这也是较难的工程。一般单片机程序都是加密的,需要读出来必须先解密,有专门解密的厂家。读出来之后也是,制的机器码。虽然现在反汇编软件很多。但是把机器码反汇编之后,内容很乱,不容易读懂。如果你想抄袭别人的产品,破解完直接写进去就算了。如果想学习,还是自己查查资料,按照他的功能。
暂无评论内容