• 大小: 57.86 KB
    文件类型: .rar
    金币: 2
    下载: 0 次
    发布日期: 2024-08-17
  • 语言: 其他
  • 标签: bootload  

资源简介

atmega64bootload,avr单片机自动升级程序,本程序是通过串口发送升级程序代码到单片机,来实现更新升级单片机自身程序.

资源截图

代码片段和文件信息

/**********************************************************************************/
//NOTE :
// 函数使用寄存器返回它的值(从 LSB 到 MSB ):
// R30 - 字符型和无符号字符型
// R30 ,R31 - 整型和无符号整型
// R30 ,R31 ,R22 ,R23 - 长整型和无符号长整型 
// 寄存器 R0 R1 R22 R23 R24 R25 R26 R27 R30 和 R31 可以在汇编子程序中自由使
// 用。如果在中断过程使用这些寄存器,就必须在进入时保存,返回时恢复  
// 编译器使用了其中的 R0 R1 R22 R23 R24 R25
// R26 R27 R28 R29 R30 和 R31。 R2 到 R15 中的一些寄存器可能会用来存放全局位变
// 量。剩下的寄存器会分配给全局字符型变量和全局整型变量。 R16 到 R21 分配给局部字符型变量
// 和局部整型变量  
//  auto : zzz
/**********************************************************************************/
#asm
.EQU SPMCR = 0x57
#endasm
#pragma warn- 
//Flash write or erasure 
//write :funtion = 0x05
//erasure: funtion = 0x03
void WritePage (unsigned int adrunsigned char funtion)

#asm 
; PUSH R18
write_page :
LDS R27SPMCR
SBRC R270   
RJMP write_page  ;judge state of the current block 
LDD R31Y+2
LDD R30Y+1 ;designation address of  current block
LD R27Y
STS SPMCRR27 ;argument 2 decides function
SPM ;perform appointed funtion
; POP R18
#endasm 
}

//fill the  temporary  buffer
void FillTempBuffer (unsigned int adrunsigned int Content)
{
#asm
; PUSH R18 
filltemp :
LDS R27SPMCR
SBRC R270   
RJMP filltemp  ;judge state of the current block 
LDD R31Y+3
LDD R30Y+2 ;designation address of current block(R30 = ZLR31 = ZH)
LDD R1 Y+1
LD R0 Y ;fill-in data
LDI R270x01
STS SPMCRR27 ;enable the memorizer   
SPM 
; POP R18
#endasm
}

//read data form memorymaybe it is datalock bits or fuse bits
//cmd = 0 read dataothers express that read lock bits or fuse bitsas 0x09
unsigned int ReadProgramMemory (unsigned int adrunsigned char cmd)
{
#asm
; PUSH R17
; PUSH R18
; PUSH R0 
LDD R31Y+2
LDD R30Y+1 ;designation address of current block
LD R27Y
SBRS R270 ;read lockbits or fuse bits?(second argument is 0x09)
STS SPMCRR27
LPM
MOV R26R0
INC R30
LPM
MOV R27R0
MOV R30R27
MOV R31R26
; POP R0
; POP R18
; POP R17
#endasm 
}

/*
void WriteLockBits (unsigned char val)
{
#asm 
; PUSH R18
write_lock:
LDS R27SPMCR
SBRC R270
RJMP write_lock
LD R0Y
LDI R270x09
STS SPMCRR27
SPM 
POP R18
#endasm
} */

unsigned char ReadFlash (unsigned int adr)
{
#asm
LDD R31Y+1
LD R30Y
LPM R30Z
#endasm
}   
void EnableRWW (void)
{
        #asm
 En_RWW:
        LDS     R27SPMCR
        SBRC    R270
        RJMP    En_RWW
        LDI     R270x11
        STS     SPMCRR27
        SPM
        #endasm
}
#pragma warn+

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1176  2005-11-03 23:45  MEGA64LOAD\1.bin

     文件      13829  2005-05-19 08:20  MEGA64LOAD\assmbly.asm

     文件       2761  2005-11-03 23:51  MEGA64LOAD\assmbly.c~

     文件        358  2005-11-03 23:50  MEGA64LOAD\assmbly.h

     文件         30  2005-05-19 08:20  MEGA64LOAD\assmbly.inc

     文件        283  2005-05-19 08:20  MEGA64LOAD\assmbly.map

     文件        875  2005-05-19 08:20  MEGA64LOAD\assmbly.sym

     文件       2204  2005-09-22 00:22  MEGA64LOAD\assmbly.txt

     文件        147  2005-05-19 08:20  MEGA64LOAD\assmbly.vec

     文件      38876  2005-11-06 01:04  MEGA64LOAD\bootload.asm

     文件      20477  2005-10-31 21:20  MEGA64LOAD\bootload.cof

     文件          0  2005-11-06 01:04  MEGA64LOAD\bootload.eep

     文件       3327  2005-11-06 01:04  MEGA64LOAD\bootload.hex

     文件         53  2005-11-06 01:04  MEGA64LOAD\bootload.inc

     文件      61676  2005-11-06 01:04  MEGA64LOAD\bootload.lst

     文件        424  2005-11-06 01:04  MEGA64LOAD\bootload.map

     文件       5358  2005-11-06 01:04  MEGA64LOAD\bootload.obj

     文件       7644  2005-11-06 01:04  MEGA64LOAD\bootload.rom

     文件       3835  2005-11-06 01:04  MEGA64LOAD\bootload.sym

     文件        319  2005-11-06 01:04  MEGA64LOAD\bootload.vec

     文件      10913  2005-10-31 21:20  MEGA64LOAD\bootload__.c

     文件       3403  2005-10-31 21:22  MEGA64LOAD\bootload_cof.aps

     文件       3977  2007-12-11 08:59  MEGA64LOAD\BootLoadFor64.prj

     文件          0  2007-12-11 08:59  MEGA64LOAD\BootLoadFor64.txt

     文件      32880  2005-05-31 10:37  MEGA64LOAD\main.asm

     文件       5978  2005-05-31 10:36  MEGA64LOAD\main.c

     文件         66  2005-05-31 10:37  MEGA64LOAD\main.inc

     文件        280  2005-05-31 10:37  MEGA64LOAD\main.map

     文件       2097  2005-05-31 10:37  MEGA64LOAD\main.sym

     文件        319  2005-05-31 10:37  MEGA64LOAD\main.vec

............此处省略11个文件信息

评论

共有 条评论